oracle 根据ts闪回表,oracle闪回技术

1、闪回数据库到之前某时间点(在安装时需要开放闪回功能)

不支持表空间删除

select name from v$database;

--看是否打开闪回功能

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>create table t1(a

int);

SQL>drop table

t1;

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

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

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

转载出处:http://blog.csdn.net/aptweasel/archive/2009/02/07/3867059.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值