四时宝库

程序员的知识宝库

MongoDB 使用技巧记录(二)(mongodb简单使用)

MongoDB 使用技巧记录(二)

一:备份恢复

# mongoimport/mongoexport方式

## 导入数据:

./mongoimport --port 27022 -d kas_code -c QCC_QUALITY_RECORD -uroot -p lww123 --authenticationDatabase admin --file /home/sanyuanse/kas/QCC_QUALITY_RECORD.json

## 导出数据:

./mongoexport --port 27022 -d kas_code -c QCC_CODE_LOG -uroot -p kas_2020_roo --authenticationDatabase admin -o /home/sanyuanse/kas/QCC_CODE_LOG.json

# mongodump/mongorestore方式

--备份单个表

mongodump -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak

--备份单个库

mongodump -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest -o /backup/mongodb/

--备份所有库

mongodump -u superuser -p 123456 --authenticationDatabase admin --port 27017 -o /root/bak

--备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用:

mongodump -h 127.0.0.1 --port 27017 --oplog -o /root/bak

--同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):

mongorestore -d swrd --oplogReplay /home/mongo/swrdbak/swrd/

--恢复单个库:

mongorestore -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest /backup/mongodb/

--恢复所有库:

mongorestore -u superuser -p 123456 --port 27017 --authenticationDatabase admin /root/bak

--恢复单表

mongorestore -u superuser -p 123456 --authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson


二:备份恢复-docker

备份:

#ubuntu下默认为dash,注意bash路径
#!/usr/bin/bash
for i in admin player rmdb services
#for i in "admin"
do
 echo $i
 mkdir -p /data/mongodb/backup/`date +%Y-%m-%d`
 docker exec -it 7d42f5a6d07c mongodump -h 192.168.102.51:27017 -d ${i} -o /data/backup/`date +%Y-%m-%d` -u=root -p=Aa123456 --authenticationDat
abase=admin
done

#tar 
tar zcvf mongodb-`date +%Y-%m-%d`.tar.gz /data/mongodb/backup/`date +%Y-%m-%d`

#del
cd /data/mongodb/backup && /bin/rm -rf `date +%Y-%m-%d`

恢复:

确认主master节点

docker exec -it mongodb02 mongo admin

#!/bin/bash
for i in `ls 2023-08-14` 
#for i in "admin"
do
 echo $i
 docker exec -it mongodb02 mongorestore -h 192.168.10.14:27019 -d ${i} /data/backup/`date +%Y-%m-%d`/${i} --drop -u=root -p=root --authenticationDatabase=admin
done

###

数据备份  mongodump
    ./mongodump -h localhost:27022 -d lison -o /usr/local/mongodb/mongodb-linux-x86_64-3.4.18/backup

      -h :指定ip和端口; -d :备份的数据库名称 ; -o:指定备份的路径

       其本质为:执行查询,然后写入文件;

数据恢复  mongorestore
./mongorestore -h localhost:27022  -d lison /usr/local/mongodb/mongodb-linux-x86_64-3.4.18/backup/lison --drop

     --drop 已存在lison库则删除原数据库,去掉--drop则是合并

数据导出  mongoexport(针对集合)
./mongoexport -h localhost:27022 -d lison -c users -f id,username,age,salary --type=csv -o /usr/local/mongodb/mongodb-linux-x86_64-3.4.18/backup/users.csv

-c :指定导出的集合; -f :要导出的字段; --type:导出的文件格式类型[csv,json]

数据导入  mongoimport(针对集合)
./mongoimport -h localhost:27022 -d lison -c users /usr/local/mongodb/mongodb-linux-x86_64-3.4.18/backup/users.csv --upsert

   --upsert  表示更新现有数据,如果不适用—upsert,则导入时已经存在的文档会报id重复,数据不再插入,也可以使用—drop删除原有数据


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接