恢复数据库中的备份数据
功能:对集群数据库的备份数据进行恢复。
语法:recover [<cycle_id> [point_id]
参数说明如下:cycle_id:备份周期的 ID。
point_id:备份点的 ID。
recover 命令有以下三种形式:
recover:将数据库恢复到最新周期的最新备份点。
recover cycle_id:将数据库恢复到指定周期 cycle_id 内的最新备份点。
recover cycle_id point_id:将数据库恢复到指定周期 cycle_id 内的指定备份点point_id。
示例 1:对数据库中所有备份数据进行恢复。
$ python /opt/gcluster/server/bin/gcrcman.py -d /home/gbase/backuptest
gcrcman>recover
06.12 16:08:32 check cluster topology begin
06.12 16:08:32 node (192.168.6.187) check topology begin
06.12 16:08:35 node (192.168.6.187) check topology success
06.12 16:08:35 check cluster topology end
06.12 16:08:35 check BackUp start
--------------------------------------------
06.12 16:08:35 node (192.168.6.187) check backup begin
06.12 16:08:35 node (192.168.6.188) check backup begin
06.12 16:08:35 node (192.168.6.189) check backup begin
06.12 16:08:35 node (192.168.6.195) check backup begin
06.12 16:08:35 node (192.168.6.196) check backup begin
06.12 16:08:49 node (192.168.6.187) check backup success
06.12 16:08:49 node (192.168.6.188) check backup success
06.12 16:08:49 node (192.168.6.189) check backup success
06.12 16:08:49 node (192.168.6.195) check backup success
06.12 16:08:49 node (192.168.6.196) check backup success
--------------------------------------------
06.12 16:08:49 check BackUp success
06.12 16:08:49 Recover start
--------------------------------------------
06.12 16:08:49 node (192.168.6.187) Recover begin
06.12 16:08:49 node (192.168.6.188) Recover begin
06.12 16:08:49 node (192.168.6.189) Recover begin
06.12 16:08:49 node (192.168.6.195) Recover begin
06.12 16:08:49 node (192.168.6.196) Recover begin
06.12 16:09:17 node (192.168.6.187) Recover success
06.12 16:09:17 node (192.168.6.188) Recover success
06.12 16:09:17 node (192.168.6.189) Recover success
06.12 16:09:17 node (192.168.6.195) Recover success
06.12 16:09:17 node (192.168.6.196) Recover success
--------------------------------------------
06.12 16:09:17 Recover success
gcrcman>quit
示例 2:对数据库中第三个备份周期的数据进行恢复。
gcrcman>recover 2 02.26 17:41:59 check BackUp start -------------------------------------------- 02.26 17:41:59 node (192.168.103.209) check backup begin 02.26 17:41:59 node (192.168.103.210) check backup begin 02.26 17:41:59 node (192.168.103.211) check backup begin 02.26 17:41:59 node (192.168.103.212) check backup begin 02.26 17:42:01 node (192.168.103.209) check backup success 02.26 17:42:01 node (192.168.103.210) check backup success 02.26 17:42:01 node (192.168.103.211) check backup success 02.26 17:42:01 node (192.168.103.212) check backup success -------------------------------------------- 02.26 17:42:01 check BackUp success 02.26 17:42:01 Recover start -------------------------------------------- 02.26 17:42:01 node (192.168.103.209) Recover begin 02.26 17:42:01 node (192.168.103.210) Recover begin 02.26 17:42:01 node (192.168.103.211) Recover begin 02.26 17:42:01 node (192.168.103.212) Recover begin 02.26 17:42:14 node (192.168.103.209) Recover success 02.26 17:42:14 node (192.168.103.210) Recover success 02.26 17:42:14 node (192.168.103.211) Recover success 02.26 17:42:14 node (192.168.103.212) Recover success
-------------------------------------------- 02.26 17:42:14 Recover success
示例 3:对数据库中第二个备份周期的第一个备份点的数据进行恢复。
gcrcman>recover 1 0 02.26 17:47:30 check BackUp start -------------------------------------------- 02.26 17:47:30 node (192.168.103.209) check backup begin 02.26 17:47:30 node (192.168.103.210) check backup begin 02.26 17:47:30 node (192.168.103.211) check backup begin 02.26 17:47:30 node (192.168.103.212) check backup begin 02.26 17:47:32 node (192.168.103.209) check backup success 02.26 17:47:32 node (192.168.103.210) check backup success 02.26 17:47:32 node (192.168.103.211) check backup success 02.26 17:47:32 node (192.168.103.212) check backup success -------------------------------------------- 02.26 17:47:32 check BackUp success 02.26 17:47:32 Recover start -------------------------------------------- 02.26 17:47:32 node (192.168.103.209) Recover begin 02.26 17:47:32 node (192.168.103.210) Recover begin 02.26 17:47:32 node (192.168.103.211) Recover begin 02.26 17:47:33 node (192.168.103.212) Recover begin 02.26 17:47:44 node (192.168.103.209) Recover success 02.26 17:47:44 node (192.168.103.210) Recover success 02.26 17:47:44 node (192.168.103.211) Recover success 02.26 17:47:44 node (192.168.103.212) Recover success -------------------------------------------- 02.26 17:47:44 Recover success |
注意 |
对于实例级别恢复。仍然要求集群拓扑结果严格对等。包括 distribution ID。 当 用户重装集群后,即使用户保证了 coordinator, datanode 的个数, datanode 与 distribution 之间的关系,也可能因为 distribution ID 的变化而导致不能恢复。 |
可以按以下操作步骤解决:
步骤 1:查 看 备 份 恢 复 日 志 /opt/gcluster/log/gcluster/gcrcman.log , 查 看 备 份 恢 复 需 要 的distribution ID 及集群拓扑;
步骤2:按照备份恢复工具记录的拓扑,安装集群,构造 distribution;
步骤3:停止集群;
步骤4: 切 入 到 每 一 个 coordinator 上 , 进 入 /var/lib/gcware 目 录 。 执 行 head -n 10REDOLOG.m.n,查看当前的有效版本,如果是 A,则打开 DISTRIBUTION;如果是 B,则打开 DISTRIBUTION.bak。将里边的 distribution ID 修改为备份恢复工具期望的 ID。
步骤5:启动集群,执行恢复。
库级备份数据恢复
示例 1:对数据库中库级备份数据进行恢复。
$ python /opt/gcluster/server/bin/gcrcman.py -d /home/gbase/backuptest -e "recover database
f_vc.test"
04.16 13:20:19 check database BackUp start
--------------------------------------------
04.16 13:20:19 node (192.168.6.182) check database backup begin
04.16 13:20:19 node (192.168.6.187) check database backup begin
04.16 13:20:19 node (192.168.6.188) check database backup begin
04.16 13:20:19 node (192.168.6.189) check database backup begin
04.16 13:20:32 node (192.168.6.182) check database backup success
04.16 13:20:32 node (192.168.6.187) check database backup success
04.16 13:20:32 node (192.168.6.188) check database backup success
04.16 13:20:32 node (192.168.6.189) check database backup success
--------------------------------------------
04.16 13:20:32 check database BackUp success
04.16 13:20:32 recreate database f_vc.test start
04.16 13:20:33 recreate database f_vc.test end
04.16 13:20:33 recreate database f_vc.test tables start
04.16 13:20:33 node (192.168.6.182) recreate database tables begin
04.16 13:20:35 node (192.168.6.182) recreate database tables success
04.16 13:20:35 recreate database f_vc.test tables end
04.16 13:20:35 Recover database f_vc.test start
--------------------------------------------
04.16 13:20:35 node (192.168.6.182) Recover database begin
04.16 13:20:35 node (192.168.6.187) Recover database begin
04.16 13:20:35 node (192.168.6.188) Recover database begin
04.16 13:20:35 node (192.168.6.189) Recover database begin
04.16 13:20:50 node (192.168.6.182) Recover database success
04.16 13:20:50 node (192.168.6.187) Recover database success
04.16 13:20:50 node (192.168.6.188) Recover database success
04.16 13:20:50 node (192.168.6.189) Recover database success
--------------------------------------------
04.16 13:20:50 Recover database f_vc.test success, please refresh it!
表级备份数据恢复
示例 1:对数据库中表级备份数据进行恢复。
$ python /opt/gcluster/server/bin/gcrcman.py -d /home/gbase/backuptest -e "recover table f_vc.test.test 0 0" 04.16 13:27:08 check Table topology start -------------------------------------------- 04.16 13:27:08 node (192.168.6.182) check table topology begin 04.16 13:27:10 node (192.168.6.182) check table topology success -------------------------------------------- 04.16 13:27:10 check table topology success 04.16 13:27:10 check Table BackUp start -------------------------------------------- 04.16 13:27:10 node (192.168.6.182) check table backup begin 04.16 13:27:10 node (192.168.6.187) check table backup begin 04.16 13:27:10 node (192.168.6.188) check table backup begin 04.16 13:27:10 node (192.168.6.189) check table backup begin 04.16 13:27:24 node (192.168.6.182) check table backup success 04.16 13:27:24 node (192.168.6.187) check table backup success 04.16 13:27:24 node (192.168.6.188) check table backup success 04.16 13:27:24 node (192.168.6.189) check table backup success -------------------------------------------- 04.16 13:27:24 check table BackUp success 04.16 13:27:24 refresh table f_vc.test.test start 04.16 13:27:24 node (192.168.6.182) recreate table begin 04.16 13:27:26 node (192.168.6.182) recreate table success 04.16 13:27:26 refresh table f_vc.test.test end 04.16 13:27:27 Recover table f_vc.test.test start
04.16 13:27:27 node (192.168.6.182) Recover table begin 04.16 13:27:27 node (192.168.6.187) Recover table begin 04.16 13:27:27 node (192.168.6.188) Recover table begin 04.16 13:27:27 node (192.168.6.189) Recover table begin 04.16 13:27:41 node (192.168.6.182) Recover table success 04.16 13:27:41 node (192.168.6.187) Recover table success 04.16 13:27:41 node (192.168.6.188) Recover table success 04.16 13:27:41 node (192.168.6.189) Recover table success -------------------------------------------- 04.16 13:27:41 Recover table f_vc.test.test success, please refresh it!