KingbaseES V8R3备份恢复案例之---backup_label does not exist in KINGBASE_DATA

案例说明:
在KingbaseES V8R3集群主库执行sys_rman的全备时,出现‘backup_label does not exist in KINGBASE_DATA’的故障,如下图所示:

适用版本:
KingbaseES V8R3

一、问题现象
如下所示,数据库执行sys_rman物理备份:

[kingbase@node201 bin]$ ./sys_rman -U system -W 123456 -d test -B /home/kingbase/r3_bk -D /home/kingbase/cluster/R3HA/db/data1 -b full backup
ERROR: backup_label does not exist in KINGBASE_DATA.

二、问题分析
在主库上执行sys_rman后,在主库的数据目录下生成了一个backup_label文件,这时我们拷贝主库,拷贝出来的数据文件中就包括了backup_label文件。此文件在备份完成后从数据库data目录下删除,但是会保留在数据库的备份目录下。

如下所示,数据库物理备份目录:

[kingbase@node201 database]$ ls -lh
total 60K
-rw-------  1 kingbase kingbase  224 Oct 27 11:18 backup_label
-rw-------  1 kingbase kingbase  178 Oct 27 11:18 backup_label.old
drwx------ 10 kingbase kingbase   98 Oct 27 11:18 base
drwx------  2 kingbase kingbase 4.0K Oct 27 11:18 global
-rw-------  1 kingbase kingbase  131 Oct 27 11:18 kingbase.auto.conf
-rw-------  1 kingbase kingbase  24K Oct 27 11:18 kingbase.conf
-rw-r--r--  1 kingbase kingbase  194 Oct 27 11:18 recovery.done
drwx------  2 kingbase kingbase   17 Oct 27 11:18 sys_clog
drwx------  2 kingbase kingbase    6 Oct 27 11:18 sys_commit_ts
.......

backup_label文件内容:

[kingbase@node201 database]$ cat backup_label
START WAL LOCATION: 0/F1000028 (file 0000000300000000000000F1)
CHECKPOINT LOCATION: 0/F1000060
BACKUP METHOD: sys_start_backup
BACKUP FROM: master
START TIME: 2023-10-27 11:18:51 CST
LABEL: 2023-10-27 11:18:51 with sys_rman

三、问题复现

1、关闭数据库服务备份data目录
[kingbase@node201 db]$ cp -var data data1

2、启动数据库服务
如下所示,启动数据库服务后,指定的为data目录:

3、执行数据库物理备份
如下图所示,在备份时由于-D指定的数据库目录是data1,复现了以上错误:

由以上可知,数据库启动的数据目录是data,而对非数据库启动目录data1执行备份,sys_rman无法在data1下生成backup_label文件,在拷贝backup_label文件到备份目录下时缺失,因此出现了‘‘backup_label does not exist in KINGBASE_DATA’的故障。

4、问题解决
按照数据库服务启动指定的数据库路径备份。

四、总结
此次生产环境出现的此错误,是因为集群主库做过数据恢复,数据库当前的数据存储目录名不是data,集群启动后,数据库访问的路径是另外的目录。此时指定data目录备份,导致出现以上错误。应该是人为疏忽导致的错误。

posted @ 2024-03-29 18:38  KINGBASE研究院  阅读(23)  评论(0编辑  收藏  举报