MongoDB Default Portu-27017 Değiştirmek

MongoDB Default Portu-27017 Değiştirmek

Mongodb kurulumla birlikte default olarak 27017 portundan çalışır, eğer bunu çeşitli sebeplerden dolayı değiştirmemiz gerekiyorsa; aşağıdaki adımlarla mongodb’nin portunu değiştirebiliriz. Yapacağımız örnekte mongo db portunu 27017 den 64446 ye değiştirelim..

Kullandığım Ortam Bilgileri :
Os : Win 8
Db: Mongo 3.2.9 vers.

1-) Önce servislerden MongoDB servisini stop ediyoruz.

C:\Users\omer> Net stop MongoDB

2- MongoDB konfigürasyon dosyasını(mongod.cfg) editleyelim.

MongoDb’nin kurulu olduğu dizine gidelim, benim kurulumuma göre aşağıdaki dizinde.
C:\Program Files\MongoDB\Server\3.2\mongod.cfg
mongod.cfg dosyasını açtığınızda aşağıdaki satırlar gibi görünüyor olmalı.
Net: ve devamı yoksa manuel ekleyelim ve kaydedip çıkalım.

systemLog:
destination: file
path: c:\MongoData\log\mongod.log
storage:
dbPath: c:\MongoData\db
net:
bindIp: 127.0.0.1
port: 64446

3-Portu konfigürasyon dosyasından değiştirdik, şimdi MongoDB servisini start edelim.

C:\Users\omer> Net start MongoDB

Command prompt’da netstat –a yazarak açık portları görebiliriz.

C:\Users\omer> netstat –a
TCP 127.0.0.1:64446 omerpc:0 LISTENING
TCP 127.0.0.1:64446 genuine:50001 ESTABLISHED
TCP 127.0.0.1:64446 genuine:50002 ESTABLISHED

Bu değişim sonrası robomongo, mongochef gibi toollarınızın bağlantı ayarlarını 64446 portuna göre yeniden set etmeyi unutmayın.

Umarım faydalı olur..

Oracle Session Kill Etmek

Bu yazımızda oracle sessionu nasıl tespit edilir ve nasıl kill edilir inceleyelim, Oracle’da sessin kill etmek için iki bilgiye ihtiyacımız var, bunlar; SID ve SERIAL#. Bunları gv$session viewinden aşağıdaki gibi yakalayabiliriz.

ALTER SYSTEM KILL SESSION

Genel syntax:

ALTER SYSTEM KILL SESSION 'sid,serial#';

Sessionları belirlemek için SQL sorgusu.

 
SELECT s.inst_id,
s.sid,
s.serial#,
p.spid,
s.username,
s.program,
s.terminal,
s.logon_time,
s.module,
'Alter System Kill Session '||''''||s.sid||','||s.serial#||''''||';' kill_sql
FROM gv$session s
JOIN gv$process p ON p.addr = s.paddr
AND p.inst_id = s.inst_id
WHERE s.type != 'BACKGROUND';
 
SQL> Alter system kill session '23,45164';

ALTER SYSTEM KILL SESSION IMMEDIATE

Alter system kill session dediğimizde oracle kill edilecek sessionu işaretler ve transactionun sonlanmasını bekler.Eğer işlemlerin bitmesini beklemek istemiyorsak IMMEDIATE vererek kill edebiliriz, IMMEDIATE ile sessionun transactionları rollback edilir ve session sonlandırılır.

 
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
 
SQL> ALTER SYSTEM KILL SESSION '24,56898' IMMEDIATE;

Oracle sessionları sqlplus’tan komutlarla, toad, plsql developer,sqldeveloper gibi toollardan arayüz ile
kolayca kill edilebilir, peki operating system tarafında nasıl kill edebiliriz ona da bakalım.

Windows sistemlerde oracle session kill etmek

C:\> orakill ORACLE_SID spid

C:\> orakill TESTDB 324

Unix-Linux sistemlerde oracle session kill etmek

% kill -9 spid
ps -ef | grep ora
Komutu ile unixte çalışan processlere bakabiliriz..

*Komutları çalıştırmadan önce doğru sesionu kill etiğinizden emin olun.
*Yanlış sessionu kill etmeniz oracle’ı ya da işlemtim sisteminin yığılmasına neden olabilir.

Oracle 12C Online Datafile Taşımak

Oracle 12C Online Datafile Taşımak

Bu makalede oracle 12C üzerinde online olarak(kesintisiz) datafile taşıması yapacağız,bu özellik sadece 12C veritabanı ile (gelen) kullanılabilen bir özellik, eski versiyonlarda(11G,10G,9i ..) çalışmayacaktır.Disk yetersizliği, diskin değişmesi, ASm’e migration gibi durumlarda datafileları move etmemiz gerekebilir.
Eski versiyonlarda nasıl taşınır bu konuya yazının sonunda kısaca değineceğim ama bunun için detaylı olarak makale yazmayı planlıyorum. Şimdi asıl konumuza dönelim, 12C’de online olarak datafile nasıl taşınır bakalım.

Kullanım amaçları;
– Datafile Rename
– ASM’den ASM’e taşıma
– ASM’den diske taşıma
– Diskten ASM’e taşıma

1. Diskten Diske Datafile Taşımak

Önce Datafilelarımızın lokasyonlarına bakalım.

 
SQL>Select name, STATUS  from v$datafile;
 
