Oracle数据库10g中使用闪回数据库操作

 

Oracle数据库10g中使用闪回数据库操作

使用FLASHBACK DATABASE可以恢复数据库到先前的某个时间点或者某个SCN号。
在Oracle10g以前的版本中,要实现数据库恢复到过去某个时间点或者SCN号,只能够
通过数据库的不完全恢复实现。从Oracle 10g开始,可以使用FLASHBACK DATABASE
实现。

使用FLASHBACK DATABASE要比执行数据库系统的不完全恢复要快的多,
但是需要对数据库做以下的配置:
1、数据库必须运行在归档模式下
2、必须启用数据库的闪回功能
3、必须配置初始化参数DB_FLASHBACK_RETENTION_TARGET

闪回操作的语法

FLASHBACK [STANDBY | DATABASE] [数据库名称]
to SCN SCN号 | TIMESTAMP 时间表达式 | restore point 恢复点

 

 

配置闪回数据库选项

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248600 bytes
Variable Size              92275368 bytes
Database Buffers          192937984 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。

SQL> select name,log_mode,open_mode,flashback_on from v$database;

NAME      LOG_MODE     OPEN_MODE  FLASHBACK_ON
--------- ------------ ---------- ------------------
MYORACLE  ARCHIVELOG   MOUNTED    NO

SQL> alter database flashback on;

数据库已更改。

SQL> alter system set db_flashback_retention_target=3600;

系统已更改。

SQL> alter database open;

数据库已更改。

SQL> drop table scott.emp;

表已删除。


SQL> select to_char(oldest_flashback_time,'yyyy-mm-dd:hh24:mi:ss')
  2  from v$flashback_database_log;

TO_CHAR(OLDEST_FLAS
-------------------
2008-01-02:13:20:59

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248600 bytes
Variable Size              92275368 bytes
Database Buffers          192937984 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。

SQL> flashback database to timestamp  to_date('2008-01-02:13:20:59',
  2  'yyyy-mm-dd:hh24:mi:ss');

闪回完成。

SQL> alter database open resetlogs;

数据库已更改。

SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

已选择14行。

闪回到某个系统更改号(SCN)

SQL> truncate table scott.emp;

表被截断。

SQL> select * from scott.emp;

未选定行

SQL> truncate table scott.emp;

表被截断。

SQL> truncate table scott.emp;

表被截断。

SQL> select oldest_flashback_scn from v$flashback_database_log;

OLDEST_FLASHBACK_SCN
--------------------
              737192

SQL> select oldest_flashback_scn from v$flashback_database_log;

OLDEST_FLASHBACK_SCN
--------------------
              737192

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248600 bytes
Variable Size              96469672 bytes
Database Buffers          188743680 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。

SQL> flashback database to scn 737192;

闪回完成。

SQL> alter database open resetlogs;

数据库已更改。

SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

已选择14行。

 

 

 

你可能感兴趣的:(oracle,sql,数据库,manager,database,oracle10g)