ORACLE FLASHBACK DATABASE知识整理(三)

2014-11-24 15:03:36 · 作者: · 浏览: 2
III SQL>alter database open read only;
查看数据库在该时间点下是否为所需状态,如果不是,更换新的时间点后,重复执行I-III。如果已经为所需状态
[sql]
IV SQL>startup abort;
V SQL>alter database open resetlogs;
4.2 RMAN
在RMAN环境下,针对SQLPLUS中的第3步,可以选择另外三种实现方式
[sql]
RMAN>flashbackdatabase to time=to_date('2013-07-26 18:00:00','yyyy-mm-dd hh24:mi:ss');//最细粒度为秒
RMAN>flashbackdatabase to scn=3655894;
RMAN>flashbackdatabase to sequence=56 thread=1;
5 OFFLINE状态对闪回的影响实例分析
闪回点指历史上的时间点。
操作点指执行闪回操作时的时间点,这个时间点理论上晚于闪回点。
经过后边的实验,证明在闪回点是OFFLINE的文件都将在闪回过程中被忽略,并且在之后的打开过程中会用到不安全的隐含参数。所以在执行全库闪回的时候,推荐按照以下步骤进行
记录所有数据文件的OFFLINE/ONLINE状态
将所有数据文件都上线
Flashback database
按照记录情况,手动改回各数据文件的状态
5.1 闪回点OFFLINE,操作点OFFLINE
这是很麻烦的情况,闪回结果是数据没有被闪回,状态出现错误,最后要求做全备份
1) 确定当前时间
[sql]
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2013-07-27 20:56:32
2) 确定当前SCN
[sql]
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
839748
3)插入另外一个表knight.keyboards新数据
[sql]
SQL> insert into knight.keyboards values(200,'SANSUMG','MECHINE');
1 row created.
4)插入另外一个表新数据
[sql]
SQL> insert into knight.keyboards values(201,'SNAKE','MECHINE');
1 row created.
[sql]
SQL> commit;
Commit complete.
5)新表状态
[sql]
SQL> select * from knight.keyboards;
ID COMPANY TYPE
------------------------------ --------------------
200 SANSUMG MECHINE
201 SNAKE MECHINE
1 IBM 500.55
2 HP 200.5
3 SONY 1200.5
4 ACER 55.6
5 MICROSOFT 108
6)将表knight.keyboards所在空间OFFLINE
[sql]
SQL> alter tablespace offline_space offline;
Tablespace altered.
7)检查一下,已经不能访问了
[sql]
SQL> select * from knight.keyboards;
select * from knight.keyboards
*
ERROR at line1:
ORA-00376: file7 cannot be read at this time
ORA-01110: datafile 7: '/ss/offline_space01.dbf'
8)模拟断电关机
[sql]
SQL>shutdown abort;
9)启动到mount模式
[sql]
SQL>startup mount;
10)开始闪回
[sql]
SQL>flashback database to timestamp to_timestamp('2013-07-27 20:56:32','yyyy-MM-dd hh24:mi:ss');
Flashback complete.
11)resetlogs打开数据库
[sql]
SQL>alter database open resetlogs;
Database altered.
12)尝试将表空间online,结果报错了,糟糕的01190
[sql]
SQL> alter tablespace offline_space online;
altert ablespace offline_space online
*
ERROR at line1:
ORA-01190:control file or data file 7 is from before the last RESETLOGS
ORA-01110: datafile 7: '/ss/offline_space01.dbf'
13)使用隐藏参数设置
[sql]
SQL> alter system set"_allow_resetlogs_corruption"=TRUE scope=spfile;
System altered.
[sql]
SQL> ALTER SESSIONSET EVENTS 'IMMEDIATE TRACE NAME ADJUST_SCN LEVEL 1';
Session altered.
14)重启数据库后尝试不完全恢复
[sql]
SQL> shutdown immediate;
Database closed.
Database dismounted.