NAME                                                         STATUS
------------------------------------------------------------ ----------
/u01/12CDB/oradata/omertest/system01.dbf                    SYSTEM
/u01/12CDB/oradata/omertest/example01.dbf                   ONLINE
/u01/12CDB/oradata/omertest/sysaux01.dbf                    ONLINE
/u01/12CDB/oradata/omertest/undotbs01.dbf                   ONLINE
/u01/12CDB/oradata/omertest/test1.dbf                       ONLINE
/u01/12CDB/oradata/omertest/test2.dbf                       ONLINE
/u01/12CDB/oradata/omertest/users01.dbf                     ONLINE
 
7 rows selected.

Test1.dbf adlı datafile’ımızı aynı lokasyonda Rename edelim.(taşıyalım)

 
SQL> alter database move datafile
  2  '/u01/12CDB/oradata/omertest/test1.dbf '    
  3  to 
  4  '/u01/12CDB/oradata/omertest/omertest1.dbf ';
 
Database altered.

Datafileları tekrar kontrol edelim..

 
SQL>Select name, STATUS  from v$datafile;
 
NAME                                                         STATUS
------------------------------------------------------------ ----------
/u01/12CDB/oradata/omertest/system01.dbf                    SYSTEM
/u01/12CDB/oradata/omertest/example01.dbf                   ONLINE
/u01/12CDB/oradata/omertest/sysaux01.dbf                    ONLINE
/u01/12CDB/oradata/omertest/undotbs01.dbf                   ONLINE
/u01/12CDB/oradata/omertest/omertest1.dbf                   ONLINE
/u01/12CDB/oradata/omertest/test2.dbf                       ONLINE
/u01/12CDB/oradata/omertest/users01.dbf                     ONLINE
 
7 rows selected.

Ve işlem tamamdır, kesinti olmadan online olarak datafile’ı rename ve move edebildik.
Şimdi de ASM ve disk üzerindeki taşımalar için örnekler yapalım..

2. Diskten ASM’e Datafile Taşımak

Test için oluşturduğum iki datafile’ı local diskten +DATA üzerine taşıyalım..

 
SQL> alter database move datafile
  2  '/u01/12CDB/oradata/omertest/omertest1.dbf'
  3  to
  4  '+DATA/omertest/omertest1.dbf';
 
Database altered.
 
SQL> alter database move datafile
  2  '/u01/12CDB/oradata/omertest/test2.dbf'
  3  to 
  4  '+DATA/omertest/omertest2.dbf';
 
Database altered.
 
SQL> select name, STATUS  from v$datafile;
 
NAME                                                         STATUS
------------------------------------------------------------ ----------
/u01/12CDB/oradata/prod/system01.dbf                    SYSTEM
/u01/12CDB/oradata/prod/example01.dbf                   ONLINE
/u01/12CDB/oradata/prod/sysaux01.dbf                    ONLINE
/u01/12CDB/oradata/prod/undotbs01.dbf                   ONLINE
+DATA/omertest/omertest1.dbf                                 ONLINE
+DATA/omertest/omertest2.dbf                                 ONLINE
/u01/12CDB/oradata/omertest/users01.dbf                 ONLINE
 
7 rows selected.

3. ASM’den ASM’e Datafile Taşımak

Şimdi de test için oluşturduğum iki datafile’ı +RECO diskine taşıyalım..

 
SQL> alter database move datafile
  2  '+DATA/omertest/omertest1.dbf'
  3  to
  4  '+RECO/omertest/omertest1.dbf';
 
Database altered.
 
SQL> alter database move datafile
  2  '+DATA/omertest/omertest2.dbf'
  3  to 
  4  '+RECO/omertest/omertest2.dbf';
 
Database altered.
 
SQL> select name, STATUS  from v$datafile;
 
NAME                                                         STATUS
------------------------------------------------------------ ----------
/u01/12CDB/oradata/prod/system01.dbf                    SYSTEM
/u01/12CDB/oradata/prod/example01.dbf                   ONLINE
/u01/12CDB/oradata/prod/sysaux01.dbf                    ONLINE
/u01/12CDB/oradata/prod/undotbs01.dbf                   ONLINE
+RECO/omertest/omertest1.dbf                            ONLINE
+RECO/omertest/omertest2.dbf                            ONLINE
/u01/12CDB/oradata/omertest/users01.dbf                 ONLINE
 
7 rows selected.

4. ASM’den Diske Datafile Taşımak

ASM de bulunan test1 datafile’ı disk üzerine taşıyalım.

 
SQL> alter database move datafile
  2  '+DATA/omertest/omertest1.dbf'
  3  to
  4  '/u01/12CDB/oradata/omertestdata/omertest1.dbf';
 
Database altered.
 
 
SQL> select name, STATUS  from v$datafile;
 
NAME                                                         STATUS
------------------------------------------------------------ ----------
/u01/12CDB/oradata/prod/system01.dbf                    SYSTEM
/u01/12CDB/oradata/prod/example01.dbf                   ONLINE
/u01/12CDB/oradata/prod/sysaux01.dbf                    ONLINE
/u01/12CDB/oradata/prod/undotbs01.dbf                   ONLINE
/u01/12CDB/oradata/omertestdata/omertest1.dbf           ONLINE
+RECO/omertest/omertest2.dbf                            ONLINE
/u01/12CDB/oradata/omertest/users01.dbf                 ONLINE
 
