OpenGauss备份与恢复

发布时间 2023-05-01 17:03:34作者: Harda

备份与恢复概述

数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型,以及多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。

备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。

  • 逻辑备份与恢复:通过逻辑导出对数据进行备份,逻辑备份只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据。对于故障点和备份点之间的数据,逻辑备份无能为力,逻辑备份适合备份那些很少变化的数据,当这些数据因误操作被损坏时,可以通过逻辑备份进行快速恢复。如果通过逻辑备份进行全库恢复,通常需要重建数据库,导入备份数据来完成,对于可用性要求很高的数据库,这种恢复时间太长,通常不被采用。由于逻辑备份具有平台无关性,所以更为常见的是,逻辑备份被作为一个数据迁移及移动的主要手段。

  • 物理备份与恢复:通过物理文件拷贝的方式对数据库进行备份,以磁盘块为基本单位将数据从主机复制到备机。通过备份的数据文件及归档日志等文件,数据库可以进行完全恢复。物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的场景。通过合理规划,可以低成本进行备份与恢复。

  • 闪回恢复:利用回收站的闪回恢复删除的表。数据库的回收站功能类似于windows系统的回收站,将删除的表信息保存到回收站中。利用MVCC机制闪回恢复到指定时间点或者CSN点。

    以下为openGauss支持的三类数据备份恢复方案,备份方案也决定了当异常发生时该如何恢复

表 1 三种备份恢复类型对比

备份类型

应用场景

支持的介质

工具名称

恢复时间

优缺点

逻辑备份与恢复

适合于数据量小的场景。

可以备份单表和多表,单database和所有database。备份后的数据需要使用gsql或者gs_restore工具恢复。数据量大时,恢复需要较长时间。

磁盘

SSD

gs_dump

纯文本格式数据恢复时间长。归档格式数据恢复时间中等。

导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。导出的格式可选择纯文本格式或者归档格式。纯文本格式的数据只能通过gsql进行恢复,恢复时间较长。归档格式的数据只能通过gs_restore进行恢复,恢复时间较纯文本格式短。

gs_dumpall

数据恢复时间长。

导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及openGauss所有数据库公共的全局对象。

只能导出纯文本格式的数据,导出的数据只能通过gsql进行恢复,恢复时间较长。

物理备份与恢复

适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的WAL归档日志和运行日志进行备份。

gs_backup

数据量小数据恢复时间快。

导出数据库相关信息的OM工具,可以导出数据库参数文件和二进制文件。帮助openGauss备份、恢复重要数据、显示帮助信息和版本号信息。在进行备份时,可以选择备份内容的类型,在进行还原时,需要保证各节点备份目录中存在备份文件。在数据库实例恢复时,通过静态配置文件中的数据库实例信息进行恢复。只恢复参数文件恢复时间较短。

gs_basebackup

恢复时可以直接拷贝替换原有的文件, 或者直接在备份的库上启动数据库,恢复时间快。

对服务器数据库文件的二进制进行全量拷贝,只能对数据库某一个时间点的时间作备份。结合PITR恢复,可恢复全量备份时间点后的某一时间点。

gs_probackup

恢复时可以直接恢复到某个备份点,在备份的库上启动数据库,恢复时间快。

gs_probackup是一个用于管理openGauss数据库备份和恢复的工具。它对openGauss 实例进行定期备份。可用于备份单机数据库或者数据库实例主节点,为物理备份。 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。 支持增量备份、定期备份和远程备份。增量备份时间相对于全量备份时间比较短,只需要备份修改的文件。当前默认备份是数据目录,如果表空间不在数据目录,需要手动指定备份的表空间目录进行备份。当前只支持在主机上执行备份。

闪回恢复

适用于:

1)误删除表的场景;

2)需要将表中的数据恢复到指定时间点或者CSN。

可以将表的状态恢复到指定时间点或者是表结构删除前的状态,恢复时间快。

闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。

闪回支持两种恢复模式:

  • 基于MVCC多版本的数据恢复:适用于误删除、误更新、误插入数据的查询和恢复,用户通过配置旧版本保留时间,并执行相应的查询或恢复命令,查询或恢复到指定的时间点或CSN点。
  • 基于类似windows系统回收站的恢复:适用于误DROP、误TRUNCATE的表的恢复。用户通过配置回收站开关,并执行相应的恢复命令,可以将误DROP、误TRUNCATE的表找回。

当需要进行备份恢复操作时,主要从以下四个方面考虑数据备份方案。

  • 备份对业务的影响在可接受范围。

  • 数据库恢复效率。

    为尽量减小数据库故障的影响,要使恢复时间减到最少,从而使恢复的效率达到最高。

  • 数据可恢复程度。

    当数据库失效后,要尽量减少数据损失。

  • 数据库恢复成本。

在现网选择备份策略时参考的因素比较多,如备份对象、数据大小、网络配置等,表2列出了可用的备份策略和每个备份策略的适用场景。

 

表 2 备份策略典型场景

备份策略

关键性能因素

典型数据量

性能规格

数据库实例备份

  • 数据大小
  • 网络配置

数据:PB级

对象:约100万个

备份:

  • 每个主机80 Mbit/s(NBU/EISOO+磁盘)
  • 约90%磁盘I/O速率(SSD/HDD)

表备份

  • 表所在模式
  • 网络配置(NBU)

数据:10 TB级

备份:基于查询性能速度+I/O速度

说明:

多表备份时,备份耗时计算方式:

""总时间 = 表数量 x 起步时间 + 数据总量 /  数据备份速度

其中:

  • 磁盘起步时间为5s左右,NBU起步时间比DISK长(取决于NBU部署方案)。
  • 数据备份速度为单节点50MB/s左右(基于1GB大小的表,物理机备份到本地磁盘得出此速率)。

表越小,备份性能更低。

 

 

 

 

 

 

 

 

 

 

 

转载于:https://docs.opengauss.org/zh/docs/5.0.0/docs/DatabaseOMGuide/%E5%A4%87%E4%BB%BD%E4%B8%8E%E6%81%A2%E5%A4%8D%E6%A6%82%E8%BF%B0.html