Oracle 10g数据库闪回知识

Oracle 10g数据库闪回知识
初始定义:表名==XX
create table XX
(
  ID    VARCHAR2(22),
  VALUE VARCHAR2(22)
)
1. Drop 操作闪回
Drop table XX;--删除表
select * from recyclebin;--查看回收站,发现XX表
flashback table XX to before drop;--闪回到被丢弃前的状态
select * from recyclebin;--查看回收站,未发现XX表
2. Delete,add,update操作闪回
select systimestamp from dual;--查看当前时间,如果不知道,可估算
delete from XX;--删除记录
insert into XX values('new','new');--插入新纪录
update XX set value='after update';--修改记录
alter table XX enable row movement;--允许行操作
flashback table XX to timestamp to_timestamp('2010-05-06 09:57:00','yyyy-mm-dd hh24:mi:ss');--闪回到指定时间的数据状态
alter table XX disable row movement;--不允许行操作
3. 列修改闪回
(未找到)
4. 后备知识
数据库设置前提:
ALTER DATABASE ARCHIVELOG;--开启归档模式
alter database flashback on;--允许闪回
ALTER DATABASE OPEN;
ALTER DATABASE OPEN READ ONLY;-- 开启只读,防止没有闪回到位,还可以重来
ALTER DATABASE OPEN NORESETLOGS;--不重置记录

闪回技术的实现由 DBMS_FLASHBACK 的 PL/SQL 的 Package 实现,为了使用闪回技术,必须有 EXECUTE 这个 Package 的权限。
这个 Package 的相关参数如下:
enable_at_time 以时间戳方式启用会话的闪回功能
enable_at_system_change_number 以 SCN 方式启用会话的闪回功能
disable 禁用会话闪回功能
get_system_change_number 获取当前的 SCN
timestamp_to_scn 将时间戳转换为 SCN
scn_to_timestamp 将 SCN 转换为时间戳

你可能感兴趣的:(oracle,sql)