7 rows selected.

Notlar:
*Online datafile taşıma oracle 12C ile gelen bir özelliktir, eski versiyonlarda bu özelliği kullanamayız.
*User datafilelartı taşıdığımız gibi system datafile’larını da taşıyabiliriz.
*Bu işlem yoğun kaynak kullanımı yapacağından günün sakin saatlerinde çalıştırmanız önerilir.
*Bu özellik için oracle’a çok teşekkürler 🙂

Oracle 12C öncesi datafile taşımak

12C öncesi datafile’ı kesintisiz taşımak mümkün değil minimum kesintiyle taşınabilir, bu durumda yapılması gereken işlemler kabaca aşağıdaki gibidir. Bu konuyu ayrıca bir makale olarak yazacağım, çünkü; system datafile’ları taşımak biraz daha farklı işlemler gerektiriyor ve instance’ı kapatıp açmanız gerekiyor..

Ama user datafile’lar 11G ve öncesi için aşağıdaki yöntemlerle taşınabilir..

– Seçenek 1
1.Tablespace’i offline yap.(alter tablespace x online)
2.Datafile’ı fiziksel olarak taşı ya da rename et(mv test1.dbf)
3.Controlfile’a datafile’ın yeni yerini bildir.(alter database rename file)
4.Tablespace’i online yap.(alter tablespace online)

-Seçenek 2
RMAN ile datafile’ın yeni kopyasına switch etmek.

IFS-ERP Lokasyonlar Arası Taşıma Yapmak

IFS-ERP Lokasyonlar Arası Taşıma Yapmak

Bir ziyaretçimiz IFS ERP’de lokasyonlar arası taşıma ile ilgili işimizi kolaylaştıracak pratik bir çözüm var mı
diye sordu, beraber lokasyonlar arası taşıma işlemini yapalım. Bir lokasyonda olan tüm ürünleri başka bir lokasyona plsql script ile aktaracağız.

rec_ içindeki selecti kendi sisteminize göre düzenlemelisiniz!
Çalıştırmadan önce test ortamında test etmeniz faydanıza olacaktır..

BEGIN
   FOR rec_ IN ( SELECT * FROM inventory_part_in_stock_tab t
	               WHERE contract = 'SITE_KODU' 
                         AND part_no LIKE 'ÜRÜN_KODU%'
		         AND t.availability_control_id IS NULL 
                         AND location_no='SOURCE_LOKASYON_KODU')
 
            Inventory_Part_In_Stock_API.Move_Part(dummy_,
                                                  rec_.contract,
                                                  rec_.part_no,
                                                  rec_.configuration_id,
                                                  rec_.location_no,
                                                  rec_.lot_batch_no,
                                                  rec_.serial_no,
                                                  rec_.eng_chg_level,
                                                  rec_.waiv_dev_rej_no,
                                                  to_date(NULL),
                                                  rec_.contract,
                                                  'HEDEF_LOKASYON_KODU',
                                                  Inventory_Part_Destination_API.get_client_value(1),
                                                  rec_.qty_onhand,
                                                  0,
                                                  'TOPLU TASIMA-Açıklama',
                                                  '',
                                                  '',
                                                  '',
                                                  '',
                                                  '',
                                                  'N'); 
   END LOOP;
END;

Faydalı olması dileğiyle..

IFS ERP Satış Siparişine Rezervasyon Koymak

IFS ERP Satış Siparişine Rezervasyon Koymak

Aşağıdaki plsql script ile bir siparişin istediğiniz satırlarına ya da hepsine belirlediğiniz lokasyondan otomatik olarak rezervasyon yaptırabilirsiniz, değişkenlerin tanımlandığı(order_no,location_no vb) satırlara commentler ekledim, kendi IFS tanımlarınıza göre düzenleyebilirsiniz.

Tabi bu işlemi satış siparişleri listesinde satırlara sağ tıklayıp rezervasyon diyerek yapabilirsiniz, ama yüklü bir sipariş varsa ve bir an önce halletmeniz isteniyorsa işinize çok yarayacağını düşünüyorum 🙂

Bu aralar IFS erp ile ilgili çok soru alıyorum, elimden geldiğince bir şeyler paylaşacağım..

DECLARE 
   info_            VARCHAR2(2000);
   objid_           VARCHAR2(2000);
   objversion_      VARCHAR2(2000);
   attr_            VARCHAR2(2000);
   attr2_           VARCHAR2(2000);
   co_line_no_      VARCHAR2(20);
   co_rel_no_       VARCHAR2(20);
   co_line_item_no_ NUMBER;
   state_           VARCHAR2(100);
   qty_             NUMBER;
   rez_miktar_      NUMBER;
   co_no_           VARCHAR2(20):='R10055'; --Sipariş Numarası 
 
BEGIN   
 
