南大通用GBase 8c备份恢复功能概述

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

随着业务数据呈爆发式增长,数据处理、分析查询性能面临严峻挑战,对数据备份与恢复能力也提出了更高要求。在意外、故障或灾难突发时,若数据库无法及时恢复,系统与业务的可用性将无法保障。南大通用GBase 8c 集群具备强大的全局备份与恢复能力,支持全量及增量备份与恢复。还可以通过通用管理平台,便捷地配置备份方式、设定备份时间频率,并全面查看所有备份记录,为用户提供了集群级、库级、表级等多层次的备份和恢复功能,满足不同场景的数据保护需求。本文将简单描述GBase 8c数据库的备份恢复功能:

一、备份类型

1.物理备份

物理备份是通过物理文件拷贝实现,以磁盘块为单位将数据从主机复制到备机。例如,gs_basebackup 工具会对服务器数据库文件进行二进制全量拷贝,记录数据库在某一时刻的完整状态。适用于物理备份速度快,适用于数据量庞大且对恢复时间要求较高的业务数据库场景,常用于全量数据备份恢复,也可备份整个数据库的 WAL 归档日志和运行日志。

工具及特点:

gs_basebackup:恢复时可直接用备份文件替换原有文件,或在备份库上直接启动数据库,恢复速度快。结合 PITR(时间点恢复),可恢复至全量备份时间点后的指定时间点。例:

arduino 复制代码
gs_basebackup -D /home/gbase/physical/back/ -p 15432

参数:

-c,--checkpoint=fast|spread :设置检查点模式为 fast 或者 spread(默认)。

-l,--label=LABEL :为备份设置标签。

-T,--tablespace-mapping=olddir=newdir :在备份期间将目录 olddir 中的表空间重定位到 newdir 中。

-F,--format=plain|tar :设置输出格式为 plain(默认)或者 tar。

gs_probackup:用于管理 GBase 8c 数据库备份与恢复,可定期备份单机数据库或集群主节点数据库,支持增量备份、定期备份及远程备份。增量备份仅备份修改文件,耗时较全量备份短。默认备份数据目录,若表空间不在该目录,需手动指定表空间目录进行备份,目前仅支持在主机执行备份操作。

前提条件

  • 可以正常连接 GBase 8c 数据库。
  • 若要使用 PTRACK 增量备份,需在 postgresql.conf 中手动添加参数"enable_cbm_tracking = on"。
  • 为 了 防 止 xlog 在 传 输 结 束 前 被 清 理 , 请 适 当 调 高 postgresql.conf 文 件 中wal_keep_segments 的值。

进行备份

查看备份

2.逻辑备份​

逻辑备份采用逻辑导出方式,将数据库中的数据以 SQL 语句等逻辑形式提取出来。例如,gs_dump 工具会把数据库的数据及对象结构转化为一系列 SQL 语句,恢复时通过执行这些语句重建数据库对象并插入数据。适用于备份变动较少的数据,如基础字典表数据。当这类数据因误操作受损时,可借助逻辑备份快速恢复。此外,由于逻辑备份具有平台无关性,常被用于数据迁移,方便将 GBase 8c 数据库数据迁移至其他类型数据库,或在不同环境间转移数据。​

工具及特点:​

  • gs_dump:可导出单个数据库或其中特定对象(模式、表、视图等),支持默认的 postgres 数据库及自定义数据库。导出格式有纯文本和归档两种。纯文本格式数据需用 gsql 恢复,因恢复时需逐行执行 SQL 语句重建数据和对象,耗时较长;归档格式数据则使用 gs_restore 恢复,其采用更高效方式处理数据与对象重建,恢复时间相对较短。
  • gs_dumpall:用于导出 GBase 8c 数据库的所有相关信息,包括 postgres 数据库、自定义数据库数据,以及所有数据库共享的全局对象。仅支持导出纯文本格式数据,恢复时需使用 gsql,恢复时间长。

二、备份策略制定

制定 GBase 8c 数据库备份策略时,需综合考量以下因素:

  • 数据库恢复效率

为最大程度降低数据库故障影响,应尽量缩短恢复时间,提高恢复效率。对于数据量大、业务连续性要求高的数据库,优先选择物理备份结合增量备份方式,减少备份与恢复耗时。例如,在线交易数据库可每日进行一次全量物理备份,在业务低峰期多次执行增量备份,确保故障时能快速恢复至故障前状态。

  • 数据可恢复程度

数据库失效时,需最大程度减少数据损失。这要求根据业务对数据重要性和完整性的要求,确定备份频率与方式。对于核心业务数据,可能需更频繁备份,甚至采用实时备份机制,确保任何情况下都能充分恢复数据。

  • 数据库恢复成本

实际网络环境中选择备份策略时,需考虑诸多因素,如备份对象、数据规模、网络配置等。若网络带宽有限,频繁大规模全量备份可能影响业务网络运行,此时可采用增量备份结合定期全量备份,减少网络传输数据量。同时,需考虑备份存储设备成本,若成本较高,可合理调整备份保留时间,避免过多备份数据占用大量存储资源。

三、恢复操作流程

1. 物理恢复

基于 gs_backup 恢复:恢复时,确保各节点备份目录中有备份文件。根据备份时选择的内容类型,执行相应恢复命令。若仅恢复参数文件,恢复时间较短;若恢复整个数据库,则按工具恢复流程操作,依据备份文件中的数据和配置信息重建数据库。

基于 gs_basebackup 恢复:可直接用备份文件替换原有数据库文件,然后启动数据库完成恢复。若结合 PITR 恢复至某一时间点,还需依据归档日志等信息确定具体恢复时间点,并按相应流程操作。

基于 gs_probackup 恢复:使用 gs_probackup 工具恢复时,指定要恢复到的备份点,工具将数据库恢复至该备份点状态,之后可在备份库上启动数据库。

2.逻辑恢复

基于 gs_dump 恢复:若使用 gs_dump 导出的是纯文本格式数据,恢复时需用 gsql 工具。首先登录目标数据库环境,执行 gsql 命令并指定备份文件路径,gsql 将逐行执行文件中的 SQL 语句,重建数据库对象并插入数据。若为归档格式数据,则使用 gs_restore 工具,指定备份文件路径后,gs_restore 将按归档格式结构高效恢复数据库。

基于 gs_dumpall 恢复:由于 gs_dumpall 导出的是所有数据库相关信息且为纯文本格式,恢复时使用 gsql 工具。登录目标数据库环境后,执行 gsql 命令并指定 gs_dumpall 生成的备份文件路径,gsql 将依次恢复所有数据库及其对象和数据。

四、备份建议

  • 备份策略:制定合理的备份计划,建议每日进行全量备份,每小时进行增量备份。
  • 存储管理:定期清理过期备份,采用异地存储策略,防止本地存储故障导致备份丢失。
  • 测试验证:定期进行恢复演练,确保备份数据的可用性和完整性。
  • 安全防护:对备份数据进行加密处理,限制备份目录的访问权限。

通过合理运用 GBase 8c 的物理备份与恢复机制,企业可以构建高效可靠的数据保护体系,确保在各种复杂环境下的数据安全与业务连续性。在实际应用中,建议结合业务需求制定个性化的备份恢复策略,并定期进行维护和验证,以充分发挥 GBase 8c 的强大功能。

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

相关推荐
科技小花2 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸3 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain3 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希3 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神3 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员3 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java4 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿4 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴4 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU4 小时前
三大范式和E-R图
数据库