MongoDB 创建备份和时间点恢复
MongoDB Creating Backups and Point In Time Restores
我是一名 SQL 服务器 DBA,正尝试在某些特定情况下使用 MongoDB。我现在拥有的是具有 2 个数据承载节点和 1 个仲裁器的 3 节点副本集。我目前正在努力的事情是找到一个明确的答案来创建备份,这将允许我进行时间点恢复,类似于您在 MS SQL 中使用 FULL 和 LOG 备份。我该怎么做?
Mongodb 提供不同的备份和恢复方法
1.使用 Atlas 备份(基于云的 AWS 服务)
2。使用 MongoDB Cloud Manager 或 Ops Manager 备份(仅限企业版。支持从图形用户界面备份和恢复 MongoDB 副本集和分片集群。)
3。在 OS 上使用文件系统快照备份(在 Linux 上,逻辑卷管理器 (LVM) 可以创建快照。同样,用于 EC2 的 Amazon EBS 存储系统也支持快照)
要获得 运行 mongod 进程的正确快照,您必须启用日记功能。如果不启用日记功能,则无法保证快照一致或有效。
要使用 LVM 创建快照,请以 root 身份按以下格式发出命令:
lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb
此命令为 vg0 卷组中的 mongodb 卷创建名为 mdb-snap01 的 LVM 快照(使用 --snapshot 选项)。
此示例创建位于 /dev/vg0/mdb-snap01 的名为 mdb-snap01 的快照。根据操作系统的 LVM 配置,系统卷组和设备的位置和路径可能略有不同。
要恢复快照,请发出以下命令序列:
卸载/dev/vg0/mdb-snap01
lvcreate --size 1G --name mdb-new vg0
dd if=/dev/vg0/mdb-snap01 of=/dev/vg0/mdb-new
挂载/dev/vg0/mdb-new/srv/mongodb
4.Back 使用 mongodump(基于终端的 Mongodb 工具)
mongodump 和 mongorestore 是用于备份和恢复小型 MongoDB 部署的简单高效的工具
mongodump 和 mongorestore 针对 运行 mongod 进程运行
如果您不指定任何数据库,它会捕获所有数据库并复制到单独的文件夹以及每个数据库的索引(json 格式)
默认情况下,mongodump 不备份本地数据库(包含 Replicaset 配置和 oplog.rs 集合)。
对于副本集,mongodump 提供 --oplog 选项以将 mongodump 操作期间发生的输出 oplog 条目包含在内。这允许相应的 mongorestore 操作重放捕获的 oplog。要恢复使用 --oplog 创建的备份,请使用带有 --oplogReplay 选项的 mongorestore。
Mongorestore 仅捕获数据库文件。恢复数据后必须重建索引。
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/#
命令:
mongodump --out /data/backup/(备份所有数据库和索引)
mongodump --collection myCollection --db test(指定数据库&集合)
mongorestore --port
我是一名 SQL 服务器 DBA,正尝试在某些特定情况下使用 MongoDB。我现在拥有的是具有 2 个数据承载节点和 1 个仲裁器的 3 节点副本集。我目前正在努力的事情是找到一个明确的答案来创建备份,这将允许我进行时间点恢复,类似于您在 MS SQL 中使用 FULL 和 LOG 备份。我该怎么做?
Mongodb 提供不同的备份和恢复方法
1.使用 Atlas 备份(基于云的 AWS 服务)
2。使用 MongoDB Cloud Manager 或 Ops Manager 备份(仅限企业版。支持从图形用户界面备份和恢复 MongoDB 副本集和分片集群。)
3。在 OS 上使用文件系统快照备份(在 Linux 上,逻辑卷管理器 (LVM) 可以创建快照。同样,用于 EC2 的 Amazon EBS 存储系统也支持快照) 要获得 运行 mongod 进程的正确快照,您必须启用日记功能。如果不启用日记功能,则无法保证快照一致或有效。
要使用 LVM 创建快照,请以 root 身份按以下格式发出命令:
lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb 此命令为 vg0 卷组中的 mongodb 卷创建名为 mdb-snap01 的 LVM 快照(使用 --snapshot 选项)。
此示例创建位于 /dev/vg0/mdb-snap01 的名为 mdb-snap01 的快照。根据操作系统的 LVM 配置,系统卷组和设备的位置和路径可能略有不同。
要恢复快照,请发出以下命令序列:
卸载/dev/vg0/mdb-snap01
lvcreate --size 1G --name mdb-new vg0
dd if=/dev/vg0/mdb-snap01 of=/dev/vg0/mdb-new
挂载/dev/vg0/mdb-new/srv/mongodb
4.Back 使用 mongodump(基于终端的 Mongodb 工具)
mongodump 和 mongorestore 是用于备份和恢复小型 MongoDB 部署的简单高效的工具
mongodump 和 mongorestore 针对 运行 mongod 进程运行
如果您不指定任何数据库,它会捕获所有数据库并复制到单独的文件夹以及每个数据库的索引(json 格式)
默认情况下,mongodump 不备份本地数据库(包含 Replicaset 配置和 oplog.rs 集合)。
对于副本集,mongodump 提供 --oplog 选项以将 mongodump 操作期间发生的输出 oplog 条目包含在内。这允许相应的 mongorestore 操作重放捕获的 oplog。要恢复使用 --oplog 创建的备份,请使用带有 --oplogReplay 选项的 mongorestore。
Mongorestore 仅捕获数据库文件。恢复数据后必须重建索引。 https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/#
命令:
mongodump --out /data/backup/(备份所有数据库和索引)
mongodump --collection myCollection --db test(指定数据库&集合) mongorestore --port