Thursday 2 May 2013

Oracle Rman Datafile Summary

RMAN> list backup of datafile 1 Summary;


List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
247183  B  F  A SBT_TAPE    11-APR-13       1       1       NO         TAG20133122111T020943

Wednesday 1 May 2013

sysasm ORA-01031: insufficient privileges error...


Cause:
ora@orac1>sqlplus / as sysasm

QL*Plus: Release 11.2.0.1.0 Production on Wed May 1 23:55:05 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect sys as sysasm
Enter password:
ERROR:
ORA-01031: insufficient privileges

Solution:

ora@orac1> echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/dbhome_1
ora@orac1> export ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid 
ora@orac1> sqlplus / as sysasm



SQL*Plus: Release 11.2.0.1.0 Production on Thu May 2 00:01:07 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Automatic Storage Management option

SQL>


Tuesday 16 April 2013

Rman Encrypted Backup Hk.

Merhaba,

Bu yazımda rman'da encrypted backup nasıl alınır ona değineceğim.

Öncelikle rman'de encrypted backup almamızın temel nedeni, verilerimizin güvenliğini sağlamaktır. Bunu neden yaparız dersek  bir kaç farklı sebebi var;

1- Kritik verilerinizin başkalarının eline geçmemesi,
2- Olaki bir şekilde backupınız başkasının  geçti, restore yapılamamasının sağlanması dır.

Konuyu örnekleyecek olursak;


[oracle@ora labs]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Apr 16 10:27:43 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1262674253)

RMAN> show all; komutunu çalıştırdığınızda

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

Üstteki 2 parametre görüntülenir.
1.nci parametre backup'ın şifresiz bir şekilde alınması gerektiğini,
2.nci parametre de şifreli bir backup alınacak ise "AES128" anahtarı ile şifreleneceğini gösterir.

Biz session bazlı bir şifreleme yapmak istiyorsak alttaki komutu çalıştırırız ;
RMAN> set encryption on identified by Deneme123 only;

executing command: SET encryption

tekrar show all komutunu çalıştırarsınız değişiklik göremezssiniz, başta da belirttiğim gibi session bazlı şifrelemelerde parametre değişmez, fakat olay restore'a geldiğinde kaz'ın ayagı hiç'de öyle degil :)

RMAN> show all ;
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default


Öncelikle 4 nolu datafile'ımı backuplıyorum.

RMAN> backup datafile 4;

Starting backup at 16-APR-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=141 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=+DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: starting piece 1 at 16-APR-13
channel ORA_DISK_1: finished piece 1 at 16-APR-13
piece handle=+FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997 tag=TAG20130416T102956 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 16-APR-13

Starting Control File and SPFILE Autobackup at 16-APR-13
piece handle=+FRA/orcl/autobackup/2013_04_16/s_812889011.276.812889015 comment=NONE
Finished Control File and SPFILE Autobackup at 16-APR-13

Tabi bu backup sırasında Controlfile autobackup on olduğu için hem control file hem sp file 'da otomatik olarak backuplanıyor.

Datafile'ımı offline moda çekiyorum.

RMAN> sql 'alter database datafile 4 offline';

sql statement: alter database datafile 4 offline

Şimdi geldik restore yapmaya.

RMAN> restore datafile 4;  komutunu çalıştırdığımda ekrandaki hataları basıyor.


ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open

RMAN> restore datafile 4;

Starting restore at 16-APR-13
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to +DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: reading from backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/16/2013 10:32:38
ORA-19870: error while restoring backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open


Tam olarak istediğimiz noktaya geldik, bu noktada daha önce encrypt ettiğiniz parametreyi bu sefer tam tersi decrypt etmek gerekiyor. Onu da alttaki komutla yapıyorum.

RMAN> set decryption identified by Deneme123;

executing command: SET decryption

RMAN> restore datafile 4;

Starting restore at 16-APR-13
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to +DATA/orcl/datafile/users.263.734893313
channel ORA_DISK_1: reading from backup piece +FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997
channel ORA_DISK_1: piece handle=+FRA/orcl/backupset/2013_04_16/nnndf0_tag20130416t102956_0.275.812888997 tag=TAG20130416T102956
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 16-APR-13

Başarılı biten restore'un ardından yapacak 2 şey kaldı.
1.Recover işlemini yapmak
2. Datafile'ı online moda çekmek.

RMAN> recover datafile 4;

Starting recover at 16-APR-13
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 16-APR-13

RMAN>  sql 'alter database datafile 4 online';

sql statement: alter database datafile 4 online

