使用PyMongo实现MongoDB数据库复制的步骤

2023-04-15 00:00:00 数据库 步骤 复制

MongoDB数据库复制可以通过使用PyMongo的replSetInitiate()方法和replSetReconfig()方法来实现。下面是详细的步骤:

  1. 在两个MongoDB服务器上安装并启动MongoDB服务。

  2. 在主服务器上创建一个要复制的数据库,并在其中创建一些集合和文档用于测试。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["pidancode"]
collection = db["test"]
document = {"name": "pidancode.com", "category": "education"}
collection.insert_one(document)
  1. 在主服务器上创建一个MongoDB副本集。
config = {
    "_id": "rs0",
    "members": [
        {"_id": 0, "host": "localhost:27017"},
        {"_id": 1, "host": "localhost:27018"},
        {"_id": 2, "host": "localhost:27019"}
    ]
}

admin_db = client["admin"]
result = admin_db.command("replSetInitiate", config)

print(result)
  1. 在副本服务器上使用相同的config配置文件加入MongoDB副本集。
config = {
    "_id": "rs0",
    "members": [
        {"_id": 0, "host": "localhost:27017"},
        {"_id": 1, "host": "localhost:27018"},
        {"_id": 2, "host": "localhost:27019"}
    ]
}

admin_db = client["admin"]
result = admin_db.command("replSetReconfig", config)

print(result)
  1. 现在,主服务器上的数据库和集合将被复制到副本服务器上。您可以在两个服务器上使用find()方法来检查是否存在数据。
db = client["pidancode"]
collection = db["test"]

print("Data in primary server:")
for document in collection.find():
    print(document)

client = pymongo.MongoClient("mongodb://localhost:27019/")
db = client["pidancode"]
collection = db["test"]

print("Data in secondary server:")
for document in collection.find():
    print(document)

相关文章