FOR C2 IN ( 
           SELECT * FROM customer_order_line cl
            WHERE cl.order_no=co_no_
              AND cl.objstate!='Reserved'
              ORDER BY to_number(cl.line_no)
 
          ) LOOP
 
    rez_miktar_ := c2.buy_qty_due;
 
    FOR C3 IN (SELECT z.*,z.qty_onhand-z.qty_reserved serbest_miktar 
                 FROM INVENTORY_PART_IN_STOCK Z 
                WHERE Z.CONTRACT=C2.CONTRACT 
                  AND Z.PART_NO=C2.PART_NO 
                  AND Z.QTY_ONHAND-Z.QTY_RESERVED>0
                  AND INVENTORY_LOCATION_API.Get_Warehouse(Z.CONTRACT,Z.LOCATION_NO)='SEVK'
                  AND Z.LOCATION_NO NOT IN ('DEPO') --Hangi depo ya da depolardan rezervasyon koymak isterseniz..
              ) LOOP
 
      IF  rez_miktar_   > c3.serbest_miktar THEN 
          qty_         := c3.serbest_miktar;
          rez_miktar_  := rez_miktar_-qty_;
      ELSE 
          qty_         := rez_miktar_;
          rez_miktar_  := 0;      
      END  IF ;
 
 
      dbms_output.put_line('rez_miktar_'|| rez_miktar_);
      dbms_output.put_line('qty_'|| qty_);
 
      IF  qty_ > 0 THEN       
                  Reserve_Customer_Order_API.Reserve_Manually__( info_, 
                                                                 state_, 
                                                                 c2.order_no,
                                                                 c2.line_no,
                                                                 c2.rel_no,
                                                                 c2.line_item_no,
                                                                 C3.contract, 
                                                                 C3.part_no,
                                                                 C3.location_no,
                                                                 C3.lot_batch_no,
                                                                 '*',
                                                                 '1', 
                                                                 C3.waiv_dev_rej_no,
                                                                 NULL,
                                                                 qty_);
 
       END  IF;
    END LOOP;
END LOOP;
END;

Umarım faydalı olur.

ORA-16006: audit_trail destination incompatible

ORA-16006: audit_trail destination incompatible with database open mode

Bu hatayı databasei read only modda açmak istediğimizde alırız,audit logları açık ve dbye yazılıyorsa hem read-only olup hem db’ye yazamayacağından uyumsuzluk hatası verir.Bu durumda ya auditi kapatacağız(audit_trail=none) ya da auditi OS üzerinde tutacağız. (audit_trail=OS)

SQL> startup mount
ORACLE instance started.
Database mounted.
 
SQL> alter database open read only
  2  /
alter database open read only
*
ERROR at line 1:
ORA-16006: audit_trail destination incompatible with database open mode

Şimdi audit durumunu kontrol edelim ve değiştirelim..

SQL> show parameter audit_trail;
audit_trail                   string           DB
 
SQL> alter system set audit_trail=none scope=spfile;
System altered.
 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
 
SQL> startup mount;
ORACLE instance started.
Database mounted.
 
SQL> alter database open read only;
Database altered.

Ve işlem tamamdır,databaseimiz read-only olarak açıldı..

Dbms_Output Paketi Ve Ekrana Deger Bastırma

Dbms_Output Paketi Ve Ekrana Deger Bastırma

Dbms_output paketi oracleda ekrana değer bastırmaya yarar ve değişkenlerin değerlerini görmemizi sağlar.Bu paketin source’u {ORACLE_HOME}/rdbms/admin/dbmsotpt.sql dizininde bulunuyor. sqlplus, toad, plsql developer gibi toollarda bu paketi kullanabiliriz.Toad ve plsql developer üzerinde zaten bulunuyor ve bir checkbox yardımıyla aktif ve pasif edilebiliyor ama sqlplusda maalesef açmak, kapamak,
buffer size vermek için komutlar yazmamız gerekli.

– DBMS_OUTPUT enable etmek.
SET SERVEROUTPUT ON;
ya da
exec dbms_output.enable;

– DBMS_OUTPUT disable etmek.
SET SERVEROUTPUT OFF;
ya da
exec dbms_output.disable;

– Buffer size set etmek (1-1.000.000 arası)
exec dbms_output.enable(1000000);

– Yeni satır açmak, boş bir satır bırakır.
dbms_output.new_line();

– dbms_output ile ekrana değer bastırmak
dbms_output.put_line();

DBMS_OUTPUT Paketi kullanımı ile ilgili örnekler:

1- Sistem tarihini dbms_output.put_line ile ekrana bastıralım.

SQL> BEGIN
2 dbms_output.put_line(to_char(SYSDATE,'DD-MM-YYYY HH24:MI:SS'));
3 END;
4 /
27-11-2015 15:46:57
 
PL/SQL procedure successfully completed.

2- Kullanıcı tablo sayısını dbms_output.put_line ile ekrana bastıralım.

SQL> set serveroutput on;
SQL> BEGIN
2 FOR REC_ IN (SELECT K.OWNER, COUNT(1) SAY
3 FROM ALL_TABLES K
4 GROUP BY K.OWNER
5 ORDER BY 1) LOOP
6 DBMS_OUTPUT.PUT_LINE(REC_.OWNER || ' in tablo sayisi = ' || REC_.SAY);
7 END LOOP;
8 END;
9 /
 
APEX_030200 in tablo sayisi = 360
APPQOSSYS in tablo sayisi = 4
CTXSYS in tablo sayisi = 50
DBSNMP in tablo sayisi = 25
EXFSYS in tablo sayisi = 47
MDSYS in tablo sayisi = 129
OLAPSYS in tablo sayisi = 126
ORDDATA in tablo sayisi = 73
ORDSYS in tablo sayisi = 5
OUTLN in tablo sayisi = 3
SYS in tablo sayisi = 1013
SYSMAN in tablo sayisi = 728
SYSTEM in tablo sayisi = 169
 
