MongoDB快速备份重建方法

MongoDB快速备份重建方法

 

上一篇文章介绍了MongoDB打开远程连接的方法,接下来我们需要做的就是应对日常的运维工作,试想,假如你的服务器无法工作了,或是一些特殊情况需要放弃原有的服务器,那你该如何保全你的数据呢?

对于MongoDB这个数据库来说,它里面提供了一些数据导入导出的操作,这样能够方便我们对数据库的备份重建。具体来说有db.fsyncLock( )/db.fsyncUnlock( )以及mongodump/mongorestore方法。这里我介绍一下mongodump和mongorestore是如何做数据库的迁移重建的。

mongodump的用法是:

mongodump --host host_name --port port --username user_name --password secret --db database

其中host_name指代主机名;

port指代端口;

user_name指代数据库的用户名(可为管理员名称或者是数据库拥有者名称);

secret指代该用户名下的密码;

database指代数据库名称。

更为详细的使用方法在MongoDB的官方文档中有:

http://docs.mongodb.org/manual/tutorial/backup-and-restore-tools/

为了快速应用在我们系统中,我写了一个脚本。这个脚本可以快速从服务端数据库备份到本机的数据库中(前提是你在本机安装了MongoDB数据库系统)。

#!/bin/sh
echo "欢迎使用MongoDB远端数据导入工具。本程序是jiangcaiyang(blog.csdn.net/gamesdev)制作。"
echo "请输入主机名(默认qtdream.com):"
read host_name
if [ -z "$host_name" ]; then
	host_name="qtdream.com"
fi
echo "端口号(默认27017):"
read port
if [ -z "$port" ]; then
	port="27017"
fi
echo "请输入mongo用户名(默认jiangcaiyang):"
read user_name
if [ -z "$user_name" ]; then
	user_name="jiangcaiyang"
fi
echo "请输入mongo用户$user_name的密码:"
read secret
echo "请输入数据库的名称(默认test_database):"
read database
if [ -z "$database" ]; then
	database="test_database"
fi
echo "请输入本机mongo用户名(默认$user_name):"
read local_user_name
if [ -z "$local_user_name" ]; then
	local_user_name=$user_name
fi
echo "请输入本机mongo用户$user_name的密码(默认$secret):"
read local_secret
echo "输入的密码:$local_secret"
if [ -z "$local_secret" ]; then
	local_secret=$secret
fi
echo "现在开始导出"
echo "-------------------------------------------"
mongodump --host $host_name --port $port --username $user_name --password $secret --db $database
echo "-------------------------------------------"
echo "现在开始导入。"
echo "-------------------------------------------"
mongorestore --username $local_user_name --password $local_secret
echo "-------------------------------------------"
rm -rf dump
echo "完毕,谢谢使用。"

你可能感兴趣的:(MongoDB)