• GaussDB-物理、逻辑备份 使用方法和[GAUSS-53403]解决办法


    1.逻辑备份-gs_dump

    gs_dump是一款用于导出数据库相关信息的工具,支持导出完整一致的数据库对象(数据库、模式、表、视图等)数据,同时不影响用户对数据库的正常访问。

    1物理备份sql语句:

    [omm@gaussdb01 data]$ gs_dump -U lily -W qwe123QW -f /opt/software/gsdump.hr.sql -p 30100 db_hr -F p
    
    
    • 1
    • 2

    在这里插入图片描述
    gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。

    1. gs_dump工具由操作系统用户omm执行。
    2. gs_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。
    3. gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出
    4. gs_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。
      纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该 SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。
      归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见下页表格。该导出结果必须与gs_restore配合使用来恢复数据库,gs_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。
      在这里插入图片描述

    2.逻辑备份恢复数据库

    gsql -p 30100 db_hr -r -f /home/omm/XXX.sql

    3.物理备份(分布式集群验证)

    集中式单节点不支持该工具。
    GaussRoach.py工具是GaussDB(for openGauss)提供的用于备份和恢复的实用工具。可对整个数据库中的数据、WAL归档日志和运行日志进行备份。
    GaussRoach.py工具是一款数据库高可用性以及容灾恢复策略的备份管理工具。使用该工具可以备份恢复数据库;不仅可以备份到物理磁盘,也可以备份到OBS、NBU和EISOO。数据库级备份包含数据库静态配置文件(cluster_static_config),数据库动态配置文件(cluster_dynamic_config),数据节点DN(Datanode)及其备实例。
    备份需在集群主节点执行
    前提:集群级备份前,需要执行如下命令开启集群归档模式
    脚本路径:XXX/data/cluster/tools/script/GaussRoach.py
    开启归档命令:python3 GaussRoach.py -t config --archive=true -p
    开启归档:
    在这里插入图片描述
    1:全量备份

    python3 GaussRoach.py -t backup --master-port 7000 --media-destination /home/omm/media --media-type DISK --compression-type 2 --compression-level 5 --metadata-destination /home/omm/meta
    
    • 1

    -t:Roach接口支持多种功能。指定该参数为backup,表示调用备份功能。
    -media-type:-备份所需的介质类型。

    • NBU
    • Disk(磁盘)
    • EISOO
    • OBS
    • NAS
      –compression-type:
      压缩类型
      1:zlib
      2:lz4
      默认:–compression-type 2
      –compression-level
      压缩级别。
      0代表快速或无压缩。
      9代表慢速或最大压缩。
      说明
      值越小,压缩越快。值越大,压缩越好。
      表级备份不支持压缩。
      默认:–compression-level 5
      –media- destination:指定介质的目的备份路径。
    • Disk(磁盘):
    • NBU:样例策略
    • EISOO:roach
    • OBS:不生效
    • NAS:挂载的NAS共享盘路径

    说明:

    • 使用备份数据库到EISOO时,确保已放入正确版本的libgaussdbmml.so

    • 使用备份数据库到NAS时,确保数据库实例上所有节点的指定路径挂载的是同一个NAS共享盘

    • 对于磁盘:–media-destination /home/cam/backup

    • 对于NBU:–media-destination Samplepolicy

    • 对于EISOO:roach

    • 对于NAS:–media-destination /home/cam/backup

    –metadata-destination:

    元数据文件位置。
    –metadata-destination /home/username

    • 对于数据库级备份,必须提供介质类型、目标介质和主代理端口,否则Roach工具会报错。
    • 当前版本不支持表级备份功能,包括单表备份和多表逻辑备份。
    • 数据库级备份前,请执行如下命令检查数据库运行状态,cluster_state为Normal时表示数据库正常运行,可以备份数据库。

    全量物理备份成功:
    在这里插入图片描述
    备份类型需要根据传入的变量进行判断
    增量备份(需要在全量备份的基础上来做) 磁盘备份:
    去全量备份的磁盘目录看下全量备份的名称后填写
    在这里插入图片描述

    [omm@gaussdb02 script]$ [omm@gaussdb02 script]$ python3 GaussRoach.py -t backup --master-port 7000 --media-destination /home/omm/media --media-type DISK --compression-type 2 --compression-level 5 --metadata-destination /home/omm/meta --prior-backup-key 20221125_102746 --validate-prior-backups force
    
    • 1

    备份成功:
    在这里插入图片描述

    查看物理全量备份集:

    [omm@gaussdb02 script]$ python3 GaussRoach.py -t show --related-backup-keys --metadata-destination /home/omm/meta/ --backup-key 20221125_102746
    
    • 1

    在这里插入图片描述

    查看物理增量备份集:

    python3 GaussRoach.py -t show --related-backup-keys --metadata-destination /home/omm/meta/ --backup-key 20221125_104547
    
    • 1

    在这里插入图片描述

    查看所有备份集(该命令无法确定备份是否有效)

    [omm@gaussdb02 script]$ python3 GaussRoach.py -t show --all-backups --metadata-destination /home/omm/meta
    
    • 1

    在这里插入图片描述

    停止物理备份:

    Roach也兼容使用python3 GaussRoach.py –t stop –F命令停止备份,有-F和无-F参数的执行结果相同。

    • 如果有一个全量备份和一个增量备份同时执行,那么stop操作会一起停止这两个备份任务。
      -命令示例
    python3 $GPHOME/script/GaussRoach.py -t stop
    
    • 1

    使用物理备份集恢复数据库:

    1.查看备份状态:

    python3 GaussRoach.py -t show --all-backups --metadata-destination /home/omm/meta
    
    • 1

    在这里插入图片描述
    2.执行恢复脚本:

    python3 GaussRoach.py -t restore --clean --master-port 7000 --media-destination /home/omm/media --media-type DISK --backup-key 20221125_102746 --metadata-destination /home/omm/meta
    
    • 1

    在这里插入图片描述
    查看集群状态:
    在这里插入图片描述

    3.执行恢复脚本成功后,必须执行命令启动集群,否则集群无法启动

    python3 GaussRoach.py -t start
    
    • 1

    在这里插入图片描述

    问题记录:

    物理备份(Roach)失败[GAUSS-53403] :
    Parsing the configuration file.
    **[GAUSS-53403]** : Cluster balance check failedbackup cannot continue when the cluster is not balance
    Roach operation backup failed.
    正在分析配置文件。
    
    [GAUSS-53403]:群集平衡检查失败当群集不平衡时,备份无法继续
    
    漫游操作备份失败。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查看集群状态:
    balanced显示为NO,当前集群不平衡,不平衡原因可能是发生过切换或者其他原因导致。
    在这里插入图片描述
    balanced:平衡状态。显示是否有数据库实例发生过主备切换而导致主机负载不均衡。

    • Yes:表示数据库处于负载均衡状态。
    • No:表示数据库未处于负载均衡状态。

    执行命令恢复数据库初始状态(目前为测试环境,生产不使用此命令)

    gs_om -t switch --reset
    
    • 1

    在这里插入图片描述
    变为yes就可以进行备份了。
    在这里插入图片描述

    
    
    • 1
  • 相关阅读:
    Linux - 虚拟机的三种网络模式
    java代理相关知识
    网工内推 | 信息安全主管,CISP认证优先,最高25K,加绩效提成
    解决Linux服务器中docker访问报127.0.0.1:2375拒绝连接 (Connection refused)的问题
    有什么不起眼却挣钱的副业?
    软件开发和测试工作似乎被分等级了,请教各位,在你们眼中,测试工作的地位如何?
    小剧场短剧影视小程序源码分享,搭建自己的短剧小程序
    【数据结构】栈
    【讲解下常见的Web前端框架】
    漏洞复现--安恒明御安全网关文件上传
  • 原文地址:https://blog.csdn.net/m0_46400195/article/details/128013809