Bu Blogda Ara

6 Ekim 2011 Perşembe

Oracle - ASM disklerinin Head Bilgisini Okumak

kfed, ASM disk head'lerini okumak için kullanılan tool'dur. Tool'un kullanıma uygun olup olmadığı aşağıdaki gibi kontrol edilebilir. root ile bağlanılıp, ORACLE_HOME ve PATH değerleri ayarlanır.
$ ls -l $ORACLE_HOME/bin/kfed
-rwxr-x--x 1 oracle dba 2374262 Jul  4 18:12 /oracle/product/11.2.0/db/bin/kfed

Eğer Executable yoksa, aşağıdaki gibi relink edilerek kullanıma uygun hale getirilir.
1)  $ORACLE_HOME/rdbms/lib klasörüne gidilir:
$ cd $ORACLE_HOME/rdbms/lib
2) Executable yaratılır:
$ make -f ins_rdbms.mk ikfed
3) kfed, $ORACLE_HOME/bin altında yaratıldığı kontrol edilir.
$ ls -l $ORACLE_HOME/bin/kfed

kfed tool'unu kullanarak, disk head bilgileri elde edilir.
kfbh.type, parametresinin KFBTYP_DISKHEAD olmasından ASM disk olduğunu anlıyoruz. ASM diski olmasaydı KFBTYP_INVALID değerini verecektir. kfdhdb.dskname ve kfdhdb.grpname parametreleri ile disk ve group ismine ulaşarabiliriz.
$ kfed read /dev/sdb1
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0
kfbh.block.obj:              2147483648 ; 0x008: TYPE=0x8 NUMB=0x0
kfbh.check:                  2028481114 ; 0x00c: 0x78e82a5a
kfbh.fcn.base:                        0 ; 0x010: 0x00000000
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfdhdb.driver.provstr:         ORCLDISK ; 0x000: length=8
kfdhdb.driver.reserved[0]:            0 ; 0x008: 0x00000000
kfdhdb.driver.reserved[1]:            0 ; 0x00c: 0x00000000
kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000
kfdhdb.compat:                186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum:                        0 ; 0x024: 0x0000
kfdhdb.grptyp:                        1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname:                   DISK1 ; 0x028: length=5
kfdhdb.grpname:                    DATA ; 0x048: length=4
kfdhdb.fgname:                    DISK1 ; 0x068: length=5
kfdhdb.capname:                         ; 0x088: length=0
kfdhdb.crestmp.hi:             32957265 ; 0x0a8: HOUR=0x11 DAYS=0x1a MNTH=0x8 YEAR=0x7db
kfdhdb.crestmp.lo:           2866168832 ; 0x0ac: USEC=0x0 MSEC=0x191 SECS=0x2d MINS=0x2a
kfdhdb.mntstmp.hi:             32957265 ; 0x0b0: HOUR=0x11 DAYS=0x1a MNTH=0x8 YEAR=0x7db
kfdhdb.mntstmp.lo:           2893556736 ; 0x0b4: USEC=0x0 MSEC=0x20b SECS=0x7 MINS=0x2b
kfdhdb.secsize:                     512 ; 0x0b8: 0x0200
kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000
kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize:                  409594 ; 0x0c4: 0x00063ffa
kfdhdb.pmcnt:                         5 ; 0x0c8: 0x00000005
kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001
kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002
kfdhdb.f1b1locn:                      2 ; 0x0d4: 0x00000002
kfdhdb.redomirrors[0]:                0 ; 0x0d8: 0x0000
kfdhdb.redomirrors[1]:                0 ; 0x0da: 0x0000
kfdhdb.redomirrors[2]:                0 ; 0x0dc: 0x0000
kfdhdb.redomirrors[3]:                0 ; 0x0de: 0x0000
kfdhdb.dbcompat:              168820736 ; 0x0e0: 0x0a100000
kfdhdb.grpstmp.hi:             32957265 ; 0x0e4: HOUR=0x11 DAYS=0x1a MNTH=0x8 YEAR=0x7db
kfdhdb.grpstmp.lo:           2866018304 ; 0x0e8: USEC=0x0 MSEC=0xfe SECS=0x2d MINS=0x2a
kfdhdb.vfstart:                       0 ; 0x0ec: 0x00000000
kfdhdb.vfend:                         0 ; 0x0f0: 0x00000000
kfdhdb.spfile:                       58 ; 0x0f4: 0x0000003a
kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001
kfdhdb.ub4spare[0]:                   0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]:                   0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]:                   0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]:                   0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]:                   0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]:                   0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]:                   0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]:                   0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]:                   0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]:                   0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]:                  0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]:                  0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]:                  0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]:                  0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]:                  0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]:                  0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]:                  0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]:                  0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]:                  0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]:                  0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]:                  0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]:                  0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]:                  0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]:                  0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]:                  0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]:                  0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]:                  0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]:                  0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]:                  0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]:                  0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]:                  0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]:                  0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]:                  0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]:                  0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]:                  0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]:                  0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]:                  0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]:                  0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]:                  0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]:                  0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]:                  0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]:                  0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]:                  0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]:                  0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]:                  0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]:                  0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]:                  0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]:                  0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]:                  0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]:                  0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]:                  0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]:                  0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]:                  0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]:                  0 ; 0x1d0: 0x00000000
kfdhdb.acdb.aba.seq:                  0 ; 0x1d4: 0x00000000
kfdhdb.acdb.aba.blk:                  0 ; 0x1d8: 0x00000000
kfdhdb.acdb.ents:                     0 ; 0x1dc: 0x0000
kfdhdb.acdb.ub2spare:                 0 ; 0x1de: 0x0000

