闪回数据库flashback database

1.使用闪回数据库的前提条件及打开数据库闪回功能

归档

快速恢复区

打开数据库闪回功能

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 32

Next log sequence to archive 34

Current log sequence 34

SQL> show parameter recover

 

NAME TYPE VALUE

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

db_recovery_file_dest string /u02

db_recovery_file_dest_size big integer 8000M

recovery_parallelism integer 0

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 418484224 bytes

Fixed Size 1336932 bytes

Variable Size 335546780 bytes

Database Buffers 75497472 bytes

Redo Buffers 6103040 bytes

Database mounted.

SQL> alter database flashback on;

 

Database altered.

 

SQL> alter database open;

 

Database altered.

 

SQL> select FLASHBACK_ON from v$database;

 

FLASHBACK_ON

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

YES

 

 

2.使用闪回

 

模拟故障

SQL> drop user scott cascade;

 

User dropped.

 

SQL> select 'exec dbms_logmnr.add_logfile('''||member||''')' from v$logfile;

 

'EXECDBMS_LOGMNR.ADD_LOGFILE('''||MEMBER||''')'

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

exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo03.log')

exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo02.log')

exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo01.log')

 

SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo03.log')

exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo02.log')

 

PL/SQL procedure successfully completed.

 

SQL>

PL/SQL procedure successfully completed.

 

SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo01.log')

 

PL/SQL procedure successfully completed.

 

SQL>

SQL> exec dbms_logmnr.start_logmnr();

 

PL/SQL procedure successfully completed.

 

 

1 select scn,sql_Redo

2 from v$logmnr_contents

3* where sql_redo like '%drop%'

SQL> /

 

SCN

----------

SQL_REDO

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

1016218

drop table "SCOTT"."T" cascade constraints purge force;

 

1016240

drop table "SCOTT"."SALGRADE" cascade constraints purge force;

 

1016262

drop table "SCOTT"."BONUS" cascade constraints purge force;

 

1016276

drop table "SCOTT"."EMP" cascade constraints purge force;

 

1016315

drop table "SCOTT"."DEPT" cascade constraints purge force;

 

1016365

drop user scott cascade;

 

 

6 rows selected.

 

1 select min(scn)

2 from v$logmnr_contents

3* where sql_redo like '%drop%'

SQL> /

 

MIN(SCN)

----------

1016218

 

 

使用SYS执行闪回

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 418484224 bytes

Fixed Size 1336932 bytes

Variable Size 335546780 bytes

Database Buffers 75497472 bytes

Redo Buffers 6103040 bytes

Database mounted.

SQL> flashback database to scn 1016217;

 

Flashback complete.

 

SQL> alter database open read only;---------------以后凡是恢复都要使用这条命令看看看

 

Database altered.

 

使用SCOTT检查是否被闪回回来

SQL> conn scott/tiger

Connected.

SQL> select * from tab;

 

TNAME TABTYPE CLUSTERID

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

BONUS TABLE

DEPT TABLE

EMP TABLE

SALGRADE TABLE

T TABLE

 

以resetlogs的方式打开数据库(思考为什么要用resetlogs的方式打开)

 

 

3.监视数据库闪回功能

 

闪回保留目标

SQL> show parameter retention

 

NAME TYPE VALUE

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

db_flashback_retention_target integer 1440

undo_retention integer 900

SQL> select 1440/60 from dual;

 

1440/60

----------

24

 

查看闪回日志及闪回相关信息

 

SQL> select estimated_flashback_size,flashback_size from v$flashback_database_log;

 

ESTIMATED_FLASHBACK_SIZE FLASHBACK_SIZE

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

0 16384000

 

SQL> select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;

 

OLDEST_FLASHBACK_SCN OLDEST_FL

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

1016069 31-MAY-16

 

SQL> select begin_time,end_time,flashback_data,db_data,redo_data,estimated_flashback_size from v$flashback_Database_stat;

 

BEGIN_TIM END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE

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

31-MAY-16 31-MAY-16 811008 0 120832 0

 

 

监视快速恢复区

SQL> select space_limit,space_used,number_of_files from v$recovery_file_dest;

 

SPACE_LIMIT SPACE_USED NUMBER_OF_FILES

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

8388608000 410885632 31

 

SQL> select file_type,PERCENT_SPACE_USED,PERCENT_SPACE_RECLAIMABLE,NUMBER_OF_FILES from v$flash_recovery_area_usage;

 

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROL FILE 0 0 0

REDO LOG 0 0 0

ARCHIVED LOG 1.18 .13 25

BACKUP PIECE 3.53 .05 4

IMAGE COPY 0 0 0

FLASHBACK LOG .2 0 2

FOREIGN ARCHIVED LOG 0 0 0

 

7 rows selected.

 

4.还原点

还原点就时间的别名

一个还原点,代表着一个时间,或者一个SCN

SQL> create restore point rp1 guarantee flashback database;

 

Restore point created.

 

SQL> drop restore point rp1;

 

Restore point dropped.

 

使用还原点闪回

SQL> flashback database to restore point rp1;

 

 

查看还原点

SQL> select NAME,SCN,TIME from v$restore_point;

 

NAME SCN TIME

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

RP1 1017045 31-MAY-16 03.50.15.000000000 PM

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值