PL/SQL procedure successfully completed.

3-) Döngü değerini dbms_output.put_line ile ekrana bastıralım.

SQL> set serveroutput on;
SQL> declare
1 dummy number;
2 begin
3 for i in 1..10 loop
4 dbms_output.put_line('i nin degeri='||i);
5 end loop;
6 end;
7 /
 
i nin degeri=1
i nin degeri=2
i nin degeri=3
i nin degeri=4
i nin degeri=5
i nin degeri=6
i nin degeri=7
i nin degeri=8
i nin degeri=9
i nin degeri=10
 
PL/SQL procedure successfully completed.

Umarım faydalı olur..

RAC database backup ve restore işlemleri

RAC database backup ve restore işlemleri

Bu örneğimizde RAC database’de nasıl backup alınır, ihtiyaç halinde nasıl restore yapılır beraber inceleyelim.Backup almak single instance ortamlarla aynı ama restore yaparken ufak bir trick var.Database’i cluster moddan çıkarıp restore bittikten sonra tekrar cluster moda almak gerekiyor.(alter system set cluster_database=false) Bu örneğimizde SYSTEM datafile’ını silip database’i backupdan restore edeceğiz.

Ortamlar:
Solaris 10,
Grid 11.2.0.4
Database 11.2.0.4

Adım adım beraber yapalım..

Spfile backup alalım..

RMAN> BACKUP SPFILE FORMAT '/orabackup/rman/ractst/spfile_%d_%T_%I_%u.bkp';
 
Starting backup at 01-OCT-15
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 01-OCT-15
channel ORA_DISK_1: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/spfile_RACTST_20151001_482324484_06qikjbu.bkp tag=TAG20151001T155958 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 01-OCT-15

Controlfile backup alalım..

RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/orabackup/rman/ractst/controlfile_%d_%T_%u.bkp';
 
Starting backup at 01-OCT-15
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 01-OCT-15
channel ORA_DISK_1: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/controlfile_RACTST_20151001_07qikjcb.bkp tag=TAG20151001T160011 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 01-OCT-15

Sıkıştırılmış full database backup alalım..

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/orabackup/rman/ractst/datafiles_%d_%T_%u.bkp';
 
Starting backup at 01-OCT-15
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/ractst/datafile/tbs_dm.273.873560789
input datafile file number=00004 name=+DATA/ractst/datafile/users.259.873558059
channel ORA_DISK_1: starting piece 1 at 01-OCT-15
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/ractst/datafile/tbs_dm.272.873561081
channel ORA_DISK_2: starting piece 1 at 01-OCT-15
channel ORA_DISK_3: starting compressed full datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00011 name=+DATA/ractst/datafile/tbs_dm.271.873561315
input datafile file number=00005 name=+DATA/ractst/datafile/undotbs2.264.873558267
channel ORA_DISK_3: starting piece 1 at 01-OCT-15
channel ORA_DISK_4: starting compressed full datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00008 name=+DATA/ractst/datafile/tbs_mx.270.873559789
input datafile file number=00003 name=+DATA/ractst/datafile/undotbs1.258.873558059
channel ORA_DISK_4: starting piece 1 at 01-OCT-15
channel ORA_DISK_5: starting compressed full datafile backup set
channel ORA_DISK_5: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/ractst/datafile/tbs_mlc.269.873559675
input datafile file number=00001 name=+DATA/ractst/datafile/system.256.873558057
channel ORA_DISK_5: starting piece 1 at 01-OCT-15
channel ORA_DISK_6: starting compressed full datafile backup set
channel ORA_DISK_6: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/ractst/datafile/ts_audit.268.873559181
input datafile file number=00002 name=+DATA/ractst/datafile/sysaux.257.873558057
channel ORA_DISK_6: starting piece 1 at 01-OCT-15
channel ORA_DISK_7: starting compressed full datafile backup set
channel ORA_DISK_7: specifying datafile(s) in backup set
channel ORA_DISK_8: starting compressed full datafile backup set
channel ORA_DISK_8: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_8: starting piece 1 at 01-OCT-15
channel ORA_DISK_8: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0fqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_8: backup set complete, elapsed time: 00:00:02
including current control file in backup set
channel ORA_DISK_7: starting piece 1 at 01-OCT-15
channel ORA_DISK_7: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0eqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_7: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_6: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0dqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_6: backup set complete, elapsed time: 00:00:37
channel ORA_DISK_5: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0cqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_5: backup set complete, elapsed time: 00:02:27
channel ORA_DISK_4: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0bqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:04:47
channel ORA_DISK_1: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_08qikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:10:41
channel ORA_DISK_3: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0aqikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:10:41
channel ORA_DISK_2: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_09qikjcp.bkp tag=TAG20151001T160024 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:10:51
Finished backup at 01-OCT-15

Daha önce backup alınmamış Archivelogları backuplayalım..

RMAN> BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL NOT BACKED UP 1 TIMES FORMAT '/orabackup/rman/ractst/archivelogs_%d_%T_%u.bkp';
 
