centos7 · 2023年7月3日

mongodb 升级 备份 还原

把databasename数据库备份到/www/mongodb
mongodump --db databasename --out /www/mongodb

把/www/mongodb里的databasename数据库还原到数据库里,有重名覆盖 要在MONGO命令外面用这条命令
mongorestore --db databasename /www/mongodb/databasename
停止数据库 开始数据库 数据库运行状态
systemctl stop mongod
systemctl start mongod
systemctl status mongod

卸载旧版本MongoDB: 首先,需要卸载旧版本的MongoDB。运行以下命令:

sudo systemctl stop mongod
sudo systemctl disable mongod
sudo yum erase mongodb-org mongodb-org-server
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

这些命令会停止MongoDB服务并删除MongoDB软件包以及相关的日志和数据目录。

  1. 添加MongoDB 4.4版本的存储库: 执行以下命令将MongoDB 4.4版本的官方存储库添加到你的系统:
  2. vi /etc/yum.repos.d/mongodb-org-4.4.repo

    然后,将以下内容复制并粘贴到文件中:

  3. [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    

    保存并关闭文件。

    1. 安装MongoDB 4.4.6: 运行以下命令安装MongoDB 4.4.6:
    2. yum update
      yum install mongodb-org-4.4.6

      下面这个是安装4.4版本最新的,上面就是指定4.4.6

    3. yum install -y mongodb-org
      

      这将安装MongoDB 4.4.6及其相关组件。

      1. 启动MongoDB服务: 执行以下命令来启动MongoDB服务:
      2. sudo systemctl start mongod

        你可以使用以下命令来验证MongoDB服务是否正在运行:

        sudo systemctl status mongod
        1. 验证升级结果: 连接到MongoDB并执行以下命令验证升级结果:
        mongo --version

        ———————————————————————————————————-

        1. 您提供的 mongorestore 命令遇到了一些问题。我们逐一解决这些问题:
          1. 错误:--db--collection 参数只适用于从 BSON 文件进行恢复。其他用法已经被弃用,并将在将来的版本中不存在;请改用 --nsInclude

          这个错误消息表示直接在 mongorestore 中使用 --db--collection 参数是被弃用的。相反,您应该使用 --nsInclude 选项来指定要恢复的命名空间(数据库和集合)。

          为了解决这个问题,您可以将命令修改如下:

          bash
          mongorestore --nsInclude 'xiaous2.*' /www/backup/mongodb

          这个命令将恢复 xiaous2 数据库中的所有集合。

          1. 警告:不知道如何处理子目录 “mongodb/xiaous2″,跳过…

          这个警告提示 mongorestore 在指定的备份目录(/www/backup/mongodb)中遇到了名为 “xiaous2” 的子目录。然而,mongorestore 期望备份目录直接包含 BSON 文件,而不是子目录。

          为了解决这个问题,请确保备份目录直接包含 BSON 文件,而没有任何子目录。如果您在备份目录中有子目录,请将 BSON 文件直接移动到 /www/backup/mongodb 目录中,以便 mongorestore 命令可以正确地找到并恢复它们。

          解决了这些问题后,您可以重新运行 mongorestore 命令:

          bash
          mongorestore --nsInclude 'xiaous2.*' /www/backup/mongodb

          这个命令应该会将指定备份目录中的集合恢复到 xiaous2 数据库中。