11g使用非duplicate方式创建物理standby要注意的问题总结(二)

2015-02-02 20:38:44 · 作者: · 浏览: 47
GROUP_2.262.855057605’,‘GROUP_3.266.855058587’,‘GROUP_4.267.855058593’这4个在线日志文件,更别说是+FRA对应的4个文件了,即,在我们恢复数据库数据文件的时候,只会恢复数据文件和临时文件,那么应该如何创建这几个文件呢?

开始,我想到的是先把完全不可能存在的+FRA那组在线日志文件的内容,从备库控制文件中删除

SQL> alter database drop logfile '+FRA/tc/onlinelog/group_1.257.855057601';
alter database drop logfile '+FRA/tc/onlinelog/group_1.257.855057601'
*
第 1 行出现错误:
ORA-01514: 日志说明中出现错误: 没有此类日志
ORA-01517: 日志成员: '+FRA/tc/onlinelog/group_1.257.855057601'

很正常,因为并没有这个路径,就算有,ONLINE REDO LOG也不会在“RMAN> restore database;”命令中恢复

--尝试重建控制文件

SQL> oradebug setmypid
已处理的语句
SQL> alter database backup controlfile to trace;

数据库已更改。

SQL> oradebug tracefile_name
C:\APP\ORACLE\diag\rdbms\tcdg\tc\trace\tc_ora_1792.trc

用oradebug可以轻松地跟踪到具体的trace文件,而不需要执行复杂的sql查询语句

去目标路径打开这个tc_ora_1792.trc文件,可以发现创建控制文件的语句,这里选择NORESETLOGS,内容如下:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TC" NORESETLOGS FORCE LOGGING ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292


*** 2014-08-13 09:30:03.000
LOGFILE


*** 2014-08-13 09:30:04.265
GROUP 1 (
'C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597',
'+FRA/tc/onlinelog/group_1.257.855057601'
) SIZE 50M BLOCKSIZE 512,
GROUP 2 (
'C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605',
'+FRA/tc/onlinelog/group_2.258.855057607'
) SIZE 50M BLOCKSIZE 512,
GROUP 3 (
'C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587',
'+FRA/tc/onlinelog/group_3.259.855058591'
) SIZE 50M BLOCKSIZE 512,
GROUP 4 (
'C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593',
'+FRA/tc/onlinelog/group_4.260.855058595'
) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
-- GROUP 5 'C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG' SIZE 50M BLOCKSIZE 512,
-- GROUP 6 'C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG' SIZE 50M BLOCKSIZE 512,
-- GROUP 7 'C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG' SIZE 50M BLOCKSIZE 512,
-- GROUP 8 'C:\APP\ORACLE\ORADATA\TC\STB_REDO08.LOG' SIZE 50M BLOCKSIZE 512,
-- GROUP 9 'C:\APP\ORACLE\ORADATA\TC\STB_REDO09.LOG' SIZE 50M BLOCKSIZE 512
DATAFILE


*** 2014-08-13 09:30:04.765
'C:\APP\ORACLE\ORADATA\TC\SYSTEM.256.855057451',
'C:\APP\ORACLE\ORADATA\TC\SYSAUX.257.855057453',
'C:\APP\ORACLE\ORADATA\TC\UNDOTBS1.258.855057453',
'C:\APP\ORACLE\ORADATA\TC\USERS.259.855057453',
'C:\APP\ORACLE\ORADATA\TC\EXAMPLE.264.855057687',
'C:\APP\ORACLE\ORADATA\TC\UNDOTBS2.265.855058289'
CHARACTER SET ZHS16GBK
;

--去掉+FRA在线日志文件内容后,执行创建语句

SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE REUSE DATABASE "TC" NORESETLOGS FORCE LOGGING ARCHIVELOG
2 MAXLOGFILES 192
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 1024
5 MAXINSTANCES 32
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 (
9 'C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597'
10 ) SIZE 50M BLOCKSIZE 512,
11 GROUP 2 (
12 'C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605'
13 ) SIZE 50M BLOCKSIZE 512,
14 GROUP 3 (
15 'C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587'
16 ) SIZE 50M BLOCKSIZE 512,
17 GROUP 4 (
18 'C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593'
19 ) SIZE 50M BLOCKSIZE 512
20 -- STANDBY LOGFILE
21 -- GROUP 5 'C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG' SIZE 50M BLOCKSIZE
512,
22 -- GROUP 6 'C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG' SIZE 50M BLOCKSIZE
512,
23 -- GROUP 7 'C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG' SIZE 50M BLOCKSIZE
512,
24 --