Starting backup at 01-OCT-15
current log archived
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=2 sequence=333 RECID=952 STAMP=891959773
input archived log thread=1 sequence=621 RECID=955 STAMP=891959778
channel ORA_DISK_1: starting piece 1 at 01-OCT-15
channel ORA_DISK_2: starting compressed archived log backup set
channel ORA_DISK_2: specifying archived log(s) in backup set
input archived log thread=2 sequence=334 RECID=953 STAMP=891959775
input archived log thread=2 sequence=335 RECID=954 STAMP=891959775
channel ORA_DISK_2: starting piece 1 at 01-OCT-15
channel ORA_DISK_3: starting compressed archived log backup set
channel ORA_DISK_3: specifying archived log(s) in backup set
input archived log thread=1 sequence=622 RECID=956 STAMP=891961462
channel ORA_DISK_3: starting piece 1 at 01-OCT-15
channel ORA_DISK_4: starting compressed archived log backup set
channel ORA_DISK_4: specifying archived log(s) in backup set
input archived log thread=2 sequence=336 RECID=958 STAMP=891964042
input archived log thread=1 sequence=623 RECID=957 STAMP=891964040
channel ORA_DISK_4: starting piece 1 at 01-OCT-15
channel ORA_DISK_5: starting compressed archived log backup set
channel ORA_DISK_5: specifying archived log(s) in backup set
input archived log thread=1 sequence=624 RECID=960 STAMP=891966763
input archived log thread=2 sequence=337 RECID=959 STAMP=891966762
channel ORA_DISK_5: starting piece 1 at 01-OCT-15
channel ORA_DISK_1: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/archivelogs_RACTST_20151001_0gqikl9b.bkp tag=TAG20151001T163243 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/archivelogs_RACTST_20151001_0hqikl9b.bkp tag=TAG20151001T163243 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_5: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/archivelogs_RACTST_20151001_0kqikl9c.bkp tag=TAG20151001T163243 comment=NONE
channel ORA_DISK_5: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_3: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/archivelogs_RACTST_20151001_0iqikl9b.bkp tag=TAG20151001T163243 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_4: finished piece 1 at 01-OCT-15
piece handle=/orabackup/rman/ractst/archivelogs_RACTST_20151001_0jqikl9c.bkp tag=TAG20151001T163243 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:00:07
Finished backup at 01-OCT-15

Eksik backup var mı kontrol edelim.

RMAN> report need backup;
 
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of files with less than 1 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------

Databaseleri kapatalım..

-bash-3.2$ srvctl stop database -d ractst
-bash-3.2$ srvctl status database -d ractst
Instance ractst1 is not running on node svtstrac01
Instance ractst2 is not running on node svtstrac02
-bash-3.2$

Asm üzerinden SYSTEM Datafileını silelim.

-bash-3.2$ORACLE_HOME=/oragrid/app/product/11.2.0.4/grid
-bash-3.2$ORACLE_SID=+ASM1
-bash-3.2$PATH=$ORACLE_HOME/bin:$PATH
-bash-3.2$export ORACLE_HOME ORACLE_SID PATH ORACLE_UNQNAME
 
ASMCMD> cd +DATA/RACTST/DATAFILE
ASMCMD> ls
SYSTEM.256.873558057
SYSAUX.257.873558057
TBS_DM.271.873561315
TBS_DM.272.873561081
TBS_DM.273.873560789
TBS_MLC.269.873559675
TBS_MX.270.873559789
TS_AUDIT.268.873559181
UNDOTBS1.258.873558059
UNDOTBS2.264.873558267
USERS.259.873558059
 
ASMCMD> rm SYSTEM.256.873558057
ASMCMD> ls
SYSAUX.257.873558057
TBS_DM.271.873561315
TBS_DM.272.873561081
TBS_DM.273.873560789
TBS_MLC.269.873559675
TBS_MX.270.873559789
TS_AUDIT.268.873559181
UNDOTBS1.258.873558059
UNDOTBS2.264.873558267
USERS.259.873558059

SYSTEM datafile’ı sildik,databaseleri start edelim.Ve hatayı görelim..

-bash-3.2$ srvctl start database -d ractst
PRCR-1079 : Failed to start resource ora.ractst.db
CRS-5017: The resource action "ora.ractst.db start" encountered the following error:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '+DATA/ractst/datafile/system.256.873558057'
 
CRS-2674: Start of 'ora.ractst.db' on 'svtstrac01' failed
CRS-2632: There are no more servers to try to place resource 'ora.ractst.db' on that would satisfy its placement policy
CRS-5017: The resource action "ora.ractst.db start" encountered the following error:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '+DATA/ractst/datafile/system.256.873558057'

Görüldüğü gibi SYSTEM datafile’ına erişemedi, ve instancelar startup olmadı..
İnstancelardan birine bağlanıp mount modda açalım ve cluster_database=false yapalım..

-bash-3.2$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 1 17:11:37 2015
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area 1.0689E+10 bytes
Fixed Size                  2233536 bytes
Variable Size            5905582912 bytes
Database Buffers         4764729344 bytes
Redo Buffers               16928768 bytes
Database mounted.
 
SQL> alter system set cluster_database=false scope=spfile sid='*';
 
System altered.
 
SQL> shutdown immediate;
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shut down.

Parametreyi false yaptıktan sonra RMAN üzerinden mount edelim ve restore başlatalım..

-bash-3.2$ rman target /
 
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Oct 1 17:13:42 2015
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database (not started)
 
RMAN> startup mount;
 
Oracle instance started
database mounted
 
Total System Global Area   10689474560 bytes
 
