Oracle误删、误更新后如何还原数据
缘由: 同事更新表数据时误将表中所有数据全部更新,其实就想更新一行。
解决办法: 使用Oracle的flashback特性之Flashback Query闪回查询技术, 前提是必须启动Undo表空间管理,版本Oracle 9i及以上。
查看undo参数
命令: show parameter undo;
NAME | TYPE | VALUE | 备注 |
---|---|---|---|
undo_management | string | AUTO | auto表示自动管理,manual表示手动管理 |
undo_retention | integer | 900 | 保留时间 900s,当空间不足时依然会被覆盖 |
undo_tablespace | string | UNDOTBS1 | 表空间名称 |
使用Flashback Query修复数据
我使用as of timestamp恢复到指定时间点, 也可以使用as of scn