let’s meet at Veriden Gelecege – Istanbul Technical University Event

March 13, 2014 Leave a comment

Veriden_Gelecege_ITU-724x1024

let’s meet at Istanbul Aydin University Oracle Seminar!

December 18, 2013 Leave a comment

aydinseminer

let’s meet at Veriden Gelecege – Istanbul Aydin University Event

November 29, 2013 Leave a comment

Veriden_Gelecege

Book Review: Oracle Data Guard 11gR2 Administration Beginner’s Guide

July 17, 2013 1 comment

Book Review: Oracle Data Guard 11gR2 Administration Beginner’s Guide

My dear friends Emre Baransel and Nassyam Basha’s new book on Oracle Data Guard 11gR2 Administration Beginner’s Guide, is released from Packt Publishing.

I think, Oracle Data Guard 11gR2 Administration Beginner’s Guide is a great book to learn Oracle Data Guard concepts. The book helps you to create, configure, monitor, troubleshooting and patching Oracle Data Guard Standby Databases.

The Book provides practical information to help you start using Oracle Data Guard. I think, it’s sufficient for beginners.

I want to thank to my friends Emre Baransel and Nassyam Basha for spending time to us and giving this great book.

Book Contents:

Preface Chapter

1: Getting Started Chapter

2: Configuring the Oracle Data Guard Physical Standby Database Chapter

3: Configuring Oracle Data Guard Logical Standby Database Chapter

4: Oracle Data Guard Broker Chapter

5: Data Guard Protection Modes Chapter

6: Data Guard Role Transitions Chapter

7: Active Data Guard, Snapshot Standby, and Advanced Techniques Chapter

8: Integrating Data Guard with the Complete Oracle Environment Chapter

9: Data Guard Configuration Patching Chapter

10: Common Data Guard Issues Chapter

11: Data Guard Best Practices Pop Quiz Answers

Wishing to get the most from the book …

The link to buy this book from Packt Publishing is http://www.packtpub.com/oracle-data-guard-11gr2-administration-beginners-guide/book

Oracle_data_guard_image

let’s meet at ANATEKDER (Anatolian Technical Staff Association) Oracle Seminar!

April 15, 2013 Leave a comment

Hi Friends,

On saturday, April 20, I will present at Oracle Seminar organized by ANATEKDER (Anatolian Technical Staff Association).

Addess: Kucuk Ihsaniye Mah. Kozanoglu Sk. No: 1/301 Selcuklu/Konya

http://www.anatekder.org.tr/main/iletisim.php

OracleV33

After Firat University Oracle Seminar…

March 31, 2013 Leave a comment

On Saturday, 9 March, I presented at Firat University Oracle Seminar.

The day was very pleasant and we had a great time. Due to this beautiful invitation and hospitality, I want to thank to Bahadır Bıkmaz who is President of Firat University Software Club, Barış Arıburnu and Batuhan Çıkrıkçı.

Hope to meet at the next event …

http://www.facebook.com/?ref=logo#!/photo.php?v=10200342953969609

Mounting ASM Diskgroup Fails With ORA-15063 Error and Resolving With KFED

March 31, 2013 Leave a comment

Hi Friends,

I want to share a situation that happened to me recently.

I closed my database running on ASM and also ASM instance successfully. I moved my ASM disks to a new server. After the installation Oracle software (Grid Infrastructure and RDBMS) on the new server, I  got the following error when I tried to mount the DATA diskgroup.

ovmdbtest1.asyalocal.com.tr@09:52:05> asmcmd
ASMCMD> mount DATA
ORA-15032: not all alterations performed
ORA-15017: diskgroup “DATA” cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup “DATA” (DBD ERROR: OCIStmtExecute)
ASMCMD>

Same as;

SQL> alter diskgroup DATA mount;
alter diskgroup DATA mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup “DATA” cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup “DATA”

I think, one  or more of ASM disk’s header  was corrupted.  I checked my disks using ASMCA utility and  it shows the status of 2 disks  as “PROVISIONED”. Similarly, kfod utility also shows the status of 2 disks  as “PROVISIONED”.