4 Ekim 2011 Salı

Oracle - Tablonun başlangıç boyutunun değiştirilmesi (INITIAL RESIZE)

Bazen tablo truncate edilmesine rağmen boyutu hala yüksektir. Tablonun boyutu, truncate işlemi ile tablonun initial değerine dönecektir. Tablonun initial değerini değiştirmek için aşağıdaki yöntem kullanılabilir.
  • Tablo Alter edilerek başka tablespace’e taşınır.
ALTER TABLE MY_TABLE MOVE TABLESPACE ANOTHER_TABLESPLACE STORAGE (INITIAL 2M NEXT 2M PCTINCREASE 0);
  • INITIAL parametresi değiştirilerek tekrar orjinal tablespace’ine geri taşınır.
ALTER TABLE MY_TABLE MOVE TABLESPACE ORIGINAL_TABLESPACE STORAGE (INITIAL 256M NEXT 2M PCTINCREASE 0);
  • Böylelikle drop ve recreate etmeye gerek yoktur.

3 Ekim 2011 Pazartesi

Oracle - Oracle 11gR1 versiyonu SEC_CASE_SENSITIVE_LOGON özelliği

SEC_CASE_SENSITIVE_LOGON parametresi "true" olursa veritabanı kullanıcı şifreleri büyük, küçük harfe duyarlı olur.
alter system set sec_case_sensitive_logon=true scope=both sid='*';


SEC_CASE_SENSITIVE_LOGON parametresi "false" olursa veritabanı kullanıcı şifreleri büyük, küçük harf farketmez.
alter system set sec_case_sensitive_logon=false scope=both sid='*';


Veritabanı kurulurken; “Keep the enhanced 11g default secutiry settings” seçilirse, bu değer default olarak true gelecektir.

Insesitive password file yaratırken ignorecase=y seçeneği kullanılabilir.
$ orapwd file=orapwDB11Gb entries=5 ignorecase=y password=mypassword

Oracle - Session bazlı Temp tablespace kullanımı

  SELECT   b.tablespace,
           b.segfile#,
           b.segblk#,
           ROUND ( ( (b.blocks * p.VALUE) / 1024 / 1024), 2) size_mb,
           a.sid,
           a.serial#,
           a.username,
           a.osuser,
           a.program,
           a.status,
           b.sql_id
    FROM   v$session a,
           v$sort_usage b,
           v$process c,
           v$parameter p
   WHERE       p.name = 'db_block_size'
           AND a.saddr = b.session_addr
           AND a.paddr = c.addr
ORDER BY   size_mb DESC;

Oracle - 11gR1 versiyonu ile gelen rman özellikleri

  • Hataları listeler

rman>list failure;

  • Çözüm önerilerini gösterir.

rman>advise failure;

  • Çözüm script'ini gösterir.

rman>repair failure preview;

  • Çözüm script'ini uygular.

rman>repair failure noprompt;

Oracle - Undo Tablespace'ini kullanarak objelerin ve tablonun eski halinin elde edilmesi

  • Undo tablespace'in ilgili kayıtlar silinmediyse tablonun eski tarihli görünümüne bakılabilir. Bu özellik için flashback'in açık olmasına gerek yoktur.

select * from <tablo_ismi>  as of timestamp to_timestamp('2010-10-05 16:45:00','yyyy-mm-dd hh24:mi:ss')

  • Aşağıdaki select ile objenin eski tarihli kaynak kodu elde edilebilir. Bu özellik için flashback'in açık olmasına gerek yoktur.

select * from dba_source as of timestamp to_timestamp('2011-10-03 08:45:00','yyyy-mm-dd hh24:mi:ss') where name='<Obje_ismi>';

Oracle - Oracle RAC veritabanının archivemod'a alınması

  • Veritabanı exclusive modda çekilir.

sqlplus / as sysdba
SQL>alter system set cluster_database=false scope=spfile ;

  • Veritabanı kapatılır.

$ srvctl stop database -d <veritabanı ismi>

  • Node'lardan sadece bir tanesi açılarak archivelog modu devreye alınır. Sonra açılan node kapatılarak, exclusive modda çıkartılır.

$ sqlplus / as sysdba
SQL> startup mount
SQL> alter database archivelog;
SQL> alter system set cluster_database=true scope=spfile ;
SQL> shutdown immediate

  • Veritabanı ve servisler tekrar başlatılır.

$ srvctl start database -d <veritabanı ismi>
$ srvctl start service -d <service ismi>

  • Aşağıdaki komut ile modu kontrol edilebilir.

$ sqlplus / as sysdba
SQL> archive log list