如何建设网站平台,做网站页面一般设置多大尺寸,中国化工网官网 网站建设,购物网站系统建设方案数据库操作一直是一个比较敏感的话题#xff0c;动不动“删库跑路”#xff0c;可见数据库操作对于一个项目而言是非常重要的#xff0c;我们有时候会因为一个游戏的严重bug或者运营故障要回档数据库#xff0c;而你们刚好使用的是阿里云的Mongodb#xff0c;那么这篇文章… 数据库操作一直是一个比较敏感的话题动不动“删库跑路”可见数据库操作对于一个项目而言是非常重要的我们有时候会因为一个游戏的严重bug或者运营故障要回档数据库而你们刚好使用的是阿里云的Mongodb那么这篇文章将给你提供一个思路或许你按照阿里云官网的文档一顿操作下来并不是那么顺利有一些报错无法登录... 在恢复数据之前你要先知道你产线环境使用mongodb服务器的版本是多少然后本地部署安装对应版本的数据库以避免版本兼容问题引发的一些异常
1.数据库版本要求
云数据库MongoDB版实例的版本必须对应自建MongoDB数据库的版本。二者之间的对应关系如下
MongoDB实例自建MongoDB数据库3.2版本3.2或3.4版本3.4版本3.4版本4.0版本4.0版本4.2版本4.2版本 注意我建议你使用linux系统来部署对应的mongo版本这里我以v4.2.23为例
[rootlocalhost data]# mongod --version
db version v4.2.23
git version: f4e6602d3a4c5b22e9d8bcf0722d0afd0ec01ea2
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:distmod: rhel70distarch: x86_64target_arch: x86_64
2.下载解压物理备份并赋权限 你的备份文件可以通过阿里云后台来直接下载 点击下载可下载到本地或者你通过wget下载链接下载到本地。 然后创建一个mongodb恢复的目录mkdir /data/mongo 将下载的系统备份文件压缩包放到/data/mongo目录下
比如我的压缩包名是hins25976838_data_20230811084111.tar
tar xzvf hins25976838_data_20230811084111.tar 注意一般mongo服务器是需要mongod的用户组和用户权限的所以如果你是这种情况建议你使用 chown mongod /data/mongo -R chgrp mongod /data/mongo -R chmod 755 /data/mongo
3.以单节点模式恢复MongoDB物理备份的数据
备份下原来的mongod.conf重新修改配置文件mongod.conf。 cp /etc/mongod.conf /etc/mongod.conf.bak vim /etc/mongod.conf打开mongod.conf文件。 根据云数据库MongoDB版的存储引擎选择启动的配置模板您可以将其复制到mongod.conf文件中。 说明 配置文件设置了启动模式为单节点模式并开启认证功能 systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.log# Where and how to store data.
storage:dbPath: /data/mongodirectoryPerDB: true
# engine:
# wiredTiger:# how the process runs
processManagement:fork: true # fork and run in backgroundpidFilePath: /var/run/mongodb/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfaces
net:port: 27017#bindIp: 0.0.0.0 #127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.unixDomainSocket:enabled: falsesecurity:authorization: disabled说明 云数据库MongoDB默认使用的是WiredTiger存储引擎并且开启了directoryPerDB选项因此配置中指定了这个选项, security:authorization: disabled 为了方便起见我这里不需要加入用户名和密码验证可直接登录。
4.单节点模式启动并登录 指定新建的配置文件mongod.conf来启动MongoDB。 mongod -f /etc/mongod.conf 你启动过程中可能会遇到如下报错信息这种应该是之前没有正常关闭mongodb引起的比如直接 kill -9 pid导致 解决方法 找到mongod.lock文件并删除mongod.lock。 如果启动仍然报错建议再使用修复方式来启动 mongod -f /etc/mongod.conf --repair 千万不能使用kill -9 pid,因为MongoDB使用mmap方式进行数据文件管理也就是说写操作基本是在内存中进行写操作会被每隔60秒(syncdelay设定)的flush到磁盘里。如果在这60秒内flush处于停止事情我们进行kill -9那么从上次flush之后的写入数据将会全部丢失。 如果在flush操作进行时执行kill -9则会造成文件混乱可能导致数据全丢了启动时加了repair也无法恢复。 等待启动完成后执行如下命令登录MongoDB数据库进入Mongo Shell。 mongo --host 127.0.0.1:27017 在Mongo Shell中执行show dbs查询当前本地MongoDB中所有的数据库以验证是否恢复成功可以看到我想要恢复的数据库merge然后这样我就可以恢复某一个玩家的数据。 至此恢复工作已成功完成您可以在Mongo Shell中执行exit命令退出Mongo Shell。