Oracle闪回查询,出现ORA-01466: unable to read data - table definition has changed报错。
SQL> select count(*) from a.t1;
COUNT(*)
----------
22
当前表记录有22条。
想查询中午12点左右的表数据信息
SQL> SELECT count(*) FROM a.t1 AS OF TIMESTAMP TO_TIMESTAMP('2022-08-11 12:00:00', 'YYYY-MM-DD HH24:MI:SS');
SELECT count(*) FROM a.t1 AS OF TIMESTAMP TO_TIMESTAMP('2022-08-11 12:00:00', 'YYYY-MM-DD HH24:MI:SS')
*
ERROR at line 1:
ORA-01466: unable to read data - table definition has changed
经过和研发部门确认,至此期间对该表做过DDL,表结构发生过改变。
对表做了ddl操作(如增减字段,truncate等),则不能再闪回该表。
这种情况下,如果想找回表数据,需要通过RMAN基于时间点的不完全恢复,或者如果有DG备库可以尝试闪回DG备库的方法。