Fixed Size                     2233536 bytes
Variable Size               5905582912 bytes
Database Buffers            4764729344 bytes
Redo Buffers                  16928768 bytes

RMAN ile database restore başlatalım..

RMAN> restore database;
 
Starting restore at 01-OCT-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=355 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=125 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=246 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=363 device type=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: SID=9 device type=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: SID=126 device type=DISK
allocated channel: ORA_DISK_7
channel ORA_DISK_7: SID=247 device type=DISK
allocated channel: ORA_DISK_8
channel ORA_DISK_8: SID=364 device type=DISK
 
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 00002 to +DATA/ractst/datafile/sysaux.257.873558057
channel ORA_DISK_1: restoring datafile 00006 to +DATA/ractst/datafile/ts_audit.268.873559181
channel ORA_DISK_1: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_0dqikjcp.bkp
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00001 to +DATA/ractst/datafile/system.256.873558057
channel ORA_DISK_2: restoring datafile 00007 to +DATA/ractst/datafile/tbs_mlc.269.873559675
channel ORA_DISK_2: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_0cqikjcp.bkp
channel ORA_DISK_3: starting datafile backup set restore
channel ORA_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_DISK_3: restoring datafile 00003 to +DATA/ractst/datafile/undotbs1.258.873558059
channel ORA_DISK_3: restoring datafile 00008 to +DATA/ractst/datafile/tbs_mx.270.873559789
channel ORA_DISK_3: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_0bqikjcp.bkp
channel ORA_DISK_4: starting datafile backup set restore
channel ORA_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_DISK_4: restoring datafile 00004 to +DATA/ractst/datafile/users.259.873558059
channel ORA_DISK_4: restoring datafile 00009 to +DATA/ractst/datafile/tbs_dm.273.873560789
channel ORA_DISK_4: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_08qikjcp.bkp
channel ORA_DISK_5: starting datafile backup set restore
channel ORA_DISK_5: specifying datafile(s) to restore from backup set
channel ORA_DISK_5: restoring datafile 00005 to +DATA/ractst/datafile/undotbs2.264.873558267
channel ORA_DISK_5: restoring datafile 00011 to +DATA/ractst/datafile/tbs_dm.271.873561315
channel ORA_DISK_5: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_0aqikjcp.bkp
channel ORA_DISK_6: starting datafile backup set restore
channel ORA_DISK_6: specifying datafile(s) to restore from backup set
channel ORA_DISK_6: restoring datafile 00010 to +DATA/ractst/datafile/tbs_dm.272.873561081
channel ORA_DISK_6: reading from backup piece /orabackup/rman/ractst/datafiles_RACTST_20151001_09qikjcp.bkp
channel ORA_DISK_1: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0dqikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:55
channel ORA_DISK_2: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0cqikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:02:45
channel ORA_DISK_3: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0bqikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_3: restored backup piece 1
channel ORA_DISK_3: restore complete, elapsed time: 00:05:25
channel ORA_DISK_4: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_08qikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_4: restored backup piece 1
channel ORA_DISK_4: restore complete, elapsed time: 00:13:35
channel ORA_DISK_5: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_0aqikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_5: restored backup piece 1
channel ORA_DISK_5: restore complete, elapsed time: 00:13:35
channel ORA_DISK_6: piece handle=/orabackup/rman/ractst/datafiles_RACTST_20151001_09qikjcp.bkp tag=TAG20151001T160024
channel ORA_DISK_6: restored backup piece 1
channel ORA_DISK_6: restore complete, elapsed time: 00:13:45
Finished restore at 01-OCT-15

Restore işlemi bittikten sonra recover diyerek archivelogları da işletelim ve database’i son ana kadar getirelim.

RMAN> recover database;
 
Starting recover at 01-OCT-15
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
 
starting media recovery
media recovery complete, elapsed time: 00:00:02
 
Finished recover at 01-OCT-15

Restore ve recover tamamlandı, şimdi cluster_database=true yapıp instanceları başlatalım..

-bash-3.2$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 1 17:30:58 2015
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
 
SQL> alter system set cluster_database=true scope=spfile sid='*';
 
System altered.
 
SQL> shu immediate;
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shut down.

Şimdi Her iki instanceı da başlatalım..

-bash-3.2$ srvctl start database -d ractst
 
-bash-3.2$ srvctl status database -d ractst
Instance ractst1 is running on node svtstrac01
Instance ractst2 is running on node svtstrac02

İşlem tamamdır. Databaselerimiz ayakta : )

Notlar:
-Restore recover işlemini tek nod üzerinden yaptık,bunun için cluster_database parametresini false yapmamız gerekti.
-Restore sonrasında bu parametreyi true yaparak iki nodu birden ayağa kaldırdık.
-Burdaki senaryoda aslında datafile kayıptı.Restore datafile,recover datafile diyerek yapabilirdik,daha kısa sürerdi, örnek olması açısından yaptım.
-Backup ve restore adımlarında 8 channel görünüyor, rman configrasyonunda 8 parallel verdiğim için 8 channel açtı.

Umarım faydalı olur..

RAC ORA-00245: control file backup operation failed

RAC ORA-00245: control file backup operation failed

RAC ortamlarda controlfile backup alırken aşağıdaki gibi bir hata alırsak ne yapabiliriz bakalım.

Rman loglarına aşağıdaki gibi yansıyacaktır.