# $GRID_HOME/bin/kfod status=TRUE asm_diskstring=’/dev/raw/raw*’ disk=all dscvgroup=TRUE
——————————————————————————–
Disk Size Header Path Disk Group User Group
================================================================================
1: 512000 Mb MEMBER /dev/raw/raw1 DATA ora11g dba
2: 512000 Mb PROVISIONED /dev/raw/raw2 DATA ora11g dba
3: 512000 Mb MEMBER /dev/raw/raw3 DATA ora11g dba
4: 512000 Mb PROVISIONED /dev/raw/raw4 DATA ora11g dba
5: 512000 Mb MEMBER /dev/raw/raw5 DATA ora11g dba
6: 512000 Mb MEMBER /dev/raw/raw6 DATA ora11g dba
——————————————————————————–
ORACLE_SID ORACLE_HOME
================================================================================
+ASM /oracle/grid11g

I closed ASM instance and checked the header information of damaged disk using kfed utility.

# $GRID_HOME/bin/kfed read /dev/raw/raw2

kfbh.endian:                          1 ; 0×000: 0×01
kfbh.hard:                          130 ; 0×001: 0×82
kfbh.type:                            1 ; 0×002: KFBTYP_DISKHEAD
kfbh.datfmt:                          1 ; 0×003: 0×01
kfbh.block.blk:                       0 ; 0×004: blk=0
kfbh.block.obj:              2147483648 ; 0×008: disk=0
kfbh.check:                   945480537 ; 0x00c: 0x385ae359
kfbh.fcn.base:                        0 ; 0×010: 0×00000000
kfbh.fcn.wrap:                        0 ; 0×014: 0×00000000
kfbh.spare1:                          0 ; 0×018: 0×00000000
kfbh.spare2:                          0 ; 0x01c: 0×00000000
kfdhdb.driver.provstr:ORCLDISK ; 0×000: length=32
kfdhdb.driver.reserved[0]:     33686018 ; 0×008: 0×02020202
kfdhdb.driver.reserved[1]:     33686018 ; 0x00c: 0×02020202
kfdhdb.driver.reserved[2]:     33686018 ; 0×010: 0×02020202
kfdhdb.driver.reserved[3]:     33686018 ; 0×014: 0×02020202
kfdhdb.driver.reserved[4]:     33686018 ; 0×018: 0×02020202
kfdhdb.driver.reserved[5]:     33686018 ; 0x01c: 0×02020202
kfdhdb.compat:                186646528 ; 0×020: 0x0b200000
kfdhdb.dsknum:                        0 ; 0×024: 0×0000
kfdhdb.grptyp:                        1 ; 0×026: KFDGTP_EXTERNAL
kfdhdb.hdrsts:                        3 ; 0×027: KFDHDR_MEMBER
kfdhdb.dskname:               DATA_0000 ; 0×028: length=9
kfdhdb.grpname:                    DATA ; 0×048: length=4
kfdhdb.fgname:                DATA_0000 ; 0×068: length=9
kfdhdb.capname:                         ; 0×088: length=0
kfdhdb.crestmp.hi:             32983952 ; 0x0a8: HOUR=0×10 DAYS=0x1c MNTH=0×2 YEAR=0x7dd
kfdhdb.crestmp.lo:           3911025664 ; 0x0ac: USEC=0×0 MSEC=0×361 SECS=0×11 MINS=0x3a
kfdhdb.mntstmp.hi:             32984464 ; 0x0b0: HOUR=0×10 DAYS=0xc MNTH=0×3 YEAR=0x7dd
kfdhdb.mntstmp.lo:           3973637120 ; 0x0b4: USEC=0×0 MSEC=0×239 SECS=0xd MINS=0x3b
kfdhdb.secsize:                     512 ; 0x0b8: 0×0200
kfdhdb.blksize:                    4096 ; 0x0ba: 0×1000
kfdhdb.ausize:                  1048576 ; 0x0bc: 0×00100000
kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize:                  512000 ; 0x0c4: 0x0007d000
kfdhdb.pmcnt:                         6 ; 0x0c8: 0×00000006
kfdhdb.fstlocn:                       1 ; 0x0cc: 0×00000001
kfdhdb.altlocn:                       2 ; 0x0d0: 0×00000002
kfdhdb.f1b1locn:                      2 ; 0x0d4: 0×00000002
kfdhdb.redomirrors[0]:                0 ; 0x0d8: 0×0000
kfdhdb.redomirrors[1]:                0 ; 0x0da: 0×0000
kfdhdb.redomirrors[2]:                0 ; 0x0dc: 0×0000
kfdhdb.redomirrors[3]:                0 ; 0x0de: 0×0000
kfdhdb.dbcompat:              168820736 ; 0x0e0: 0x0a100000
kfdhdb.grpstmp.hi:             32983952 ; 0x0e4: HOUR=0×10 DAYS=0x1c MNTH=0×2 YEAR=0x7dd
kfdhdb.grpstmp.lo:           3909777408 ; 0x0e8: USEC=0×0 MSEC=0x29e SECS=0×10 MINS=0x3a
kfdhdb.vfstart:                       0 ; 0x0ec: 0×00000000
kfdhdb.vfend:                         0 ; 0x0f0: 0×00000000
kfdhdb.spfile:                        0 ; 0x0f4: 0×00000000
kfdhdb.spfflg:                        0 ; 0x0f8: 0×00000000
kfdhdb.ub4spare[0]:                   0 ; 0x0fc: 0×00000000
kfdhdb.ub4spare[1]:                   0 ; 0×100: 0×00000000
kfdhdb.ub4spare[2]:                   0 ; 0×104: 0×00000000
kfdhdb.ub4spare[3]:                   0 ; 0×108: 0×00000000
kfdhdb.ub4spare[4]:                   0 ; 0x10c: 0×00000000
kfdhdb.ub4spare[5]:                   0 ; 0×110: 0×00000000
kfdhdb.ub4spare[6]:                   0 ; 0×114: 0×00000000
kfdhdb.ub4spare[7]:                   0 ; 0×118: 0×00000000
kfdhdb.ub4spare[8]:                   0 ; 0x11c: 0×00000000
kfdhdb.ub4spare[9]:                   0 ; 0×120: 0×00000000
kfdhdb.ub4spare[10]:                  0 ; 0×124: 0×00000000
kfdhdb.ub4spare[11]:                  0 ; 0×128: 0×00000000
kfdhdb.ub4spare[12]:                  0 ; 0x12c: 0×00000000
kfdhdb.ub4spare[13]:                  0 ; 0×130: 0×00000000
kfdhdb.ub4spare[14]:                  0 ; 0×134: 0×00000000
kfdhdb.ub4spare[15]:                  0 ; 0×138: 0×00000000
kfdhdb.ub4spare[16]:                  0 ; 0x13c: 0×00000000
kfdhdb.ub4spare[17]:                  0 ; 0×140: 0×00000000
kfdhdb.ub4spare[18]:                  0 ; 0×144: 0×00000000
kfdhdb.ub4spare[19]:                  0 ; 0×148: 0×00000000
kfdhdb.ub4spare[20]:                  0 ; 0x14c: 0×00000000
kfdhdb.ub4spare[21]:                  0 ; 0×150: 0×00000000
kfdhdb.ub4spare[22]:                  0 ; 0×154: 0×00000000
kfdhdb.ub4spare[23]:                  0 ; 0×158: 0×00000000
kfdhdb.ub4spare[24]:                  0 ; 0x15c: 0×00000000
kfdhdb.ub4spare[25]:                  0 ; 0×160: 0×00000000
kfdhdb.ub4spare[26]:                  0 ; 0×164: 0×00000000
kfdhdb.ub4spare[27]:                  0 ; 0×168: 0×00000000
kfdhdb.ub4spare[28]:                  0 ; 0x16c: 0×00000000
kfdhdb.ub4spare[29]:                  0 ; 0×170: 0×00000000
kfdhdb.ub4spare[30]:                  0 ; 0×174: 0×00000000
kfdhdb.ub4spare[31]:                  0 ; 0×178: 0×00000000
kfdhdb.ub4spare[32]:                  0 ; 0x17c: 0×00000000
kfdhdb.ub4spare[33]:                  0 ; 0×180: 0×00000000
kfdhdb.ub4spare[34]:                  0 ; 0×184: 0×00000000
kfdhdb.ub4spare[35]:                  0 ; 0×188: 0×00000000
kfdhdb.ub4spare[36]:                  0 ; 0x18c: 0×00000000
kfdhdb.ub4spare[37]:                  0 ; 0×190: 0×00000000
kfdhdb.ub4spare[38]:                  0 ; 0×194: 0×00000000
kfdhdb.ub4spare[39]:             254613 ; 0×198: 0x0003e295
kfdhdb.ub4spare[40]:                  0 ; 0x19c: 0×00000000
kfdhdb.ub4spare[41]:                  0 ; 0x1a0: 0×00000000
kfdhdb.ub4spare[42]:                  0 ; 0x1a4: 0×00000000
kfdhdb.ub4spare[43]:                  0 ; 0x1a8: 0×00000000
kfdhdb.ub4spare[44]:                  0 ; 0x1ac: 0×00000000
kfdhdb.ub4spare[45]:                  0 ; 0x1b0: 0×00000000
kfdhdb.ub4spare[46]:                  0 ; 0x1b4: 0×00000000
kfdhdb.ub4spare[47]:                  0 ; 0x1b8: 0×00000000
kfdhdb.ub4spare[48]:                  0 ; 0x1bc: 0×00000000
kfdhdb.ub4spare[49]:                  0 ; 0x1c0: 0×00000000
kfdhdb.ub4spare[50]:                  0 ; 0x1c4: 0×00000000
kfdhdb.ub4spare[51]:                  0 ; 0x1c8: 0×00000000
kfdhdb.ub4spare[52]:                  0 ; 0x1cc: 0×00000000
kfdhdb.ub4spare[53]:                  0 ; 0x1d0: 0×00000000
kfdhdb.acdb.aba.seq:                  0 ; 0x1d4: 0×00000000
kfdhdb.acdb.aba.blk:                  0 ; 0x1d8: 0×00000000
kfdhdb.acdb.ents:                     0 ; 0x1dc: 0×0000
kfdhdb.acdb.ub2spare:             43605 ; 0x1de: 0xaa55

