数据备份是保护数据安全的重要手段之一。为了更好地保护数据安全,南大通用GBase 8c数据库提供三种备份恢复类型、多种备份恢复方案,能够在备份和恢复过程中保障数据的可靠性。 备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。本文主要介绍GBase 8c的闪回恢复功能。
1、概述
闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响, 将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR 等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。
2、闪回查询
背景信息
闪回查询可以查询过去某个时间点表的某个snapshot数据,这一特性可用于查看和逻辑重建意外删除或更改的受损数据。闪回查询基于MVCC多版本机制,通过检索查询旧版本,获取指定老版本数据。
语法
语法树中“TIMECAPSULE{TIMESTAMP|CSN}expression”为闪回功能新增表达方式,其中TIMECAPSULE表示使用闪回功能,TIMESTAMP以及CSN表示闪回功能使用具体时间点信息或使用CSN(commitsequencenumber)信息。
参数说明
TIMESTAMP 指要查询某个表在TIMESTAMP这个时间点上的数据,TIMESTAMP指一个具体的历史时间。
CSN 指要查询整个数据库逻辑提交序下某个CSN点的数据,CSN指一个具体逻辑提交时间 点,数据库中的CSN为写一致性点,每个CSN代表整个数据库的一个一致性点,查询某个 CSN下的数据代表SQL查询数据库在该一致性点的相关数据。
3、闪回表
背景信息
闪回表可以将表恢复至特定时间点,当逻辑损坏仅限于一个或一组表,而不是整个数据 库时,此特性可以快速恢复表的数据。闪回表基于MVCC多版本机制,通过删除指定时间点和该时间点之后的增量数据,并找回指定时间点和当前时间点删除的数据,实现表级数据还原。
前提条件
undo_retention_time 参数用于设置 undo 旧版本的保留时间。
语法
TIMECAPSULE TABLE table_name TO { TIMESTAMP | CSN } expression