VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

TIMECAPSULE TABLE

功能描述

在人为操作或应用程序错误时,使用TIMECAPSULE TABLE语句恢复可将表恢复到一个早期状态。

表可以闪回到过去的时间点,这依赖于系统中保存的旧版本数据。此外Vastbase数据库不能恢复到通过DDL操作改变了表结构的早期状态。

注意事项

  • TIMECAPSULE TABLE语句可以将表恢复至指定时间戳或者CSN,也可以从回收站中进行闪回。回收站记录了DROP和TRUNCATE的对象数据。语法中的TO BEFORE DROP和TO BEFORE TRUNCATE就是从回收站中闪回。

  • 不支持闪回表的对象类型:系统表、列存表、内存表、DFS表、全局临时表、本地临时表、UNLOGGED表、序列表、hashbucket表。

  • 闪回表不支持ASTORE引擎。

  • 闪回drop/truncate不支持USTORE引擎。

  • GUC参数enable_recyclebin需设置为on,表示启用回收站。

  • GUC参数recyclebin_retention_time用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理;单位为秒(s)。

  • 闪回点和当前点之间,执行过修改表结构或影响物理存储的语句(DDL、DCL、VACUUM FULL),闪回失败。

  • 执行闪回删除需要用户具有如下权限:用户必须具有垃圾对象所在schema的create和usage权限,并且用户必须是schema的所有者或者是垃圾对象的所有者。

  • 执行闪回TRUNCATE需要用户具有如下权限:用户必须具有垃圾对象所在schema的create和usage权限,并且用户必须是schema的所有者或者是垃圾对象的所有者,另外用户必须具有垃圾对象的TRUNCATE权限。

  • 闪回drop/truncate的注意事项请参考闪回DROP/TRUNCATE

语法格式

TIMECAPSULE TABLE
        [schema.]table_name TO { CSN expr | TIMESTAMP expr | BEFORE { DROP [RENAME TO table_name] | TRUNCATE } }

参数说明

  • [schema.]table_name

    指定要恢复的表名。可以由schema名称修饰。

    可以指定原始用户指定的表的名称,或对象删除时数据库分配的系统生成名称。

    回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,可以从系统表GS_RECYCLEBIN中查到。支持使用如下语句查看回收站中的内容:

    select  * from gs_recyclebin;
    


  • CSN expr

    闪回表指定的CSN号。CSN指一个具体逻辑提交时间点,数据库中的CSN为写一致性点,每个CSN代表整个数据库的一个一致性点。

  • TIMESTAMP expr

    指要闪回到某个表在TIMESTAMP这个时间点上的数据,TIMESTAMP指一个具体的历史时间。

  • TO BEFORE DROP | TRUNCATE

    使用这个子句检索回收站中已删除的表及其子对象。

    如果闪回时指定了用户指定的表名称,且回收站中包含多个同名的对象,那么数据库会检索回收站中最近移动的对象。如果想要检索更早版本的表,建议用户指定表的系统生成名称进行恢复。

  • RENAME TO

    为从回收站中检索的表指定一个新名称。

  • TRUNCATE

    闪回到TRUNCATE之前。

示例

参考闪回表方案一的示例、闪回drop/truncate示例