GaussDB数据库的备份与恢复

2024-05-27 11:52

本文主要是介绍GaussDB数据库的备份与恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

开启归档:

 

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

4. 全量物理备份成功:

备份类型需要根据传入的变量进行判断
增量备份(需要在全量备份的基础上来做) 磁盘备份:
去全量备份的磁盘目录看下全量备份的名称后填写

{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}

5. 备份成功

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 balanceRoach operation backup failed.

正在分析配置文件。

[GAUSS-53403]:群集平衡检查失败当群集不平衡时,备份无法继续

漫游操作备份失败。

查看集群状态:
balanced显示为NO,当前集群不平衡,不平衡原因可能是发生过切换或者其他原因导致。

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

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

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

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

{gs_om -t switch --reset}

变为yes就可以进行备份了。

 本文作者:张欣

这篇关于GaussDB数据库的备份与恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007398

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C