全面学习oracle flashback特性(3.2)--Flashback Database操作示例

Flashback database即可以在rman中执行,也可以在sql*plus中执行,其命令格式都是一样的,在这个示例中,我们所有操作都是在sql*plus中执行

[@more@]

A. 检查是否启动了flash recovery area:

JSSWEB> show parameter db_recovery_file

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest string f:oracleoradatajsswebrecoveryarea

db_recovery_file_dest_size big integer 2G

B. 检查是否启用了归档

JSSWEB> archive log list;

数据库日志模式 存档模式

自动存档 启用

存档终点 USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列 51

下一个存档日志序列 53

当前日志序列 53

C. 检查是否启用了flashback database和force_logging

JSSWEB> select flashback_on,force_logging from v$database;

FLASHBACK_ON FOR

------------------ ---

YES YES

D. 查询当前的scn

JSSWEB> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN

-----------

686384

JSSWEB> select current_scn from v$database;

CURRENT_SCN

-----------

213749

E. 模拟误删除操作

JSSWEB> conn jss/jss

已连接。

JSSWEB> drop table jss_tb1;

表已删除。

JSSWEB> delete jss_tb2 where id>5;

已删除15行。

JSSWEB> select count(0) from jss_tb2;

COUNT(0)

----------

5

JSSWEB> commit;

提交完成。

F. 重新启动到mount状态,然后执行恢复

JSSWEB> conn / as sysdba

已连接。

JSSWEB> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

JSSWEB> startup mount

ORACLE 例程已经启动。

Total System Global Area 343932928 bytes

Fixed Size 1296620 bytes

Variable Size 125830932 bytes

Database Buffers 209715200 bytes

Redo Buffers 7090176 bytes

数据库装载完毕。

JSSWEB> flashback database to scn 686384;

闪回完成。

提示:此处flashback database to timestamp也是一样的,不过你需要估计好恢复到的时间点。

注意此处,在你执行完flashback database命令之后,oracle提供了两种方式让你修复数据库:

第一种直接alter database open resetlogs打开数据库,当然,指定scn或者timestamp时间点之后产生的数据统统丢失。

另一种方式是先执行alter database open read only命令以read-only模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database命令以重新应用数据库产生的redo,将数据库修复到flashback database操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。

由于是演示过程,为了更简便和快速,我们这里采用方法一中提示的方式,但如果是比较重要的数据库的话,你要采用哪种方式,就需要仔细评估一下了。

G. 打开数据库

JSSWEB> alter database open resetlogs;

数据库已更改。

H. 验证数据

JSSWEB> conn jss/jss

已连接。

JSSWEB> select *from tab;

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

JSS_TB1 TABLE

TP TABLE

JSS_TB2 TABLE

JSSWEB> select count(0) from jss_tb2;

COUNT(0)

----------

20

如上,之前的误操作数据均已恢复。

可以看到这个过程非常迅速(当然跟我们操作的数据量小也有很大关系),这甚至都不算是在做恢复,从头到尾,我们都没有执行任何restore,也没有recover的操作,这就是flashback database的优势,速度

全文完~~~~

======================================

查看之前的连载:

(3.1)--Flashback Database介绍

(2.3)--Flashback Table之注意事项

(2.2)--Flashback Table之从UNDO中恢复

(2.1)--Flashback Table之从RECYCLEBIN恢复

(1.5)--闪回查询之制约因素

(1.4)--闪回查询之Transaction query

(1.3)--闪回查询之Versions between

(1.2)--闪回查询之As of scn

(1.1)--闪回查询之As of timestamp

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-1007028/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7607759/viewspace-1007028/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值