备份与恢复
备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因意外而遭到损坏,这些备份文件可用来恢复数据库。
恢复是与备份相对应的数据库管理工作,系统进行数据库恢复的过程中,系统会根据备份文件创建数据库并且恢复数据库中的数据。
数据备份是保护数据安全的重要手段之一,数据库的备份与恢复是数据库管理员维护数据安全性和完整性的重要操作。Vastbase数据库支持三种备份恢复类型,以及多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。
备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。
逻辑备份与恢复
物理备份与恢复
闪回恢复
备份类型介绍
逻辑备份与恢复:
逻辑备份是从数据库中导出数据并写入一个输出文件,该文件的格式与原数据库的文件格式不同,只是原数据库中数据内容的一个映像。逻辑备份时可以指定导出的对象,包括表定义、数据、模式等,也可以导出所有数据库相关信息。逻辑备份通过逻辑导出对数据进行备份,只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据。
物理备份与恢复:
物理备份是通过对数据库的物理文件(如数据、日志文件等)进行拷贝的方式对数据库进行备份。当数据库发生故障时,可以使用这些备份文件进行还原。通过备份的数据文件及归档日志等文件,可以对数据库进行完全恢复。
闪回恢复:
利用回收站的闪回恢复删除的表。回收站功能会将删除的表信息保存到回收站中。利用MVCC机制闪回恢复到指定时间点或者CSN点。
Vastbase支持的备份方式
表1 Vastbase支持的备份方式
备份类型 |
应用场景 |
支持的介质 |
工具名称 |
恢复时间 |
优点 |
缺点 |
逻辑备份与恢复
|
适合于数据量小的场景。
可以备份单表和多表,单database或所有database。备份后的数据需要使用vsql或者vb_restore工具恢复。数据量大时,恢复时间较长。
|
磁盘 SSD
|
vb_dump
|
纯文本格式数据恢复时间长。归档格式数据恢复时间中等。自定义归档格式恢复时间比纯文本格式的恢复时间短。
|
可灵活选择导出信息,支持用户自定义导出一个数据库或其中的对象(模式、表、视图等)。导出的数据库可以是默认数据库postgres,也可以是自定义数据库。支持多种导出格式。
|
备份格式指定为纯文本格式时,数据只能通过vsql工具进行恢复,恢复时间较长。 |
vb_dumpall
|
数据恢复时间长。
|
可以导出Vastbase数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及Vastbase所有数据库公共的全局对象。
|
只能导出纯文本格式的数据,导出的数据只能通过vsql进行恢复,恢复时间较长。 |
物理备份与恢复
|
适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的WAL归档日志和运行日志进行备份。 |
vb_basebackup
|
恢复时可以直接拷贝替换原有的文件, 或者直接在备份的库上启动数据库,恢复时间快。
|
备份原理是对服务器数据库文件的二进制进行全量拷贝,因此只能对数据库某一个时间点的时间作备份。
|
不支持增量备份。结合PITR恢复,可以恢复到全量备份时间点后的某一时间点。 |
vb_probackup
|
恢复时可以直接恢复到某个备份点,在备份的库上启动数据库,恢复时间快。
|
可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。支持增量备份、定期备份和远程备份。增量备份时间相对于全量备份时间比较短,只需要备份修改的文件。当前默认备份是数据目录,如果表空间不在数据目录,需要手动指定备份的表空间目录进行备份。
|
若备份时发生错误,备份程序并不会完全结束并退出,导致无法继续执行备份操作。严格依赖归档备份的有效性,如果其中一个备份集失效,则恢复失败。 |
闪回恢复
|
适用于: (1)误删除表的场景; (2)需要将表中的数据恢复到指定时间点或者CSN。
|
无
|
可以将表的状态恢复到指定时间点或者是表结构删除前的状态,恢复时间快。
|
闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。 在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。 采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 |
基于MVCC多版本的数据恢复和基于回收站的恢复都需要通过配置参数来控制数据保留时间,超出时间范围的数据无法使用闪回恢复。 |
备份方案的选择
当需要进行备份恢复操作时,主要从以下四个方面考虑数据备份方案:
表2 备份策略典型场景
备份策略
|
关键性能因素
|
典型数据量
|
性能规格
|
数据库实例备份
|
|
数据:PB级
对象:约100万个
|
备份:
- 每个主机80 Mbit/s(NBU/EISOO+磁盘)
- 约90%磁盘I/O速率(SSD/HDD)
|
表备份
|
|
数据:10 TB级
|
备份:基于查询性能速度+I/O速度
多表备份时,备份耗时计算方式:
总时间 = 表数量 x 起步时间 + 数据总量 / 数据备份速度
其中:
- 磁盘起步时间为5s左右,NBU起步时间比DISK长(取决于NBU部署方案)。
- 数据备份速度为单节点50MB/s左右(基于1GB大小的表,物理机备份到本地磁盘得出此速率)。
表越小,备份性能更低。
|