Hi All,

Recently One of my clients started getting above error which was reported in the alert log of the standby database. The excerpt of alert log is as shown below

Fri Oct 5 10:41:57 2007

Media Recovery Waiting for thread 1 seq# 5943 (in transit)

Media Recovery Log /u04/oracle/oradata/archive/1_5943.dbf

Media Recovery Log /u04/oracle/oradata/archive/1_5944.dbf

Media Recovery Log /u04/oracle/oradata/archive/1_5945.dbf

Fri Oct 5 10:43:37 2007

Media Recovery Waiting for thread 1 seq# 5946

Media Recovery Log /u04/oracle/oradata/archive/1_5946.dbf

Media Recovery Log /u04/oracle/oradata/archive/1_5947.dbf

Fri Oct 5 10:45:03 2007

Errors in file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu_arc0_30373.trc:

ORA-07445: exception encountered: core dump [kcfsmpoll()+60] [SIGSEGV] [Address not mapped to object] [0x0000000A8] [] []

Fri Oct 5 10:45:03 2007

Errors in file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu__30365.trc:

ORA-07445: exception encountered: core dump [kcfsmpoll()+60] [SIGSEGV] [Address not mapped to object] [0x0000000A8] [] []

Fri Oct 5 10:45:04 2007

Errors in file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu__30355.trc:

ORA-07445: exception encountered: core dump [kcfsmpoll()+60] [SIGSEGV] [Address not mapped to object] [0x0000000A8] [] []

Fri Oct 5 10:45:04 2007

Errors in file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu__30365.trc:

ORA-07445: exception encountered: core dump [<0x96533340>] [SIGSEGV] [Invalid permissions for mapped object] [0x096533340] [] []

ORA-07445: exception encountered: core dump [kcfsmpoll()+60] [SIGSEGV] [Address not mapped to object] [0x0000000A8] [] []

Fri Oct 5 10:45:06 2007

Errors in file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu__30353.trc:

ORA-07445: exception encountered: core dump [kcffca()+8] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []

Fri Oct 5 10:45:06 2007

On further observing the alert log I observed the following  

Media Recovery Log /u04/oracle/oradata/archive/1_5903.dbf

Hex dump of Absolute File 14, Block 1612406 in trace file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu_mrp0_30383.trc

***

Corrupt block relative dba: 0x03989a76 (file 14, block 1612406)

Bad header found during media/instance recovery

Data in bad block -

type: 80 format: 7 rdba: 0x0a002c53

last change scn: 0×3527.360dc405 seq: 0×4 flg: 0xc3

consistency value in tail: 0x6c6f4320

check value in block header: 0×2843, block checksum disabled

spare1: 0×52, spare2: 0×54, spare3: 0x20f

***

Reread of rdba: 0x03989a76 (file 14, block 1612406) found same corrupted data

Hex dump of Absolute File 14, Block 1612405 in trace file /home/oracle/admin/IMCLDBBU/bdump/imcldbbu_mrp0_30383.trc

***

Corrupt block relative dba: 0x03989a75 (file 14, block 1612405)

Bad header found during media/instance recovery

Data in bad block -

type: 8 format: 0 rdba: 0x45534d0a

last change scn: 0×5459.4e4f5354 seq: 0×56 flg: 0x2c

consistency value in tail: 0x5345455a

check value in block header: 0xa01, computed block checksum: 0x675f

spare1: 0×33, spare2: 0×32, spare3: 0xc405

***

Reread of rdba: 0x03989a75 (file 14, block 1612405) found same corrupted data

Media Recovery Log /u04/oracle/oradata/archive/1_5904.dbf

Media Recovery Log /u04/oracle/oradata/archive/1_5905.dbf

Fri Oct 5 09:44:51 2007

The above lines clearly show that datafile 14 has corrupt blocks and this was the main reason for getting the above ora-7445.

Due to above corruptions when the database was tried to put in recovery mode the instance was automatically getting terminated giving end of communication file error as shown

SQL> startup nomount

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area 2686421760 bytes

Fixed Size                   744192 bytes

Variable Size            1358954496 bytes

Database Buffers         1325400064 bytes

Redo Buffers                1323008 bytes

SQL> alter database mount standby database;

Database altered.

SQL> alter database recover managed standby database disconnect from session;

ora-3113: end of communication file error

 Hence the solution to above problem is basically recreating the Standby database by taking the fresh cold backup from production server and restoring on standby and putting the database in recovery mode. The above solution is feasible provided the production database has not got any corruption. To check for corruption use db verify utility and run it on all files of the production database.If corruption is detected on production database also then u need to contact oracle support service to salvage the data

 

Hi All,

you may face a situation where you have to multiplex controlfile across multiple diskgroups especially after the database is created.However with ASM this activity is not simple enough just as in filesystem when we simply copy files from one folder/directory to another and edit the init.ora.

I assume you are using OMF feature by setting db_create_file_dest

In order to multiplex/move teh controlfile to different diskgroup use the following command

Database Instance

SQL> alter database backup controlfile to ‘+DB_DSK_GRP2′;

this will create backup controlfile in the diskgroup +DB_DSK_GRP2

c:\> set oracle_sid=+asm

C:\>asmcmd
ASMCMD> cd +DB_DSK_GRP2/test/control
ASMCMD> ls
backup.256.47238470

ASMCMD> mkalias backup.256.47238470 control02.ctl

SQL> show parameter control_files;

Name Value
————————————————————————————–
control_files +DB_DSK_GRP1/test/control/control.256.5689371

SQL> alter system set control_files=’+DB_DSK_GRP1/test/control/control.256.5689371′,’+DB_DSK_GRP2/test/control/control02.ctl’ scope=spfile

To multiplex redo log across diskgroups perform the following steps

SQL> alter database add logfile member  ’+DB_DSK_GRP2′ to group 1;

SQL> alter database add logfile member  ’+DB_DSK_GRP2′ to group 2;

SQL> alter database add logfile member  ’+DB_DSK_GRP2′ to group 3;