今天带大家体验一下巨杉数据库的全量备份恢复功能。
【准备数据】
在集群中新建两个集合空间和集合,并插入测试数据
db.createCS("NewCS_1").createCL("NewCL",{ShardingKey:{id:1},ShardingType:'hash',ReplSize:2,AutoSplit:true,EnsureShardingIndex:false});
db.createCS("NewCS_2").createCL("NewCL",{ShardingKey:{id:1},ShardingType:'hash',ReplSize:2,AutoSplit:true,EnsureShardingIndex:false});
for(i = 0;i<2000;i++){
db.NewCS_1.NewCL.insert({id:i,name:"tom_"+i,age:i%10+20});
db.NewCS_2.NewCL.insert({id:i,name:"jery_"+i,age:i%10+20});
}
//查看数据信息
db.NewCS_1.NewCL.count()
db.NewCS_2.NewCL.count()
【进行全量备份】
进行全量备份。
db.backup({Name:"fullbak"})
删除集合空间NewCS_1。
db.dropCS("NewCS_1")
查看数据库中集合
db.listCollections()
【全备恢复】
全量备份是在主数据节点上进行的,找出每个数据组的主数据节点。停止集群,删除数据所有节点目录下的.idx,.data文件以及同步日志(事务日志)
//恢复数据(有几个数据组,进行几次,需要在主数据节点所在的目录进行)
sdbrestore -p [数据节点目录]/bakfile -n fullbak -b 0
//命令执行成功之后,可以将主数据节点下的.idx,.data以及复制日志scp到备节点下,或者启动集群自动进行全量同步。
启动集群,等待全量同步完成之后,查看集合和数据量。
db.listCollections()
db.NewCS_1.NewCL.count()
db.NewCS_2.NewCL.count()