Sonuç olarak yaptıklarımızı sıralarsak;
1-RMAN> set encryption on identified by Deneme123 only; ile session bazlı encryption aktif hale gelir.
2-RMAN> backup datafile 4;  Datafile backupı alınır.
3-RMAN> sql 'alter database datafile 4 offline'; Datafile offline moda alınır.
4-RMAN> restore datafile 4; diyerek hata aldığı görülür.
5- RMAN> set decryption identified by Deneme123; Decryption işlemi yapılır.
6-RMAN> restore datafile 4; Tekrar restore yapılır, başarılı bittiği görülür.
7-RMAN> recover datafile 4; Recover işlemi yapılır.
8-RMAN>  sql 'alter database datafile 4 online'; Son adımda datafile online moda çekilir.

Önemli bir ipucu: CONFIGURE BACKUP OPTIMIZATION OFF;  off olursa oracle offline ve readonly datafile'ların backupını almaz.

Biraz uzun olduğunun farkındayım.

Umarım faydalı bir makale olmuştur.
Sevgi Saygı
Fahrettin

Thursday 21 February 2013

ORA-01078: failure in processing system parameters


Merhaba,

Bugün karşılaştığım bir hatanın çözümünü paylaşmak istiyorum.

Asm instance'ına bağlandıktan sonra,  startup komutunu verdiğimde,  db mount olamadı.

Çözümü crsctl servisinin start'ından geçiyor.

[oracle@ rom]$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid 
[oracle@ rom]$ export ORACLE_SID=+ASM 
[oracle@ rom]$ sqlplus "/as sysasm" 

SQL*Plus: Release 11.2.0.1.0 Production on TH FEB 21 11:14:29 2013 
Copyright (c) 1982, 2009, Oracle. All rights reserved. 
Connected to an idle instance. 

SQL> startup 
ORA-01078: failure in processing system parameters 
ORA-29701: unable to connect to Cluster Synchronization Service 

Solutions:
[oracle@rom-+ASM bin] ./crsctl start resource ora.cssd
CRS-2672: Attempting to start 'ora.cssd' on 'rom'
CRS-2679: Attempting to clean 'ora.diskmon' on 'rom'
CRS-2681: Clean of 'ora.diskmon' on 'rom' succeeded
CRS-2672: Attempting to start 'ora.diskmon' on 'rom'
CRS-2676: Start of 'ora.diskmon' on 'rom' succeeded
CRS-2676: Start of 'ora.cssd' on 'rom' succeeded


Finish:

SQL> startup
ASM instance started

Total System Global Area  384565544 bytes
Fixed Size                  2336036 bytes
Variable Size             358063644 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted



Wednesday 6 February 2013

Günün İpucu(Oracle): Oracle Backup Sql Sorgusu

Merhaba,

Günün İpucu: Oracle tarafında rman kullanarak, devam eden bir restore'unuz var ise, alttaki sql'i kullanarak restore'un devam edip etmediğini, inmekte olan datafile'ların % kaç'ının tamamlandığını alttaki sql sorgusunu kullanarak görebilirsiniz.


SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" FROM  V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND TOTALWORK != 0   AND SOFAR <> TOTALWORK;

Örnek Backup başlattığınızda:


RMAN> backup incremental level 1 for recover of copy with tag 'app_incr' database;

Starting backup at 2013-04-17:14:08:47
starting full resync of recovery catalog
full resync complete
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=33 device type=DISK
no parent backup or copy of datafile 1 found
no parent backup or copy of datafile 2 found
no parent backup or copy of datafile 5 found
no parent backup or copy of datafile 3 found
no parent backup or copy of datafile 6 found
no parent backup or copy of datafile 8 found
no parent backup or copy of datafile 7 found
no parent backup or copy of datafile 4 found
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=+DATA/orcl/datafile/system.260.734893311



output file name=+FRA/orcl/datafile/system.277.812988549 tag=APP_INCR RECID=6 STAMP=812989209
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:11:06
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=+DATA/orcl/datafile/sysaux.261.734893313



Durumu:

SQL> r
  1* SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" FROM  V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND TOTALWORK != 0   AND SOFAR <> TOTALWORK

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
        33       1245          1      42110      70400      59.82




Teşekkürler
Fahrettin

Tuesday 5 February 2013

Günün İpucu(Oracle): DataGuard Status

Merhaba,

Günün ipucu: Dataguard Statusunu merak ediyorsanız,  alttaki sql ile sorgulayabilirsiniz.


SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE, PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

Teşekkürler
Fahrettin

Monday 4 February 2013

Günün İpucu(Oracle) : Oracle Dataguard Db Zamanı Sorgulama

Merhaba,

Bugün vereceğim ipucu, standby database'inizin, hangi saatte olduğunu gösteriyor,  merak ediyorsanızalttaki sql işinizi görecektir...


select to_char(START_TIME,'dd.mm.yyyy hh24:mi:ss') "Recover baslangic",to_char(item)||' = '||to_char(sofar)||' '||to_char(units)||' '|| to_char(TIMESTAMP,'dd.mm.yyyy hh24:mi') "Degerler" from v$recovery_progress where start_time=(select max(start_time) from v$recovery_progress);

İyi Çalışmalar...