复制MongoDB数据库和集合是一种灵活、高效的数据备份方式。它可以保证数据的高可用性,减少数据丢失的风险。本教程将介绍如何在不同主机间复制MongoDB数据库和集合。
1. 安装MongoDB
首先,需要在你的计算机或服务器上安装MongoDB。安装方式可以参考MongoDB的官方文档。
2. 配置MongoDB
在此之前,需要先准备好两台计算机。假设它们的IP地址分别为192.168.0.100
和192.168.0.200
。这里选择的是基于主从备份架构进行配置。
配置主服务器
编辑主服务器的配置文件/etc/mongod.conf
,将以下内容插入:
replication:
replSetName: "myReplicaSet"
然后重启MongoDB。
sudo systemctl restart mongod
接着,进入MongoDB Shell命令行,并初始化一个副本集:
sudo mongo
rs.initiate()
配置从服务器
编辑从服务器的配置文件/etc/mongod.conf
,将以下内容插入:
replication:
replSetName: "myReplicaSet"
然后重启MongoDB。
sudo systemctl restart mongod
3. 复制MongoDB数据库和集合
假设原始数据库mydb
在主服务器上,现在需要将它复制到从服务器上。
步骤一:在主服务器上创建用户
进入MongoDB Shell,使用以下命令创建用户。
use mydb
db.createUser({user: "replicaUser", pwd: "replicaPassword", roles: [{role: "read", db: "local"}]})
步骤二:在从服务器上授权
进入MongoDB Shell,使用以下命令完成授权。
use admin
db.auth("adminUser", "adminPassword")
rs.slaveOk()
步骤三:在从服务器上复制数据库和集合
进入MongoDB Shell,使用以下命令复制数据库和集合。
use mydb
db.copyDatabase("mydb", "mydb_copy", "192.168.0.200", "replicaUser", "replicaPassword", {copyIndexes: true, writeConcern: {w: "majority"}})
示例1
将mydb
复制到从服务器上,并保留数据索引。
use mydb
db.copyDatabase("mydb", "mydb_copy", "192.168.0.200", "replicaUser", "replicaPassword", {copyIndexes: true, writeConcern: {w: "majority"}})
示例2
将mydb
中的mycollection
集合复制到从服务器上,并保留数据索引。
use mydb
db.runCommand({ cloneCollection: "mydb.mycollection" , from: "192.168.0.100", writeConcern: {w: "majority"} });
结论
以上就是在不同主机间复制MongoDB数据库和集合的完整攻略。在具体操作中,请务必根据自己的实际情况进行设置和修改。