原文链接: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技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。