RAC 11gR2 ORA-00245: control file backup operation failed
 
RMAN-00571: =========================================================== 
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== 
RMAN-00571: =========================================================== 
RMAN-03009: failure of Control File and SPFILE Autobackup command on 
ORA_DISK_1 channel at 18/10/2015 13:34:07
ORA-00245: control file backup operation failed

Alert loga aşağıdaki gibi bir hata basacaktır.

LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
 
******************************************************************
 
Sun Oct 18 18:00:05 2015
 
Archived Log entry 37833 added for thread 1 sequence 8252 ID 
0xb08b14e7 dest 1:
Sun Oct 18 18:01:50 2015
 
Errors in file /oracle/app/product/diag/rdbms/ractst/ractst1/trace/ractst1_ora_26854.trc:
 
ORA-00245: control file backup failed; target is likely on a local file system
Sun Oct 18 18:10:05 2015
 
Thread 1 advanced to log sequence 8254 (LGWR switch)
 
Current log# 6 seq# 8254 mem# 0: +RECO/ractst/onlinelog/group_6.260.889664983

Şimdi gelelim çözümüne, hata controlfile snapshot backup ının tüm nodların erişebileceği ortak bir alanda tutulmamasından kaynaklanıyor.
Controlfile snapshot’ı nerede tutuluyor bakalım.Bunun için RMAN bağlanıyoruz ve “show all” komutunu çalıştırıyoruz.

-bash-3.2$ rman target /
 
Recovery Manager: Release 11.2.0.4.0 - Production on Mon Oct 19 11:23:10 2015
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: RACTST (DBID=2948358668)
 
RMAN> show all;
 
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name RACTST are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/product/11.2.0.4/db/dbs/snapcf_ractst1.f'; # default

Görüldüğü gibi (son satırda) oracle ın kurulu olduğu dizinde tutuluyor.Tüm nodların erişebileceği ortak bir yer(ASM data dikini) gösterelim.

 
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/RACTST/CONTROLFILE/SNAPCF_RACTST1.f';
 
using target database control file instead of recovery catalog
new RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/RACTST/CONTROLFILE/SNAPCF_RACTST1.f';
new RMAN configuration parameters are successfully stored

*Bu işlemi tek nodda yapmamız yeterlidir.
*Ben ASM DATA diskini kullandım, tüm nodların erişebildiği file system de olabilir..

Umarım faydalı olur..

expdp reuse_dumpfiles parametresi

expdp reuse_dumpfiles parametresi

11G ile gelen bu özellik sayesinde önceden var olan dump dosyasını yenisi ile ezer.expdp komutunda bu parametreye bir değer vermeseniz defaultu N’dir.Eğer export alırken ORA-27038: created file already exist hatası alıyorsanız expdp komutuna reuse_dumpfiles=y parametresini ekleyerek eski dosyayı ezmesini sağlayabilirsiniz.

Bir örnek yapalım.

1-) Önce export alacağımız bir directory oluşturalım ve Scott userına yetki verelim.

SQL> CREATE DIRECTORY EXPORT_DIR AS'/orabackup/export_backup/';
SQL> GRANT READ,WRITE ON DIRECTORY EXPORT_DIR TO SCOTT;
SQL> GRANT EXP_FULL_DATABASE TO SCOTT;

2-) Scott userı ile kendi schemasını export edelim..

-bash-3.2$ expdp scott/tiger@ractst dumpfile=scott.dmp directory=export_dir
 
Export: Release 11.2.0.2.0 - Production on Sat Oct 17 11:02:58 2015
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
 
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/********@ractst dumpfile=scott.dmp directory=export_dir
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported "SCOTT"."DEPT" 5.929 KB 4 rows
. . exported "SCOTT"."EMP" 8.562 KB 14 rows
. . exported "SCOTT"."SALGRADE" 5.859 KB 5 rows
. . exported "SCOTT"."BONUS" 0 KB 0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
/orabackup/export_backup/scott.dmp
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 11:03:42

3-) Scott userı ile kendi schemasını tekrar export etmeye çalışalım.Daha önce dosya var oldugundan ORA-27038: created file already exists hatası almamız gerekiyor.

-bash-3.2$ expdp scott/tiger@ractst dumpfile=scott.dmp directory=export_dir
 
Export: Release 11.2.0.2.0 - Production on Sat Oct 17 11:06:55 2015
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
 
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31641: unable to create dump file "/orabackup/export_backup/scott.dmp"
ORA-27038: created file already exists
Additional information: 1

4-) Şimdi reuse_dumpfiles=y parametresi vererek deneyelim.Eski dump dosyasını yenisi ile ezecektir.

-bash-3.2$ expdp scott/tiger@ractst dumpfile=scott.dmp directory=export_dir reuse_dumpfiles=y
 
Export: Release 11.2.0.2.0 - Production on Sat Oct 17 11:09:26 2015
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
 
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/********@ractst dumpfile=scott.dmp directory=export_dir reuse_dumpfiles=y
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported "SCOTT"."DEPT" 5.929 KB 4 rows
. . exported "SCOTT"."EMP" 8.562 KB 14 rows
. . exported "SCOTT"."SALGRADE" 5.859 KB 5 rows
. . exported "SCOTT"."BONUS" 0 KB 0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
/orabackup/export_backup/scott.dmp
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 11:09:38