备份命令
直接在新的mongodb节点上执行dump命令,把远程服务器上的数据库下载到本地
./mongodump --forceTableScan -h 192.168.19.232 --port 27017 -u mydb -p mydb@123 -d mydb -o /root/mydb
恢复数据库命令
./mongorestore -h 192.168.30.99 --port 37017 -d mydb --drop /root/mydb/mydb
设置数据库和表分片
1.数据库和表不设置分片的话,默认都是不会进行分片的
2.数据库设置分片
use admin
db.runCommand({enablesharding:"mydb"})
3.对表进行分片
4.表里面如果已经有数据也可以进行分片
对新表进行设置
db.runCommand({shardcollection:"mydb.asset_acceptance_info",key:{_id:'hashed'}})
对已经有数据的表设置
db.runCommand({shardcollection:"mydb.asset_acceptance_info",key:{"_id":1}})
表重命名rename
1. 分片表不能直接rename
把asset_info_result重命名为asset_info_result_bak20220327
/data/tianyiyun/mongodb-linux-x86_64-amazon-3.6.2/bin/mongo --port 37017
db.createCollection("asset_info_result_bak20220327")
db.asset_info_result_bak20220327.ensureIndex({"_id":1})
db.runCommand({shardcollection:"mydb.asset_info_result_bak20220327",key:{_id:'hashed'}})
use mydb
db.asset_info_result.find().forEach(function(x){db.asset_info_result_bak20220327.insert(x)}
db.asset_info_result.aggregate({$match: {}}, {$out: 'asset_info_result_bak20220327'})
重命名表
2.使用备份方式
1.备份原表
/data/tianyiyun/mongodb-linux-x86_64-amazon-3.6.2/bin/mongodump -h 192.168.0.103:37017 -uadmin -p2022 --authenticationDatabase admin -d mydb -c asset_info_result -o /data/tianyiyun/backup2/
如果没有指定 -o输出目录参数,那么就会在mongodump所在的目录自动生成一个dump子目录用来保存被导出来的数据
2.直接还原-自动创建新表
/data/tianyiyun/mongodb-linux-x86_64-amazon-3.6.2/bin/mongorestore -h 192.168.0.103:37017 -uadmin -p2022 --authenticationDatabase admin -d mydb -c asset_info_result_bak20220327 /data/tianyiyun/backup2/mydb/asset_info_result.bson
{service_belongs_id:"2021102718160399715"}