视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
OracleFlashbackdatabase
2020-11-09 10:49:24 责编:小采
文档


这里简单介绍下flashback database,这个既可以在RMAN中执行,也可以再SQL*PLUS执行,有时候还是挺实用的

这里简单介绍下flashback database,这个既可以在RMAN中执行,也可以再SQL*PLUS执行,有时候还是挺实用的

必备条件:

1:必须是归档模式

2:必须指定flash recovery area

SQL> show parameter db_recovery

NAME TYPE VALUE

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

db_recovery_file_dest string /app/Oracle/flash_recovery_area --闪回区路径,如果是RAC,放在共享存储中

db_recovery_file_dest_size big integer 10G --闪回区大小,,该空间大小建议可以放入所有数据库文件

以上参数的设置相信大家都会alter system set xxxxxx='';接下来介绍下打开闪回功能:

SQL> alter database flashback on;

alter database flashback on

*

ERROR at line 1:

ORA-38759: Database must be mounted by only one instance and not open.


SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 5049942016 bytes

Fixed Size 2090880 bytes

Variable Size 1375733888 bytes

Database Buffers 3657433088 bytes

Redo Buffers 14684160 bytes

Database mounted.

SQL> alter database flashback on;

alter database flashback on

*ERROR at line 1:

ORA-38706: Cannot turn on FLASHBACK DATABASE logging.

ORA-38707: Media recovery is not enabled.

SQL> alter database archivelog;

Database altered.

SQL> alter database flashback on;

Database altered.

SQL> alter database open;

Database altered.

SQL> alter database force logging;

Database altered.

SQL> SELECT FLASHBACK_ON,FORCE_LOGGING FROM V$DATABASE;

FLASHBACK_ON FOR

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

YES YES

相信大家看的很明白了,一定是要在mount模式,而且归档一定要打开,数据库要force logging。

SQL> set num 16

SQL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;

GET_SYSTEM_CHANGE_NUMBER

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

122693676204

SQL> conn test/test

Connected.

SQL> select table_name from user_tables;

TABLE_NAME

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

TB2

FLASH_VERSION

TB1

TBL_ORACLE_FDW

SQL> drop table tb1 purge;

Table dropped.

SQL> drop table tb2 purge;

Table dropped.

SQL> conn /as sysdba

Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 5049942016 bytes

Fixed Size 2090880 bytes

Variable Size 1375733888 bytes

Database Buffers 3657433088 bytes

Redo Buffers 14684160 bytes

Database mounted.

SQL> FLASHBACK DATABASE TO SCN 122693676204 ;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

SQL> conn test/test

Connected.

SQL> select table_name from user_tables;

TABLE_NAME

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

TB2

FLASH_VERSION

TB1

TBL_ORACLE_FDW

可以看到TB1和TB2都回来了,好了flashback的使用就介绍到这里

下载本文
显示全文
专题