云数据库 GaussDB表备份失败如何避免?

76 阅读3分钟

告警解释

=======

云数据库 GaussDB集群表备份失败,产生此告警。

对系统的影响

对实例业务无影响;表备份失败会导致后续无法用该备份执行恢复。

可能原因
  • 待备份表不存在。
  • 待备份表所在的SCHEMA不存在。
  • 待备份表所在的数据库不存在。
  • 待备份表的大小超过100GB。
处理步骤
  1. 在告警平台的告警信息中,查看可能原因。

  2. 根据不同的原因,定位不同的问题。

    • 场景一:报错信息为“Database <***> is not exists. ”,则说明待备份表所在的数据库不存在,无法备份,其中报错信息中的“***”代表数据库名称。

      解决方案:

      1. 执行如下指令,连接实例。

        gsql -d postgres -h 10.0.0.0 -U root -p 8000
        

        登录时数据库名称需要指定为postgres,10.0.0.0分布式版需要替换为CN节点的IP地址,主备版需要替换为主DN节点的IP地址。

      2. 执行如下指令,查询数据库是否存在。

        SELECT count(1) FROM pg_database where datname='***';
        

        ***需要替换为报错的数据库名称,如果为0,表示不存在指定的数据库,为1表示存在指定的数据库。

    • 场景二:报错信息为“Schema <***> is not exists. ”,则说明待备份表所在的schema不存在,无法备份,其中报错信息中的“***”代表schema名称。

      解决方案:

      1. 执行如下指令,连接实例。

        gsql -d *** -h 10.0.0.0 -U root -p 8000
        

        登录时***需要替换为报错schema所在的数据库,10.0.0.0分布式版需要替换为CN节点的IP地址,主备版需要替换为主DN节点的IP地址。

      2. 执行如下指令,查询schema是否存在。

        select count(1) from pg_namespace where nspname ='***';
        

        ***需要替换为报错schema名称,如果为0,表示不存在schema,为1表示存在schema。

    • 场景三:报错信息为“Table <***> is not exists. ”,则说明待备份表不存在,无法备份,其中报错信息中的“***”代表表名称。

      解决方案:

      1. 执行如下指令,连接实例。

        gsql -d *** -h 10.0.0.0 -U root -p 8000
        

        登录时***需要替换为报错表所在的数据库,10.0.0.0分布式版需要替换为CN节点的IP地址,主备版需要替换为主DN节点的IP地址。

      2. 执行如下指令,查询表是否存在。

        SELECT count(1) FROM pg_tables WHERE SCHEMANAME = 'schema_name' and TABLENAME='table_name';
        

        schema_name需要替换为报错表所在schema名称, table_name需要替换为报错表的名称。如果为0,表示不存在table,为1表示存在table。

    • 场景四:报错信息为“<table_name> size: *** GB is larger than 100 GB. Stop table backup.”, table_name代表table名称,***代表当前表的大小,单位:GB表示待备份的表大小已经超过了约束限制,不再备份。

      解决方案:

      1. 执行如下指令,连接实例。

        gsql -d *** -h 10.0.0.0 -U root -p 8000
        

        登录时***需要替换为报错表所在的数据库,10.0.0.0分布式版需要替换为CN节点的IP地址,主备版需要替换为主DN节点的IP地址。

      2. 执行如下指令,查询表的大小。

        select pg_relation_size(schema_name.table_name);
        

        schema_name需要替换为报错表所在schema名称,table_name需要替换为报错表的名称。输出值为表的大小,如果超过100G,需要调整表的大小,大于100G的表不提供表备份功能。

    • 场景五:报错信息为“backup table failed. ”,表示导出数据,或者上传到数据到OBS时失败。

      解决方案:执行3

  3. 参考下载管理节点日志收集日志,并收集告警信息,联系技术支持进行处理。

    需要下载的日志信息有:

    租户侧:

    Agent组件下的:

    /home/Ruby/log/audit_service.log

告警清除

此告警修复后,需要在当前告警页面手工清除此告警。

参考信息

不涉及。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…