ITPub博客

首页 > 数据库 > Oracle > Flasback Database 的配置与演示

Flasback Database 的配置与演示

原创 Oracle 作者:静以致远√团团 时间:2014-03-19 15:13:05 0 删除 编辑
Flashback Database

 

设置必要条件:

 

数据库处于归档状态:

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

SQL> startup mount;

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              71305460 bytes

Database Buffers           92274688 bytes

Redo Buffers                2973696 bytes

Database mounted.

 

SQL> alter database archivelog;

Database altered.

 

SQL> alter system set log_archive_dest_1='location=/u01/orcl_arch';

System altered.

 

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/orcl_arch

Oldest online log sequence     1

Next log sequence to archive   3

Current log sequence           3

 

启动Flashback Database

 

SQL> select flashback_on from v$database;

FLASHBACK_ON

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

NO

 

SQL> alter database flashback on;

Database altered.

SQL> select flashback_on from v$database;

FLASHBACK_ON

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

YES

 

设置FRAFlash Recover area

 

SQL> show parameter db_recover;

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /u01/app/oracle/flash_recovery

                                                 _area

db_recovery_file_dest_size           big integer 2G

 

SQL> !mkdir /u01/FRA

 

SQL> alter system set db_recovery_file_dest='/u01/FRA';

System altered.

 

SQL> alter system set db_recovery_file_dest_size=5G;

System altered.

 

SQL> show parameter db_recover;

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /u01/FRA

db_recovery_file_dest_size           big integer 5G

 

DB_FLASHBACK_RETENTION_TARGET用来设置控制Flashback logs的保留时间

 

SQL> show parameter DB_FLASHBACK_RETENTION_TARGET;

NAME                                 TYPE        VALUE

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

db_flashback_retention_target        integer     1440

 

Oracle还建议在闪回数据库中启用Force Logging模式

注:该模式会强制所有日志写入重做日志,否则容易造成部分数据无法恢复

 

SQL> select force_logging from v$database;

FOR

---

NO

 

SQL> alter database force logging;

Database altered.

SQL> select force_logging from v$database;

FOR

---

YES

 

Flashback Database 演练:

 

SQL> conn scott/oracle

Connected.

 

SQL> create table emp_test as select * from emp;

Table created.

 

测试前先查看一下SCN

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

                  521620

 

删除一个表做下测试:

 

SQL> drop table emp_test purge;

Table dropped.

 

连接到SYS用户开始闪回数据库恢复:

 

 

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  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              71305460 bytes

Database Buffers           92274688 bytes

Redo Buffers                2973696 bytes

Database mounted.

 

SQL> flashback database to scn 521620;

Flashback complete.

闪回数据库需要重做日志模式打开数据库,如果想要指定SCN之后的数据不丢失,可以Read Only打开数据库,将误操作的数据导出,再将数据库进行恢复到未执行Flashback Database前的状态,将数据逻辑导入即可。

 

SQL> alter database open resetlogs;

Database altered.

 

SQL> conn scott/oracle

Connected.

 

SQL> select tname from tab;

TNAME

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

DEPT

EMP

BONUS

SALGRADE

EMP_TEST

DEPT_TEST

6 rows selected.

 

 

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

上一篇: Flashback Table
请登录后发表评论 登录
全部评论
每个人都有梦想,去实现吧!

注册时间:2013-11-14

  • 博文量
    164
  • 访问量
    2103390