The header information was corrupted. kfed output for the disk affected shows 0xaa55 on kfdhdb.acdb.ub2spare field. I backed up the header information using dd command.

# dd if=/dev/raw/raw2 of=/tmp/DATA.dd bs=1M count=10

I got the allocation unit size of damaged disk.

# $GRID_HOME/bin/kfed read /dev/raw/raw2 | grep ausize

Now we can repair damaged header information.

# $GRID_HOME/bin/kfed repair /dev/raw/raw2 aus=1048576

I rechecked the header information of damaged disk using kfed utility. Now, kfed output for the disk affected shows 0×0000 on kfdhdb.acdb.ub2spare field

# $GRID_HOME/bin/kfed read /dev/raw/raw2

kfbh.endian:                          1 ; 0×000: 0×01
kfbh.hard:                          130 ; 0×001: 0×82
kfbh.type:                            1 ; 0×002: KFBTYP_DISKHEAD
kfbh.datfmt:                          1 ; 0×003: 0×01
kfbh.block.blk:                       0 ; 0×004: blk=0
kfbh.block.obj:              2147483648 ; 0×008: disk=0
kfbh.check:                   945480537 ; 0x00c: 0x385ae359
kfbh.fcn.base:                        0 ; 0×010: 0×00000000
kfbh.fcn.wrap:                        0 ; 0×014: 0×00000000
kfbh.spare1:                          0 ; 0×018: 0×00000000
kfbh.spare2:                          0 ; 0x01c: 0×00000000
kfdhdb.driver.provstr:ORCLDISK ; 0×000: length=32
kfdhdb.driver.reserved[0]:     33686018 ; 0×008: 0×02020202
kfdhdb.driver.reserved[1]:     33686018 ; 0x00c: 0×02020202
kfdhdb.driver.reserved[2]:     33686018 ; 0×010: 0×02020202
kfdhdb.driver.reserved[3]:     33686018 ; 0×014: 0×02020202
kfdhdb.driver.reserved[4]:     33686018 ; 0×018: 0×02020202
kfdhdb.driver.reserved[5]:     33686018 ; 0x01c: 0×02020202
kfdhdb.compat:                186646528 ; 0×020: 0x0b200000
kfdhdb.dsknum:                        0 ; 0×024: 0×0000
kfdhdb.grptyp:                        1 ; 0×026: KFDGTP_EXTERNAL
kfdhdb.hdrsts:                        3 ; 0×027: KFDHDR_MEMBER
kfdhdb.dskname:               DATA_0000 ; 0×028: length=9
kfdhdb.grpname:                    DATA ; 0×048: length=4
kfdhdb.fgname:                DATA_0000 ; 0×068: length=9
kfdhdb.capname:                         ; 0×088: length=0
kfdhdb.crestmp.hi:             32983952 ; 0x0a8: HOUR=0×10 DAYS=0x1c MNTH=0×2 YEAR=0x7dd
kfdhdb.crestmp.lo:           3911025664 ; 0x0ac: USEC=0×0 MSEC=0×361 SECS=0×11 MINS=0x3a
kfdhdb.mntstmp.hi:             32984464 ; 0x0b0: HOUR=0×10 DAYS=0xc MNTH=0×3 YEAR=0x7dd
kfdhdb.mntstmp.lo:           3973637120 ; 0x0b4: USEC=0×0 MSEC=0×239 SECS=0xd MINS=0x3b
kfdhdb.secsize:                     512 ; 0x0b8: 0×0200
kfdhdb.blksize:                    4096 ; 0x0ba: 0×1000
kfdhdb.ausize:                  1048576 ; 0x0bc: 0×00100000
kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize:                  512000 ; 0x0c4: 0x0007d000
kfdhdb.pmcnt:                         6 ; 0x0c8: 0×00000006
kfdhdb.fstlocn:                       1 ; 0x0cc: 0×00000001
kfdhdb.altlocn:                       2 ; 0x0d0: 0×00000002
kfdhdb.f1b1locn:                      2 ; 0x0d4: 0×00000002
kfdhdb.redomirrors[0]:                0 ; 0x0d8: 0×0000
kfdhdb.redomirrors[1]:                0 ; 0x0da: 0×0000
kfdhdb.redomirrors[2]:                0 ; 0x0dc: 0×0000
kfdhdb.redomirrors[3]:                0 ; 0x0de: 0×0000
kfdhdb.dbcompat:              168820736 ; 0x0e0: 0x0a100000
kfdhdb.grpstmp.hi:             32983952 ; 0x0e4: HOUR=0×10 DAYS=0x1c MNTH=0×2 YEAR=0x7dd
kfdhdb.grpstmp.lo:           3909777408 ; 0x0e8: USEC=0×0 MSEC=0x29e SECS=0×10 MINS=0x3a
kfdhdb.vfstart:                       0 ; 0x0ec: 0×00000000
kfdhdb.vfend:                         0 ; 0x0f0: 0×00000000
kfdhdb.spfile:                        0 ; 0x0f4: 0×00000000
kfdhdb.spfflg:                        0 ; 0x0f8: 0×00000000
kfdhdb.ub4spare[0]:                   0 ; 0x0fc: 0×00000000
kfdhdb.ub4spare[1]:                   0 ; 0×100: 0×00000000
kfdhdb.ub4spare[2]:                   0 ; 0×104: 0×00000000
kfdhdb.ub4spare[3]:                   0 ; 0×108: 0×00000000
kfdhdb.ub4spare[4]:                   0 ; 0x10c: 0×00000000
kfdhdb.ub4spare[5]:                   0 ; 0×110: 0×00000000
kfdhdb.ub4spare[6]:                   0 ; 0×114: 0×00000000
kfdhdb.ub4spare[7]:                   0 ; 0×118: 0×00000000
kfdhdb.ub4spare[8]:                   0 ; 0x11c: 0×00000000
kfdhdb.ub4spare[9]:                   0 ; 0×120: 0×00000000
kfdhdb.ub4spare[10]:                  0 ; 0×124: 0×00000000
kfdhdb.ub4spare[11]:                  0 ; 0×128: 0×00000000
kfdhdb.ub4spare[12]:                  0 ; 0x12c: 0×00000000
kfdhdb.ub4spare[13]:                  0 ; 0×130: 0×00000000
kfdhdb.ub4spare[14]:                  0 ; 0×134: 0×00000000
kfdhdb.ub4spare[15]:                  0 ; 0×138: 0×00000000
kfdhdb.ub4spare[16]:                  0 ; 0x13c: 0×00000000
kfdhdb.ub4spare[17]:                  0 ; 0×140: 0×00000000
kfdhdb.ub4spare[18]:                  0 ; 0×144: 0×00000000
kfdhdb.ub4spare[19]:                  0 ; 0×148: 0×00000000
kfdhdb.ub4spare[20]:                  0 ; 0x14c: 0×00000000
kfdhdb.ub4spare[21]:                  0 ; 0×150: 0×00000000
kfdhdb.ub4spare[22]:                  0 ; 0×154: 0×00000000
kfdhdb.ub4spare[23]:                  0 ; 0×158: 0×00000000
kfdhdb.ub4spare[24]:                  0 ; 0x15c: 0×00000000
kfdhdb.ub4spare[25]:                  0 ; 0×160: 0×00000000
kfdhdb.ub4spare[26]:                  0 ; 0×164: 0×00000000
kfdhdb.ub4spare[27]:                  0 ; 0×168: 0×00000000
kfdhdb.ub4spare[28]:                  0 ; 0x16c: 0×00000000
kfdhdb.ub4spare[29]:                  0 ; 0×170: 0×00000000
kfdhdb.ub4spare[30]:                  0 ; 0×174: 0×00000000
kfdhdb.ub4spare[31]:                  0 ; 0×178: 0×00000000
kfdhdb.ub4spare[32]:                  0 ; 0x17c: 0×00000000
kfdhdb.ub4spare[33]:                  0 ; 0×180: 0×00000000
kfdhdb.ub4spare[34]:                  0 ; 0×184: 0×00000000
kfdhdb.ub4spare[35]:                  0 ; 0×188: 0×00000000
kfdhdb.ub4spare[36]:                  0 ; 0x18c: 0×00000000
kfdhdb.ub4spare[37]:                  0 ; 0×190: 0×00000000
kfdhdb.ub4spare[38]:                  0 ; 0×194: 0×00000000
kfdhdb.ub4spare[39]:                  0 ; 0×198: 0×00000000
kfdhdb.ub4spare[40]:                  0 ; 0x19c: 0×00000000
kfdhdb.ub4spare[41]:                  0 ; 0x1a0: 0×00000000
kfdhdb.ub4spare[42]:                  0 ; 0x1a4: 0×00000000
kfdhdb.ub4spare[43]:                  0 ; 0x1a8: 0×00000000
kfdhdb.ub4spare[44]:                  0 ; 0x1ac: 0×00000000
kfdhdb.ub4spare[45]:                  0 ; 0x1b0: 0×00000000
kfdhdb.ub4spare[46]:                  0 ; 0x1b4: 0×00000000
kfdhdb.ub4spare[47]:                  0 ; 0x1b8: 0×00000000
kfdhdb.ub4spare[48]:                  0 ; 0x1bc: 0×00000000
kfdhdb.ub4spare[49]:                  0 ; 0x1c0: 0×00000000
kfdhdb.ub4spare[50]:                  0 ; 0x1c4: 0×00000000
kfdhdb.ub4spare[51]:                  0 ; 0x1c8: 0×00000000
kfdhdb.ub4spare[52]:                  0 ; 0x1cc: 0×00000000
kfdhdb.ub4spare[53]:                  0 ; 0x1d0: 0×00000000
kfdhdb.acdb.aba.seq:                  0 ; 0x1d4: 0×00000000
kfdhdb.acdb.aba.blk:                  0 ; 0x1d8: 0×00000000
kfdhdb.acdb.ents:                     0 ; 0x1dc: 0×0000
kfdhdb.acdb.ub2spare:                 0 ; 0x1de: 0×0000

Now, we can mount DATA diskgroup successfully.

I recommend that you should add ASM disk header information backup to your current backup plan.

I did not take a backup of damaged ASM disk header information before. So how was the recovery process above? There is a second copy of ASM disk header information. kfed repairs the corrupted block from second copy. If our second copy of the header information was corrupted also then we could repair the header information using backup.

Talip Hakan Öztürk

Follow

Get every new post delivered to your Inbox.

Join 49 other followers

%d bloggers like this: