如何备份,恢复和迁移MongoDB数据库
时间:2019-05-19 01:25:30 来源:igfitidea点击:
mongodump是MongoDB提供的用于创建数据库备份的工具。
这是一个非常有用的实用工具,可以考虑非常有效地对动态服务器数据库进行备份。
对于数据库恢复使用mongorestore命令。
备份MongoDB数据库(mongodump)
对mongodb数据库进行备份有多种选择。
使用mongodump命令对所有数据库进行备份或对单个数据库进行备份或对单个集合进行备份。
备份单个数据库
使用此命令只备份单个数据库(名为mydb)。
备份将在/backup/db/目录中创建。
$ mongodump --db mydb --out /backup/db/
–db要备份的数据库名称
–out数据库备份位置。
将创建具有数据库名称的文件夹。
我们可以为远程连接数据库备份指定主机、端口、用户名和密码,如下所示。
$ mongodump --host 10.0.1.7 --port 27017 --username admin --password somepassword --db mydb --out /backup/db/
备份所有数据库
要备份所有数据库,只需运行以下命令。
这里/data/db/是mongodb数据目录的位置,/backup/db是备份目录的位置。
$ mongodump --out /backup/db/
我们可以为远程数据库指定主机、端口。
备份单个集合
这个命令将从数据库中备份单个集合。
备份文件将在dump/mydb/目录中创建。
$ mongodump --collection mycollection --db mydb --out /backup/db/
用mongorestore恢复MongoDB数据库
mongorestore是用于恢复mongodb数据库备份的命令行工具。
这里, /data/db/是mongodb数据目录的位置, /backup/db是备份目录的位置。
$ mongorestore --db mydb --drop /backup/db/mydb
–drop如果已经存在的数据库,则会被删除。
我们可以简单地将备份文件移动到远程服务器,并在那里运行相同的命令来恢复备份。
MongoDB备份Shell脚本
我们可以轻松地在计划任务中添加下面的脚本用于定期备份数据库。
创建如下文件
$ vi /backup/mongo-backup.sh
将以下内容添加到文件中。更改相应的数据库主机名、数据库名、用户名和密码。
#!/bin/sh TODAY=`date +%d%b%Y` BACKUP_DIR=/backup/db mkdir -p ${BACKUP_DIR}/${TODAY} mongodump -h <DATABASE_HOST> -d <DATABASE_NAME> -u <USERNAME> -p <PASSWRD> --out ${BACKUP_DIR}/${TODAY}/
现在在crontab中配置,让它每天运行。
0 2 * * * /backup/mongo-backup.sh