flashback记录恢复

来源:林空间站 时间:18-05-21 编辑:冰痕
使用FLASHBACKTABLE进行数据恢复n1使用flashback查询实现行级恢复flashback查询用于获取先前时间点的表行级数据。当使用flashback查询时,需要在表名后指定asoftimestamp子句或asofSCN子句,其中asoftimestamp用于指定早期时间点,而asofSCN用于指定早期的SCN值,示例如下:selectfromstudentsasoftimestampto_timestamp20110714155230YYYYMMDDHH24MISSWHEREsno10nnselectfromstudentsasofSCN11495000wheresno10注意:flashback查询的最早时间点受限于初始化参数undo_retention。下面通过示例说明使用flashback查询实现行级恢复的方法。(1)模拟用户误操作。假定用户登录后。执行delete操作误删除学生表前10名学员的信息,并提交的了数据。示例如下deletefromstudentswheresno11commit(2)使用flashback查询取得早期时间点表行数据为了使用flashback查询取得早期时间点的表行数据,必须在表名后指定asoftimestamp或asofSCN子句,只要记住删除表的时间大约是什么时候,就可以根据asoftimestamp子句即可:selectfromstudentsasoftimestampto_timestamp20110714160225YYYYMMDDHH24MISSwheresno11使用flashback查询恢复表行数据。在取得过去时间点的表行数据之后,为了恢复这些被删除的行数据,可以在insert语句后使用flashback查询,示例如下:insertintostudentsselectfromstudentsasoftimestampto_timestamp20110714160225YYYYMMDDHH24MISSwheresno11commit;2使用flashbacktable恢复表到先前状态nnfflashback查询可以用于恢复被误删除的表行数据,但是用户在表上执行了其他的DML语句误操作(insert或update),则不能直接使用flashback查询将表数据恢复到先前时间点,从oracle10g开始,使用flashbacktable语句可以将表恢复到先前时间点,通过使用该特征,可以避免执行基于时间点的不完全恢复,注意如果要在某个表上使用flashbacktable特征,则要求必须具有以下条件:a用户必须具有flashbackanytable系统权限或flashback对象权限b用户必修在表上具有selectinsertdelete和alter权限c必须合理设置初始化参数undo_retention,以确保UNDO信息保留足够时间d必须激活行移动特征:altertabletable_nameenablerowmovement;以students为例:a激活行移动特征altertablestudentsenablerowmovementb假定某用户登录之后,使用update语句误操作updatestudentssetageage1wheresno11c使用flashbacktable恢复表数据到先前时间点flashbacktablestudentstotimestampto_timestamp20110714160225YYYYMMDDHH24MISS数据恢复完毕,查看数据:selectfromstudentswheresno11;3使用flashbacktable恢复被rn
共4页: 下一页