首批通过分布式安全可靠测评,为关键业务系统打造
CREATE RESTORE POINT
更新时间:2023-07-18 17:25:59
描述
该语句用来创建还原点(Restore Point)。使用该功能可以保留当前时刻的数据快照,之后可以基于此数据快照进行查询。目前还不支持将数据回滚到该还原点。
创建还原点后,该还原点的 SCN 值对应在 V$RESTORE_POINT 视图中 SNAPSHOT 字段的值,然后通过 SELECT * FROM table_name AS OF SCN snapshot; 查询数据快照中的值。
语法
CREATE RESTORE POINT restore_point_name;
参数解释
| 参数 | 描述 |
|---|---|
| restore_point_name | 指定还原点名称。 |
说明
Restore Point 功能的使用限制如下:
不支持物理备份。
不支持主备库。
每个租户限制
10个 Restore Point 。创建 Restore Point 后,如果对创建 Restore Point 前就存在的表执行 DDL 语句,系统会报错。
由于 Restore Point 功能依赖 GTS 维护全局的一致性快照,因此在使用 Restore Point 时,需要开启 GTS。
obclient> SET GLOBAL ob_timestamp_service='GTS';
示例
创建表 tbl1,插入一行数据,接着创建一个还原点 rp1,再往表 tbl1 插入两行数据,然后查询 rp1 中的值。
obclient> CREATE TABLE tbl1 (col1 INT,col2 INT);
Query OK, 0 rows affected
obclient> INSERT INTO tbl1(col1,col2) VALUES(1,1);
Query OK, 1 row affected
obclient> CREATE RESTORE POINT rp1;
Query OK, 0 rows affected
obclient> INSERT INTO tbl1(col1,col2) VALUES(2, 2),(3,3);
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
obclient> commit;
Query OK, 0 rows affected
obclient> SELECT * FROM tbl1;
+------+------+
| COL1 | COL2 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+------+------+
3 rows in set
obclient> SELECT * FROM V$RESTORE_POINT;
+-----------+------------------+------------------------------+------+
| TENANT_ID | SNAPSHOT | TIME | NAME |
+-----------+------------------+------------------------------+------+
| 1002 | 1634207965611569 | 14-OCT-21 06.39.25.612683 PM | RP1 |
+-----------+------------------+------------------------------+------+
1 row in set
obclient> SELECT * FROM tbl1 AS OF SCN 1634207965611569;
+------+------+
| COL1 | COL2 |
+------+------+
| 1 | 1 |
+------+------+
1 rows in set