官网链接:Restore Point-V3.2.4-OceanBase 数据库文档-分布式数据库使用文档
在很多应用系统中,用户需要查询数据库中的某个时间点,或者特定版本的数据来完成一些数据分析或汇总之类的操作。
OceanBase 数据库在 V2.2.7x 版本中提供了 Restore Point 功能,允许用户在租户上创建 Restore Point,将历史版本的数据保存下来。Restore Point 功能类似于租户的快照点,您可以通过闪回查询的方式来访问特定版本的历史数据。
1.开启 GTS
set GLOBAL ob_timestamp_service='GTS';
2.创建一个测试表 test
并插入数据。
CREATE TABLE test ( ID NUMBER PRIMARY KEY, NAME varchar2(20));
INSERT INTO test VALUES (1,'LI');
commit;
3.创建 Restore Point
CREATE RESTORE POINT restore_point;
4.向表中再插入一些数据并提交。
INSERT INTO test VALUES (2, 'WANG');
INSERT INTO test VALUES (3, 'SU');
commit;
5.查询表 test
当前版本的数据。
SELECT * FROM test;
![](https://i-blog.csdnimg.cn/direct/904e157c52df48b882e0e606456bf19b.png)
6.查询 Restore Point
(创建 Restore Point 后,可以通过查询 V$RESTORE_POINT
视图来查看当前可用的 Restore Point,并根据查询到的 Restore Point 进行数据分析。)
SELECT * FROM V$RESTORE_POINT;
7.根据查询到的版本号,执行以下语句,进行数据的查询分析。
![](https://i-blog.csdnimg.cn/direct/35c8530b512c420996fd18799cddc0ce.png)
可以看到,我们根据SCN号查询到了Restore Point之前的数据,Restore Point类似一个快照,做了Restore Point后可以查询到表快照之前的数据。