其实这个问题确切来说由于自己的疏忽所造成,之前做过rac到单机的恢复实验,生产环境并无涉足,当时测试环境为redhat5.4+oracle1
一、概括
其实这个问题确切来说由于自己的疏忽所造成,之前做过rac到单机的恢复实验,生产环境并无涉足,当时测试环境为redhat5.4+oracle11g+rac,存储方式为asm;生产环境为hpux+oracle10g+rac,存储方式为裸设备;就目前来看,,跟数据文件的存储方式有关。
二、 hpux中,recover完成,执行’alter database open resetlogs’时报以下错误
sql> alter database open resetlogs;
alter database open resetlogs
*
error at line 1:
ora-19502: write error on file /dev/vgdb/rredo2_2a_256m, blockno 105473
(blocksize=1024)
ora-27072: file i/o error
hpux-ia64 error: 2: no such file or directory
additional information: 4
additional information: 105473
additional information: 433152
查看alert日志
ora-1589 signalled during: alter database open...
wed oct 29 08:15:21 2014
alter database open resetlogs
wed oct 29 08:15:21 2014
errors in file /oracle/admin/pmssd/udump/pmssd1_ora_11597.trc:
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/dev/vgdb/rredo1_1b_256m'
ora-27037: unable to obtain file status
hpux-ia64 error: 2: no such file or directory
additional information: 3
ora-00312: online log 1 thread 1: '/dev/vgdb/rredo1_1ax`_256m'
ora-27037: unable to obtain file status
hpux-ia64 error: 2: no such file or directory
additional information: 3
wed oct 29 08:15:21 2014
查看视图v$logfile
sql> select * from v$logfile;
group# status type member is_
---------- ------- ------- ---------------------------- ---
1 online /dev/vgdb/rredo1_1a_256m no
2 online /dev/vgdb/rredo1_2a_256m no
3 online /dev/vgdb/rredo2_1a_256m no
4 online /dev/vgdb/rredo2_2a_256m no
1 online /dev/vgdb/rredo1_1b_256m no
2 online /dev/vgdb/rredo1_2b_256m no
3 online /dev/vgdb/rredo2_1b_256m no
4 online /dev/vgdb/rredo2_2b_256m no
5 online /dev/vgdb/rredo1_3a_256m no
5 online /dev/vgdb/rredo1_3b_256m no
6 online /dev/vgdb/rredo2_3a_256m no
6 online /dev/vgdb/rredo2_3b_256m no
根下目录dev为设置目录,我们需要修改redo日志目录,以完成数据库open操作,语句如下:
sql> alter database rename file '/dev/vgdb/rredo1_1a_256m' to '/oracle/oradata/pmssd/redo01.log';
我并没有按照以上语句操作,而是重新创建了控制文件,这个问题是自己犯二了。修改完redo日志目录后就可以把数据库open了。
下面是我在linux asm模式下的操作(’alter database open resetlogs’)。如以下日志,数据库自动重建了redo日志,并指定到了相应目录
wed oct 29 09:27:19 2014
alter database open resetlogs
resetlogs after incomplete recovery until change 783268
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_3900.trc:
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '+data/racdb/onlinelog/group_1.257.859438553'
ora-17503: ksfdopn:2 failed to open file +data/racdb/onlinelog/group_1.257.859438553
ora-15001: diskgroup data does not exist or is not mounted
ora-15077: could not locate asm instance serving a required diskgroup
ora-29701: unable to connect to cluster synchronization service
ora-00312: online log 1 thread 1: '+data/racdb/onlinelog/group_1.273.859438547'
ora-17503: ksfdopn:2 failed to open file +data/racdb/onlinelog/group_1.273.859438547
ora-15001: diskgroup data does not exist or is not mounted
ora-15077: could not locate asm instance serving a required diskgroup
ora-29701: unable to connect to cluster synchronization service
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_3900.trc:
…………………………………………………………….
warning: asm communication error: op 16 state 0x40 (15077)
error: slave communication error with asm
warning: cannot delete oracle managed file +data/racdb/onlinelog/group_4.275.859442003
warning: asm communication error: op 16 state 0x40 (15077)
error: slave communication error with asm
warning: cannot delete oracle managed file +data/racdb/onlinelog/group_4.271.859442011
wed oct 29 09:28:15 2014
clearing online redo logfile 4 complete
resetting resetlogs activation id 857045326 (0x3315794e)
online log /oracle/oradata/racdb/racdb/onlinelog/o1_mf_1_b50jmr0p_.log: thread 1 group 1 was previously cleared
online log /oracle/backup/archive_racdb/racdb/onlinelog/o1_mf_1_b50jmsl4_.log: thread 1 group 1 was previously cleared
online log /oracle/oradata/racdb/racdb/onlinelog/o1_mf_2_b50jn5rw_.log: thread 1 group 2 was previously cleared
online log /oracle/backup/archive_racdb/racdb/onlinelog/o1_mf_2_b50jn6jm_.log: thread 1 group 2 was previously cleared
online log /oracle/oradata/racdb/racdb/onlinelog/o1_mf_3_b50jnkqn_.log: thread 2 group 3 was previously cleared
online log /oracle/backup/archive_racdb/racdb/onlinelog/o1_mf_3_b50jnltx_.log: thread 2 group 3 was previously cleared
online log /oracle/oradata/racdb/racdb/onlinelog/o1_mf_4_b50jnz10_.log: thread 2 group 4 was previously cleared
online log /oracle/backup/archive_racdb/racdb/onlinelog/o1_mf_4_b50jo0jb_.log: thread 2 group 4 was previously cleared
wed oct 29 09:28:16 2014
setting recovery target incarnation to 2
wed oct 29 09:28:17 2014
assigning activation id 859863386 (0x3340795a)
lgwr: starting arch processes
wed oct 29 09:28:17 2014
arc0 started with pid=20, os id=3924
arc0: archival started
lgwr: starting arch processes complete
thread 1 opened at log sequence 1
current log# 1 seq# 1 mem# 0: /oracle/oradata/racdb/racdb/onlinelog/o1_mf_1_b50jmr0p_.log
current log# 1 seq# 1 mem# 1: /oracle/backup/archive_racdb/racdb/onlinelog/o1_mf_1_b50jmsl4_.log
successful open of redo thread 1
arc0: starting arch processes
wed oct 29 09:28:17 2014
arc1 started with pid=21, os id=3926
mttr advisory is disabled because fast_start_mttr_target is not set
wed oct 29 09:28:17 2014
smon: enabling cache recovery
wed oct 29 09:28:17 2014
arc2 started with pid=22, os id=3928
wed oct 29 09:28:17 2014
arc3 started with pid=23, os id=3930
arc1: archival started
arc2: archival started
arc1: becoming the 'no fal' arch
arc1: becoming the 'no srl' arch
arc2: becoming the heartbeat arch
arc3: archival started
arc0: starting arch processes complete
redo thread 2 internally disabled at seq 1 (ckpt)
arc0: archiving disabled thread 2 sequence 1
archived log entry 27 added for thread 2 sequence 1 id 0x0 dest 1:
[3900] successfully onlined undo tablespace 2.
undo initialization finished serial:0 start:4182896 end:4184866 diff:1970 (19 seconds)
dictionary check beginning
file #7 is offline, but is part of an online tablespace.
data file 7: '+data/racdb/datafile/test2.260.859451699'
file #9 is offline, but is part of an online tablespace.
data file 9: '+data/racdb/datafile/test4.258.859451727'
wed oct 29 09:28:24 2014
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_dbw0_3814.trc:
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '+data/racdb/tempfile/temp.286.859438605'
ora-17503: ksfdopn:2 failed to open file +data/racdb/tempfile/temp.286.859438605
ora-15001: diskgroup data does not exist or is not mounted
ora-15077: could not locate asm instance serving a required diskgroup
ora-29701: unable to connect to cluster synchronization service
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_dbw0_3814.trc:
ora-01186: file 201 failed verification tests
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '+data/racdb/tempfile/temp.286.859438605'
file 201 not verified due to error ora-01157
dictionary check complete
verifying file header compatibility for 11g tablespace encryption..
verifying 11g file header compatibility for tablespace encryption completed
smon: enabling tx recovery
re-creating tempfile +data/racdb/tempfile/temp.286.859438605 as /oracle/oradata/racdb/racdb/datafile/o1_mf_temp_b50jor8m_.tmp
database characterset is zhs16gbk
wed oct 29 09:28:27 2014
no resource manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
starting background process qmnc
wed oct 29 09:28:31 2014
qmnc started with pid=24, os id=3937
logstdby: validating controlfile with logical metadata
logstdby: validation complete
wed oct 29 09:28:42 2014
db_recovery_file_dest_size of 5727 mb is 13.97% used. this is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or asm diskgroup.
wed oct 29 09:28:45 2014
starting background process cjq0
wed oct 29 09:28:45 2014
cjq0 started with pid=27, os id=3957
wed oct 29 09:28:46 2014
completed: alter database open resetlogs
在执行’alter database open resetlogs’之前,修改redo日志目录,open时redo日志就会在指定的目录生成。
alter database rename file '+data/racdb/onlinelog/group_1.273.859438547' to '/oracle/oradata/racdb/redo1_a.log';
alter database rename file '+data/racdb/onlinelog/group_1.257.859438553' to '/oracle/oradata/racdb/redo1_b.log';
alter database rename file '+data/racdb/onlinelog/group_2.256.859438561' to '/oracle/oradata/racdb/redo2_a.log';
alter database rename file '+data/racdb/onlinelog/group_2.291.859438567' to '/oracle/oradata/racdb/redo2_b.log';
alter database rename file '+data/racdb/onlinelog/group_3.277.859441989' to '/oracle/oradata/racdb/redo3_a.log';
alter database rename file '+data/racdb/onlinelog/group_3.276.859441997' to '/oracle/oradata/racdb/redo3_b.log';
alter database rename file '+data/racdb/onlinelog/group_4.275.859442003' to '/oracle/oradata/racdb/redo4_a.log';
查看alert日志
lter database open resetlogs
resetlogs after incomplete recovery until change 783268
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_3683.trc:
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/oracle/oradata/racdb/redo1_b.log'
ora-27037: unable to obtain file status
linux-x86_64 error: 2: no such file or directory
additional information: 3
ora-00312: online log 1 thread 1: '/oracle/oradata/racdb/redo1_a.log'
ora-27037: unable to obtain file status
linux-x86_64 error: 2: no such file or directory
additional information: 3
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_3683.trc:
ora-00313: open failed for members of log group 2 of thread 1
ora-00312: online log 2 thread 1: '/oracle/oradata/racdb/redo2_b.log'
ora-27037: unable to obtain file status
linux-x86_64 error: 2: no such file or directory
……………………………..
additional information: 3
ora-00312: online log 2 thread 1: '/oracle/oradata/racdb/redo2_a.log'
ora-27037: unable to obtain file status
linux-x86_64 error: 2: no such file or directory
additional information: 3
clearing online redo logfile 2 /oracle/oradata/racdb/redo2_a.log
clearing online log 2 of thread 1 sequence number 30
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_3683.trc:
ora-00313: open failed for members of log group 2 of thread 1
ora-00312: online log 2 thread 1: '/oracle/oradata/racdb/redo2_b.log'
ora-27037: unable to obtain file status
linux-x86_64 error: 2: no such file or directory
additional information: 3
………………………………..
clearing online redo logfile 4 complete
resetting resetlogs activation id 857045326 (0x3315794e)
online log /oracle/oradata/racdb/redo1_a.log: thread 1 group 1 was previously cleared
online log /oracle/oradata/racdb/redo1_b.log: thread 1 group 1 was previously cleared
online log /oracle/oradata/racdb/redo2_a.log: thread 1 group 2 was previously cleared
online log /oracle/oradata/racdb/redo2_b.log: thread 1 group 2 was previously cleared
online log /oracle/oradata/racdb/redo3_a.log: thread 2 group 3 was previously cleared
online log /oracle/oradata/racdb/redo3_b.log: thread 2 group 3 was previously cleared
online log /oracle/oradata/racdb/redo4_a.log: thread 2 group 4 was previously cleared
online log /oracle/oradata/racdb/redo4_b.log: thread 2 group 4 was previously cleared
wed oct 29 09:18:08 2014
setting recovery target incarnation to 2
wed oct 29 09:18:09 2014
assigning activation id 859838345 (0x33401789)
lgwr: starting arch processes
wed oct 29 09:18:09 2014
arc0 started with pid=20, os id=3730
arc0: archival started
lgwr: starting arch processes complete
arc0: starting arch processes
thread 1 opened at log sequence 1
current log# 1 seq# 1 mem# 0: /oracle/oradata/racdb/redo1_a.log
current log# 1 seq# 1 mem# 1: /oracle/oradata/racdb/redo1_b.log
successful open of redo thread 1
wed oct 29 09:18:10 2014
arc1 started with pid=21, os id=3732
mttr advisory is disabled because fast_start_mttr_target is not set
wed oct 29 09:18:10 2014
smon: enabling cache recovery
wed oct 29 09:18:10 2014
arc2 started with pid=22, os id=3734
wed oct 29 09:18:10 2014
arc3 started with pid=23, os id=3736
arc1: archival started
arc2: archival started
arc3: archival started
arc0: starting arch processes complete
arc0: becoming the 'no fal' arch
arc0: becoming the 'no srl' arch
arc2: becoming the heartbeat arch
redo thread 2 internally disabled at seq 1 (ckpt)
arc0: archiving disabled thread 2 sequence 1
archived log entry 27 added for thread 2 sequence 1 id 0x0 dest 1:
wed oct 29 09:18:22 2014
[3683] successfully onlined undo tablespace 2.
undo initialization finished serial:0 start:3581386 end:3583566 diff:2180 (21 seconds)
dictionary check beginning
file #7 is offline, but is part of an online tablespace.
data file 7: '+data/racdb/datafile/test2.260.859451699'
file #9 is offline, but is part of an online tablespace.
data file 9: '+data/racdb/datafile/test4.258.859451727'
wed oct 29 09:18:23 2014
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_dbw0_3455.trc:
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '+data/racdb/tempfile/temp.286.859438605'
ora-17503: ksfdopn:2 failed to open file +data/racdb/tempfile/temp.286.859438605
ora-15001: diskgroup data does not exist or is not mounted
ora-15077: could not locate asm instance serving a required diskgroup
ora-29701: unable to connect to cluster synchronization service
errors in file /oracle/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_dbw0_3455.trc:
ora-01186: file 201 failed verification tests
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '+data/racdb/tempfile/temp.286.859438605'
file 201 not verified due to error ora-01157
dictionary check complete
verifying file header compatibility for 11g tablespace encryption..
verifying 11g file header compatibility for tablespace encryption completed
wed oct 29 09:18:23 2014
smon: enabling tx recovery
re-creating tempfile +data/racdb/tempfile/temp.286.859438605 as /oracle/oradata/racdb/racdb/datafile/o1_mf_temp_b50j2zdh_.tmp
database characterset is zhs16gbk
no resource manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
starting background process qmnc
wed oct 29 09:18:32 2014
qmnc started with pid=24, os id=3743
wed oct 29 09:18:33 2014
logstdby: validating controlfile with logical metadata
logstdby: validation complete
wed oct 29 09:18:45 2014
starting background process cjq0
wed oct 29 09:18:45 2014
cjq0 started with pid=27, os id=3763
wed oct 29 09:18:45 2014
completed: alter database open resetlogs