首页 > 其他分享 >KingbaseES V8R3备份恢复案例之---backup_label does not exist in KINGBASE_DATA

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

时间:2024-03-29 18:45:22浏览次数:18  
标签:11 V8R3 数据库 kingbase label 27 KINGBASE backup

案例说明:
在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目录备份,导致出现以上错误。应该是人为疏忽导致的错误。

标签:11,V8R3,数据库,kingbase,label,27,KINGBASE,backup
From: https://www.cnblogs.com/kingbase/p/17923263.html

相关文章

  • KingbaseES集群运维案例之-- V8R3与V8R6集群wal函数应用
    案例说明:KingbaseESV8R3和V8R6集群在通过函数获取wal日志的相关信息时,两个版本的函数名称不同,本案例做了函数应用的对比和总结。适用版本:KingbaseESV8R3/R6一、KingbaseESV8R3相关函数Tips:在V8R3的版本,事务日志名称为xlog。1、查询数据库支持的函数test=#selectpron......
  • kingbaseES V8R6集群运维案例之---配置priority防止failover切换案例
    案例说明:在一主多备的架构中,需要配置一台备库在主备切换时,不能选举为主库。对于repmgr主备切换主库的选择算法如下:Tips:Repmgr选举候选备节点会以以下顺序选举:LSN---->Priority---->Node_ID。系统会先选举一个LSN比较大者作为候选备节点;如LSN一样,会根据Priority优先级进行比......
  • KingbaseES V8R6集群运维案例之---级联备库upstream节点故障
    KingbaseESV8R6集群运维案例之---级联备库upstream节点故障案例说明:在KingbaseESV8R6集群,构建级联备库后,在其upstream的节点故障后,级联备库如何处理?适用版本:KingbaseESV8R6集群架构:案例一:一、配置集群的recovery参数(allnodes)Tips:关闭备库的aut-recovery机制......
  • KingbaseES生成动态SQL
    1.动态SQL动态SQL在程序启动时会根据输入参数替换相应变量。使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能。动态SQL可以是代码或SQL语句的一部分,动态部分要么由开发人员输入,要么由程序本身创建。1.1动态SQL使用场景......
  • KingbaseES Create Index include 介绍
    在数据库性能优化的世界中,索引始终扮演着至关重要的角色。KingbaseES创建索引语法中的INCLUDE关键字为索引创建提供了额外的灵活性,允许在B-Tree索引中包含额外的非键(Non-Key)列。这些列虽然不参与索引的排序或搜索过程,但可用于提高某些查询的效率,尤其是在执行索引覆盖扫描(Index-......
  • KingbaseES 临时表
    临时表在数据库管理和数据处理中有着广泛的应用,主要用于存储临时数据或进行中间计算。临时表中的数据对会话是私有的,每个会话只能看到和修改自己会话的数据。KingbaseES支持本地临时表和全局临时表。创建临时表时若不指定GLOBAL或LOCAL,则默认值指定为LOCAL。本地临时表和全局临......
  • KingbaseES 执行计划常见节点介绍
    KingbaseES中explain命令来查看执行计划时最常用的方式。其命令格式如下:explain[option]statement其中option为可选项,常用的是以下5种情况的组合:analyze:执行SQL并且显示实际的运行时间和其他统计信息,默认FALSE。注意:加了analyze会真正执行SQL语句verbose:显示附加信息,比如......
  • KingbaseES 通过触发器实现查看表的创建时间
    从oracle迁移至KingbaseES的用户,经常会问在KingbaseES中怎么查询表的创建时间。由于KingbaseES本身并不直接存储表的创建时间,所以获取这一信息通常需要依赖于间接方法或日志记录。如果确实有这种需求,可以通过创建事件触发器的将相关的信息保存下来。建立保存信息的数据表CREAT......
  • KingbaseES查找慢查询语句和阻塞会话
    在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤。数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈。当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执行时间过长的查询,这些查询通常被称为“慢查询”。同时,阻塞会话即那......
  • KingbaseES自动生成列介绍
    在KingbaseES中createtable语句支持GENERATEDcolumn(生成列)。生成列是一种特别的列类型,它的值基于其他列的值计算得出。因此,生成列之于列,有点像视图之于表的关系。存在两种类型的生成列:存储生成列和虚拟生成列。存储生成列在数据被写入(插入或更新操作)时进行计算,并且像常规列......