GaussDB数据库的备份与恢复

news/2024/12/27 11:36:30/文章来源:https://www.cnblogs.com/xiaoxu0211/p/18635282


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

备份sql语句
在这里插入图片描述

在这里插入图片描述

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

开启归档:

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}

-t:Roach接口支持多种功能。指定该参数为backup,表示调用备份功能。

-media-type:-备份所需的介质类型。

NBU

Disk(磁盘)

EISOO

OBS

NAS

–compression-type:

(2)压缩类型
1:zlib

2:lz4

默认:–compression-type 2

–compression-level

(3)压缩级别
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时表示数据库正常运行,可以备份数据库。

  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 --prior-backup-key 20221125_102746 --validate-prior-backups force}
  1. 备份成功
    在这里插入图片描述

6.查看物理全量备份集

{ python3 GaussRoach.py -t show --related-backup-keys --metadata-destination /home/omm/meta/ --backup-key 20221125_102746}

在这里插入图片描述

7.查看物理增量备份集

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

在这里插入图片描述

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

{python3 GaussRoach.py -t show --all-backups --metadata-destination /home/omm/meta}

在这里插入图片描述

停止物理备份:

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

如果有一个全量备份和一个增量备份同时执行,那么stop操作会一起停止这两个备份任务。
命令示例

{python3 $GPHOME/script/GaussRoach.py -t stop}

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

1.查看备份状态

{python3 GaussRoach.py -t show --all-backups --metadata-destination /home/omm/meta}

在这里插入图片描述

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}

在这里插入图片描述

查看集群状态:

在这里插入图片描述

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

{python3 GaussRoach.py -t start}

在这里插入图片描述

8.问题记录
物理备份(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]:群集平衡检查失败当群集不平衡时,备份无法继续

漫游操作备份失败。

查看集群状态:
balanced显示为NO,当前集群不平衡,不平衡原因可能是发生过切换或者其他原因导致。
在这里插入图片描述

balanced:平衡状态。显示是否有数据库实例发生过主备切换而导致主机负载不均衡。

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

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

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

{gs_om -t switch --reset}

在这里插入图片描述

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

本文作者:张欣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859760.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UAC简介及对比

什么是UAC/UAD UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。 UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功能,如音量和音调…

k8s 1.23 安装kubesphere 3.4

参考 : https://blog.csdn.net/weixin_43810267/article/details/1333477361、下载kubesphere的yamlwget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/downlo…

【linux合集】单机部署clickhouse--ubuntu环境

clickhouse单机部署--ubuntu部署 导入clickhouse密钥操作 (ClickHouse(大数据分析DBMS)的软件包由其开发人员使用公钥进行签名,我们需要在我们的系统上使用它。这是因为只有我们的系统才能验证我们得到的软件包,它们来自源代码,因为它们是由其开发人员发布的。并且没有被…

欧拉OpenEuler安装xxl-job-admin

1. 安装xxl-job-admin unzip xxl-job-admin.zip ls mv xxl-job-admin-2.4.0/ /home cd /home/ xxl-job-admin-2.4.0/ cd bin/ chmod +x *.sh2. 配置 cd ../conf/ vim application.properties 3.启动 cd ../bin/ sh startup.sh 4. 配置防火墙 firewall-cmd --permanent --add-po…

什么是 单点登录SSO?SSO工作原理

单点登录(SSO)让用户通过一组凭证访问多个应用,简化了多平台登录流程。在没有 SSO 的情况下,用户需为每个应用单独管理用户名和密码,而 SSO 通过身份提供商(IdP)和信任的服务提供商(SP)实现统一认证。这不仅减少了用户的密码管理负担,还降低了 IT 管理员的工作量,提…

K-means算法分析与实践

本文章详解了K-means聚类算法的原理及其优缺点,进行了K-means聚类算法的Python及C++基础实现。一、聚类分析概述定义:根据“物以类聚”原理,将本身尚未归类的样本根据多个维度(属性)聚集成不同的组,这样的一组数据对象的集合叫做簇或群组。经过聚类划分后的群组特性目标:…

(五).NET6.0使用Serilog进行配置和实现日志记录

1.首先安装Serilog六件套神装包也可以对个别相应的包进行删除等,例如:1是读取配置文件的,如果不需要通过配置文件进行操作,就可以不使用这个包。2是打印到控制台的,如果不需要打印到控制台,也可以不引用。3是写入到文件的,如果不需要写入到文件,也是可以不提供的。我在…

简洁的带缩略图的jquery焦点图特效

这是一款简洁的带缩略图的jquery焦点图特效。该焦点图使用无序列表来作为轮播图片结构,通过CSS来进行布局,然后使用简单的jquery代码来控制焦点图的切换。在线预览 下载使用方法 在页面中引入jquery。<script src="path/to/jquery.min.js" type="text/j…

(四).NET6.0程序部署到Docker上

1.确保安装Docker2.把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Docker支持,选择 Linux然后会自动生成Dockerfile文件,在里面可以看见Docker有关的配置信息。3.对Dokcerfile的配置文件做一些更改4.然后修改dockerfile文件的属性5.…

(二).NET6.0使用Filter过滤器

1、创建一个webapi方法2、创建过滤器,继承自Attribute, IAsyncActionFilter 不存在需要先手动引用有关的包:Microsoft.AspNetCore.Mvc 继承 Attribute 是为了让 你定义的Filter 成为一个自定义特性,使其能够通过特性语法 [XXXFilter] 应用到控制器或方法上,从而为它们添加元…

欧拉OpenEuler安装tomcat

1. 安装tomcat unzip tomcat.zip mv tomcat /home/ cd /home/tomcat chmod +x *.sh cd bin chmod +x *.sh/home/tomcat下 三个sh 进行启动关闭 2. 开web端口 firewall-cmd --list-ports firewall-cmd --permanent --add-port=9090/tcp firewall-cmd --reload.zstitle { width:…

Java编程规范-processXXX()和handleXXX()的区别

Java 编程规范 类名、接口名: 类名和接口名应该是名词,首字母大写,采用驼峰命名法。例如:CustomerData,OrderProcessor。 方法名: 方法名应该是动词,首字母小写,采用驼峰命名法。例如:calculateTotal,processOrder。 变量名: 变量名应该清晰、描述性强,首字母小写,…