日期:2014-05-16  浏览次数:20443 次

闪回数据库技术

?

SQL> conn / as sysdba;
已连接。
SQL> select dbid,name,log_mode , open_mode from v$database;

????? DBID NAME????? LOG_MODE???? OPEN_MODE
---------- --------- ------------ ----------
1384775892 CHARIOT?? NOARCHIVELOG READ WRITE

SQL>

打开闪回开关。

SQL> alter database flashback on;


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

Total System Global Area? 612368384 bytes
Fixed Size????????????????? 1250428 bytes
Variable Size???????????? 184552324 bytes
Database Buffers????????? 419430400 bytes
Redo Buffers??????????????? 7135232 bytes
数据库装载完毕。
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

SQL>


下面配置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 恢复点

?


配置步骤:

第一步:? 将数据库启动到MOUNT状态:

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

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

????? DBID NAME????? OPEN_MODE? LOG_MODE
---------- --------- ---------- ------------
1384775892 CHARIOT?? MOUNTED??? NOARCHIVELOG

SQL>


第二步:首先将数据库日志运行模式调整为归档模式。


SQL> alter database archivelog;