GBASE南大通用分享:

在数据库管理领域,数据的保护与恢复一直是至关重要的任务。针对数据库开发人员“误删”数据这一高危情境,GBASE南大通用基于共享存储的数据库集群GBase 8s内置“闪回”工具,提供闪回功能来确保数据的完整性和可靠性,(马大哈们)再也不用担心“跑路”了。


闪回工具使用

b. 按照 lsn 号闪回:

./onflsbk.sh -D database_name -l 'lsn_number' -r table_name

  • -D database_name 是闪回命令用来选择数据库的参数,输入的 database_name 是 被选择的数据库名;
  • -l 'lsn_number' 是闪回命令指定逻辑日志的 LSN 位置的参数,输入的'lsn_number' 是用来指定逻辑日志 LSN 位置,如果选择该参数说明这条闪回命令是通过指定逻 辑日志的 LSN 位置进行表的数据还原;
  • -r table_name 是闪回命令用来选择表的参数,该参数必须配合-l'lsn_number' 或 -d 'date_time' 中的一个参数使用,输入的 table_name 是被选择将要还原的表名,命令行中不能出现 -d 'date_time';

c. 闪回到新表:

通过 LSN 闪回到新表语法:

onflsbk.sh -D database_name -l 'lsn_number' -r table_name -t new_table_name

通过时间闪回到新表语法:

onflsbk.sh -D database_name -d 'date_time' -r table_name -t new_table_name

示例1:下面我们以“按照时间闪回”的方式进行演示。

首先,创建测试表 test_fls2;

create table test_fls2 (id int,name varchar(20),time1 datetime year to second,primary key (id));

插入测试数据,两条记录间隔 5 秒:

insert into test_fls2 values (1,'a',sysdate);

insert into test_fls2 values (2,'b',sysdate);

查询结果如下:

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_GBASE南大通用

执行按照时间闪回命令:

./onflsbk.sh -D test -d "2023-08-15 13:38:50" -r test_fls2

会出现一个交互窗口,提示内容大概意思是:如果当前时间回溯到指定还原时间点区间内存在DDL操作很可能会让闪回报错或者闪回成功后表数据是不准确的。

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_数据库_02

直接回车或者输入“1”会继续执行,输入“2”则会直接退出;

我们这里输入“1”继续执行:

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_数据库_03

最后显示处理完成,回到工具查看表数据,已经回退到插入数据之前:

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_GBASE_04

再次执行按照时间闪回命令,时间选择在插入第一条记录和第二条记录中间:

./onflsbk.sh -D test -d "2023-08-15 13:38:52" -r test_fls2

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_数据库_05

最后显示处理完成,回到工具查看表数据,已经回退到插入数据之前:

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_GBASE南大通用_06

再次执行按照时间闪回命令,时间选择在插入第一条记录和第二条记录中间:

./onflsbk.sh -D test -d "2023-08-15 13:38:58" -r test_fls2

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_GBASE南大通用_07

最后显示处理完成,回到工具查看表数据,已经回退到插入数据之前:

GBASE南大通用分享:GBase 8s数据库“闪回”功能使用介绍(2)_GBASE_08