日常维护
MongoDB日常维护主要包括数据库的备份恢复、安全管理和数据库状态监控
备份与回复管理
在MongoDB中备份管理包括导入导出、备份与恢复、复制数据库和克隆集合等操作
导入导出
可以使用mongoexport 和 mongoimport 命令来导出导入 MongoDB 的数据
- mongoexport 命令可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据
- mongoimport 命令可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON / CSV 格式的数据
- 批量创建数据
for(var i=1;i<=1000;i++){
db.users.insert({
'id':i,'name':'maomao'});}
而后使用db.users.find(),会发现只会出现20行,这是因为数据库默认只会出现20行
- 导出数据
mongoexport -d test -c 表格 -o 储存位置/表名.json
[root@mongodb bin]# mongoexport -d test -c users -o /home/mao.json
2021-04-19T10:01:49.406-0400 connected to: localhost
2021-04-19T10:01:49.416-0400 exported 1000 records
[root@mongodb bin]# ls /home
mao.json maomao
- 模拟故障
导入数据后模拟数据表格丢失
> db.users.drop()
true
> show tables
comment
system.indexes
zhu
- 恢复
恢复数据
mongoimport -d 库名 -c 表名 --file json文件路径
[root@mongodb bin]# mongoimport -d test -c users --file /home/mao.json
2021-04-19T10:05:33.264-0400 connected to: localhost
2021-04-19T10:05:33.273-0400 imported 1000 documents
- 验证
> db.users.findOne()
{
"_id" : ObjectId("607d8cdd5c684f0ac406a9ce"),
"id" : 2,
"name" : "maomao"
}
- 导出特定条件的数据
导出特定条件的数据(id大于500)
[root@mongodb bin]# mongoexport -d test -c users -q '{"id":{"$gt":500}}' -o /home/mao500.json
2021-04-19T10:11:35.345-0400 connected to: localhost
2021-04-19T10:11:35.349-0400 exported 500 records
- 验证
[root@mongodb bin]# head -10 mao500.json
{
"_id":{
"$oid":"607d8cdd5c684f0ac406abc1"},"id":501.0,"name":"maomao"}
{
"_id":{
"