Wednesday, August 27, 2008

Aynı serverda Aynı homeda Bir database'in duplikesinin Yaratılması

Aynı serverda Aynı homeda Bir database'in duplikesinin Yaratılması

1. Source tarafta

Tüm tablespaceler backup moduna alınır.

alter tablespace Tablespace_name begin backup;

2. Source tarafta

Datafile ler yeni yerine kopyalanır

3. Source tarafta Tablespaceler backup modundan çıkarılır.

alter tablespace Tablespace_name end backup;

4. Source tarafta controlfile 'ın kopyası belli bir yere alınır

alter database backup controlfile to '/PATH/controlfilename.ctl'

5. yeni ORACLE_SID belirlenir

export ORACLE_SID = copyDB

6. Source taraftaki initDBNAME.ora dosyası copy database için hazırlanılır.

cp initSourceDB.ora initCopyDB.ora

7. initCopyDB.ora içinde aşağıdaki değişiklikler yapılır.

db_name adı aynı kalır.
*_dump_dest parametreleri için uygun directörüler verilir
control_files='/PATH/controlfilename.ctl' yapılır
lock_name_space='CopyDB' -- Buradaki en önemli parametre buna göre aynı home aynı isimde iki ayrı database
-- açılabiliyor. Her nekadar obselete olsada. Database mount olduğunda Oracle
-- lklock_name_space adında bir file oluşturarak bu işi yapıyor.
-- lkCopyDB gibi.
8. ORACLE_SID = copyDB iken

sqlplus "/ as sysdba"
startup mount -- yapılarak initCopyDB.ora okunur ve controlfile yeni yerinden belli olur.

alter database mount -- yapılarak kontrol file okunur ve

-- Bundan sonraki amaç Redolog ve datafilelar yeni yerlerine yönlendirilir.


9. Redolog fileların yeni yerine yönlendirilmesi

SQL> select member from v$logfile;

ile memberlar seçilir ve yeni yerlerine alter edilir.

alter database rename file 'member_path' to 'new_member_path';

10. Datafileların yeni yerlerine yönlendirilmesi

select name from v$datafile ;

ile datafiler seçilir ve

alter database rename file 'datafile_path' to 'new_datafile_path' ;


11. Temp file'ın drop edilmesi

select name from v$tempfile; ile seçilir

alter database tempfile 'temp_file_path' drop;

12. Database'in recover edilip açılması

recover database using backup controlfile until cancel;

-- burada bir archive log isterse orginal database'in alter database switch logfile yapılıp yönlendirilir.

alter database open resetlogs;

13. Yeni database 'e temp file eklenir

alter tablespace temp add tempfile 'new_temp_file_path' size xxxxM;


Böylece Aynı serverda Aynı homeda Bir database'in duplikesinin yaratılmış olur.
Bundan sonra istenirse database adı değiştirilebilir nid programı ile

No comments: