Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5473395
  • 博文数量: 890
  • 博客积分: 12876
  • 博客等级: 上将
  • 技术积分: 10760
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-04 14:18
个人简介

猝然临之而不惊,无故加之而不怒。

文章分类

全部博文(890)

文章存档

2016年(1)

2014年(18)

2013年(41)

2012年(48)

2011年(65)

2010年(84)

2009年(121)

2008年(101)

2007年(129)

2006年(95)

2005年(118)

2004年(69)

分类: Oracle

2013-01-03 16:08:38

From: 

1,闪回数据库到之前某时间点(在安装时需要开放闪回功能) 
不支持表空间删除

看是否打开闪回功能

select flashback_on,name from v$database; select name from v$bgprocess where paddr<>'00' order by 1;

打开闪回功能

SQL> shutdown immediat SQL> startup mount SQL> alter database flashback on; SQL> alter database open;

修改闪回时间(默认是一天1440)

SQL> alter system set db_flashback_retention_target=2880 RMAN> backup recovery files;--执行此程序,必须要有磁带

执行数据库闪回,必须是在mount,readonly状态


如果重建了控制文件,则修改控制文件以前的数据是不可以闪回的。

例子;

create table t2( a int); insert into t2 values(1); insert into t2 values(2); insert into t2 values(5); alter system switch logfile; t2 10:35 insert into t2 values(100); alter system switch logfile; insert into t2 values(200);

闪回到某时间点

FLASHBACK DATABASE TO TIME = TO_DATE('2004-05-27 16:00:00','YYYY-MM-DD HH24:MI:SS'); FLASHBACK DATABASE 2 TO TIMESTAMP(SYSDATE-1/24);

查日志进程

select * from v$log;

恢复到某过程sequence为查询的sequence,THREAD

把状态置为mount状态

flashback database to sequence=58 thread=1;

打开数据库

alter database open resetlogs;

2,闪回drop表,数据(普通用户都可以操作)

原理:是把放到数据库回收站的对象,数据拉回来

凡不放回收站的对象都不能闪回.

闪回后,把删除的表,及索引都会恢复

SQL>flashback table t1 to before drop; 语法:FLASHBACK TABLE TO BEFORE DROP [RENAME TO ]

可以用下面的命令或查询查看删除的表;

show recyclebin; select * from recyclebin --where ORIGINAL_NAME='T1';

DBA的回收站

SELECT owner, original_name, object_name, type, ts_name, droptime, related, space FROM dba_recyclebin WHERE can_undrop = 'YES';

用户回收站

SELECT original_name, object_name, type, ts_name, droptime, related, space FROM user_recyclebin WHERE can_undrop = 'YES';

表实际不没有删除,只是改了一个名子,放到回收站了

索引名子依然没变。

a,用SYS用户删除的表不可以闪回。

conn / as sysdba alter table cbsd.t1 move tablespace system; drop table cbsd.t1;

则不可以闪回

b.索引,物化视图,删除后不可以闪回

3.闪回事务查询

alter table t1 enable row movement;

查询所有可以撤消的操作

SELECT versions_xid as xid, versions_startscn, versions_endscn, versions_operation FROM t1 VERSIONS between scn minvalue and maxvalue WHERE a = 20;

撤消数据

update 3-->5 undo data

数据放在undo tablespace

sql>show parameter undo; sql>select file_name from dba_data_files where tablespace_name='UNDOTBS1';

闪回数据:RVWR+闪回日志+归档日志

闪回现有表:undo tablespace

闪回删除表:表原来物理位置

———————————————————————-

SELECT dbms_flashback.get_system_change_number FROM dual; --获取SCN

阅读(668) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~