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

相关文章

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批