centos下mongodb3.2数据库的备份与恢复初步

本文介绍了MongoDB的备份和恢复方法,详细说明了如何使用mongodump进行备份及mongorestore进行数据恢复。涵盖了备份命令参数、注意事项及索引重建等内容。

数据库的备份

mongodump -h dbhost -d dbname -o dbdirectory

  • -h MongDB所在服务器地址,在本地操作时服务器默认地址是127.0.0.1。
    这里写图片描述

  • -d 需要备份的数据库实例。

  • -o 备份的数据存放位置,在该位置下会成与你实例为名的文件夹,在文件夹下有collection 的bson和json文件。
    这里写图片描述

完成后可以输入mongodump查看
这里写图片描述

数据库的恢复

mongorestore -h dbhost -d dbname –dir dbdirectory

  • -h mongodb所在服务器

  • -d 所需要备份的数据库实例

  • -dir 数据库备份的位置

  • – drop 先删除当前数据库的数据,然后恢复备份的数据

完成后输入mongorestore查看恢复信息
这里写图片描述

恢复的几点注意

  • mongorestore can create a new database or add data to an existing database. However, mongorestore performs inserts only and does not perform updates. That is, if restoring documents to an existing database and collection and existing documents have the same value _id field as the to-be-restored documents, mongorestore will not overwrite those documents.(mongorestore可以创建一个新的数据库或数据添加到现有的数据库。然而,mongorestore只执行插入和不执行更新。也就是说,如果恢复文件到现有的数据库,并收集和现有的文件具有相同的值_id字段作为要被恢复的文件,mongorestore不会覆盖那些文件。)

  • mongorestore recreates indexes recorded by mongodump.(mongorestore会创建mongodump录索引。)

  • The data format used by mongodump from version 2.2 or later is incompatible with earlier versions of mongod. Do not use recent versions of mongodump to back up older data stores.(从2.2版本使用mongodump或更高版本的数据格式是与早期版本的mongod不兼容。不要使用mongodump的最新版本的备份旧的数据存储。)

  • mongorestore does not restore the system.profile collection data; however, if the backup data includes system.profile collection data and the collection does not exist in the target database, mongorestore creates the collection but does not insert any data into the collection.(mongorestore不会恢复system.profile收集数据;然而,如果备份数据包括system.profile集合数据和集合未在目标数据库中存在,mongorestore创建集合,但不将任何数据插入到集合中。)
    -

参考:
MongoDB 备份(mongodump)与恢复(mongorerstore)
mongorestore

<think>嗯,用户现在需要知道在CentOS 9系统中删除MongoDB数据库和用户的方法。之前我提供的引用信息都是基于CentOS 7的,需要特别注意版本差异带来的步骤变化。 用户明确要求删除数据库和用户两部分内容,这是个具体的技术操作请求。考虑到CentOS 9采用dnf作为默认包管理器,而不再是yum,这点很关键。另外用户权限管理命令应该没有太大变化。 从引用材料看,清除过程需要分层次处理:首先是停止服务,然后是卸载软件包,接着清理残留文件和目录,最后处理相关用户账户。用户特别提到要删除mongodb用户,这步容易被忽略。 安全方面要提醒用户谨慎操作rm -rf命令,特别是对/var/lib/mongo这样的目录执行删除前最好二次确认。另外用户账户删除要注意是否关联其他服务。 用户可能还隐藏了一个需求:如何验证是否删除干净。可以补充检查命令,比如用rpm -qa | grep mongo确认包是否残留,用id mongodb检查用户是否存在等。 需要强调CentOS 9的新特性:如果用户当初通过snap安装的MongoDB,卸载方式会不同。不过引用材料里没提到这种安装方式,暂时可以不纳入主要步骤,放在注意事项里即可。 备份提醒很重要。虽然用户没问,但引用[4]提到mongodump备份脚本,应该建议用户在删除前备份数据。特别是生产环境,这点必须强调。 </think>以下是CentOS 9系统中彻底删除MongoDB数据库及相关用户账户的完整步骤,结合系统特性进行了优化: --- ### **1. 停止MongoDB服务** ```bash sudo systemctl stop mongod # 停止服务 sudo systemctl disable mongod # 禁止开机自启 sudo systemctl mask mongod # 锁定服务防意外启动(CentOS 9新增) ``` --- ### **2. 卸载MongoDB软件包** ```bash sudo dnf remove mongodb-org* # 移除所有MongoDB相关包(CentOS 9使用dnf) sudo dnf clean all # 清理包缓存 ``` > **注意**:若通过第三方仓库(如MongoDB官方源)安装,需额外执行: > ```bash > sudo rm /etc/yum.repos.d/mongodb-*.repo # 移除仓库配置 > ``` --- ### **3. 彻底删除数据文件日志** ```bash sudo rm -rf /var/lib/mongo # 核心数据目录 sudo rm -rf /var/log/mongodb # 日志目录 sudo rm -f /etc/mongod.conf # 配置文件 sudo rm -rf /tmp/mongodb-* # 临时文件(常见残留位置) ``` --- ### **4. 删除MongoDB系统用户及用户组** ```bash sudo userdel -r mongodb # -r参数同时删除用户主目录 sudo groupdel mongodb # 删除关联用户组 ``` > **验证删除**: > ```bash > id mongodb 2>/dev/null || echo "用户已删除" # 检查用户是否存在 > ``` --- ### **5. 清理Systemd服务配置(关键步骤)** ```bash sudo rm /usr/lib/systemd/system/mongod.service # 移除服务单元文件 sudo systemctl daemon-reload # 重载systemd配置 ``` --- ### **注意事项** 1. **备份优先** 执行删除前建议备份数据(参考备份脚本[^4]): ```bash mongodump --out /path/to/backup_$(date +%F) ``` 2. **残留检查** 使用以下命令确认无残留: ```bash rpm -qa | grep mongo # 检查软件包残留 find / -name *mongo* 2>/dev/null # 全局搜索残留文件 ``` 3. **依赖项处理** 若提示有其他包依赖MongoDB,强制卸载: ```bash sudo dnf remove --skip-broken mongodb-org* ``` --- ### **操作验证流程图** ```mermaid graph TD A[停止服务] --> B[卸载软件包] B --> C[删除数据文件] C --> D[移除用户/组] D --> E[清理systemd配置] E --> F[验证残留] F --> G[完成] ``` > **重要提醒**:生产环境操作前务必确认备份完整性。数据库删除后仅能通过备份恢复[^2][^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值