更新时间:2023-12-13 GMT+08:00

恢复副本集备份到本地自建数据库

实例的备份文件仅支持在Linux系统下恢复到本地自建数据库,暂不支持Windows系统。

本文以Linux操作系统为例,介绍如何将已下载的副本集备份文件的数据恢复至自建数据库。关于如何下载备份文件,请参见下载备份文件

使用须知

  • 本地自建MongoDB数据库已安装3.4版本客户端工具。

操作步骤

  1. 登录自建数据库所在服务器。

    假设路径“/path/to/mongo”为执行恢复操作所在路径,路径“/path/to/mongo/data”为备份文件所在路径。

  2. 恢复前,确保路径“/path/to/mongo/data”为空目录。

    cd /path/to/mongo/data/

    rm -rf *

  3. 将已下载的副本集备份文件压缩包复制到“/path/to/mongo/data/”路径下,并解压。

    lz4 -d xxx_.tar.gz |tar -xC /path/to/mongo/data/

  4. 在“/path/to/mongo”文件夹中新建配置文件“mongod.conf”。

    touch mongod.conf

  5. 通过单节点模式启动数据库。

    1. 修改“mongod.conf”配置文件,使其符合备份启动的配置要求。

      以下为备份启动的参考配置模板:

      systemLog:
          destination: file
          path: /path/to/mongo/mongod.log
          logAppend: true
      security:
          authorization: enabled
      storage:
          dbPath: /path/to/mongo/data
          directoryPerDB: true
          engine: wiredTiger
          wiredTiger:
              collectionConfig: {blockCompressor: snappy}
              engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
              indexConfig: {prefixCompression: true}
      net:
          http:
              enabled: false
          port: 27017
          bindIp: xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
          unixDomainSocket:
              enabled: false
      processManagement:
          fork: true
          pidFilePath: /path/to/mongo/mongod.pid

      bindIp为数据库绑定的连接IP地址。该字段可选,不包含该字段时,默认绑定本地IP地址。

    2. 指定新建的配置文件“mongod.conf”启动数据库。

      /usr/bin/mongod -f /path/to/mongo/mongod.conf

      /usr/bin/为已安装MongoDB客户端中mongod文件所在路径。

    3. 等待启动完成后,可通过服务器的mongo shell登录恢复后的数据库。

      mongo --host <DB_HOST> -u <DB_USER> -p <PASSWORD> --authenticationDatabase admin

      • DB_HOST是数据库绑定的连接IP地址。
      • DB_USER是数据库账号名,默认rwuser。
      • PASSWORD是实例进行备份时,数据库账号对应的密码。

副本集模式启动数据库

DDS实例的物理备份默认带有原实例的副本集配置。启动时需以单节点模式启动,否则可能无法访问。

如需以副本集模式启动,请先执行5,再执行以下步骤:

  1. 通过服务器的mongo shell登录恢复后的数据库。
  2. 移除原有副本集配置。

    use local

    db.system.replset.remove({})

  3. 关闭数据库进程服务。

    use admin

    db.shutdownServer()

  4. 修改“/path/to/mongo/”目录下的配置文件“mongod.conf”,添加replication相关配置。详细命令用法请参考MongoDB官方文档部署副本集
  5. 指定新建的配置文件“mongod.conf”来启动数据库。

    /usr/bin/mongod -f /path/to/mongo/mongod.conf

    /usr/bin/为已安装MongoDB客户端中mongod文件所在路径。

  6. 将成员加入副本集并初始化副本集。

    此步骤使用 rs.initiate()命令进行操作,详细命令用法请参考MongoDB官方文档rs.initiate()命令介绍