暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 表被DROP、truncate后闪回恢复FLASHBACK TABLE

原创 章芋文 2019-10-01
1182

功能描述

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

表可以闪回到过去的时间点,这依赖于系统中撤销数据的数据量。此外,GaussDB 100数据库不能恢复到通过任何DDL操作改变了表结构的早期状态。

注意事项

执行该语句的用户需要有FLASHBACK权限;如果是其他用户下的表,需要FLASH ANY TABLE权限。

FLASHBACK TABLE语句的用法主要分成两大类:从撤销数据中闪回和从回收站中闪回。

撤销数据中记录了新增、更新的数据对象。TO SCN expr和TO TIMESTAMP expr是从撤销数据中闪回。

回收站记录了DROP的对象数据。TO BEFORE DROP语句就是从回收站中闪回。

GaussDB 100默认不强制转换日期类型,需要通过函数显式转化。

数据库重启回滚期间不支持该操作。

语法格式

FLASHBACK TABLE [ schema_name. ]table_name TO { SCN expr |  TIMESTAMP expr | BEFORE { DROP [ RENAME TO table_name ] |  TRUNCATE  FORCE  } }

参数说明

schema_name

指定模式包含的表。如果缺省,则为当前模式。

table_name

指定一个或多个表名称。

闪回表受以下限制:

升级、移动、截取表(truncate)。

增加表约束、增加表;删除或修改列;更改列的加密密钥。

增加、删除、合并、分离、联合、截取分区或子分区(除了增加范围分区)。

对于这些对象类型闪回表操作是无效的:物化视图、系统表、外部表、独立分区表和子分区表。

以下DDL操作改变了表的结构,所以不能接着使用TO SCN或TO TIMESTAMP闪回到操作之前的时间点:

TO SCN

指定你要返回表的时间点对应的系统改变号(SCN)。expr必须计算一个数字,代表有效的SCN。

expr

一个有效的scn号。

TO TIMESTAMP

指定你要返回表的时间点对应的时间戳。expr 必须计算一个过去有效的时间戳(使用TO_TIMESTAMP函数将字符串转换为时间类型)。表将被闪回到指定时间戳大约3秒内的时间点。

说明:回退时间应该小于建表时间,否则会报错。

TO BEFORE DROP

使用这个子句检索回收站中已删除的表,及其可能依赖的对象。该表必须是驻留在本地管理表空间,而不是其他系统表空间。

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

指定你想要检索的表的系统生成名称。

执行FLASHBACK TABLE ... TO BEFORE DROP语句,直到你要检索表。

如果指定了用户指定的名称,且如果回收站中包含多个该名称的对象,然后数据库检索回收站中最近移动的对象。如果想要检索更早版本的表,你可以这样做:

回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,那么数据库检索指定的对象。使用“select * from SYS_RECYCLEBIN;”语句查看回收站中的内容。

RENAME TO

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

TRUNCATE FORCE

闪回到TRUNCATE之前。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论