Production database in bir klonunu oluşturmak çoğu zaman test ve development işlemleri açısından işe yarayıcı olabilir.

Bu işlemler adım adım şu şekilde yapılır:

1.ADIM:
Production database e sqlplus üzerinden sysdba yetkisi olan bir kullanıcı ile bağlanıp şu komutu çalıştırıyoruz.
[cc lang=”oracle11″]alter database backup controlfile to trace[/cc] bu komut içinde database create syntaxini içeren bir dosya oluşturulur. Dosyanın oluşturulacağı yer trace file directory sidir. Bu directory i öğrenmek için user_dump_dest parametresine bakılmalıdır.
[cc lang=”oracle11″]show parameter user_dump_dest[/cc]


Trace dosyasının içinde şu kısım bizim için önemli:
[cc lang=”oracle11″]

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE “PROD” NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 1168
LOGFILE
GROUP 1 ‘E:\PRODDB\REDO011.LOG’ SIZE 50M,
GROUP 2 ‘E:\PRODDB\REDO012.LOG’ SIZE 50M,
GROUP 3 ‘E:\PRODDB\REDO013.LOG’ SIZE 50M,
GROUP 4 ‘E:\PRODDB\REDO021.LOG’ SIZE 50M,
GROUP 5 ‘E:\PRODDB\REDO022.LOG’ SIZE 50M,
GROUP 6 ‘E:\PRODDB\REDO023.LOG’ SIZE 50M,
GROUP 7 ‘E:\PRODDB\REDO031.LOG’ SIZE 50M,
GROUP 8 ‘E:\PRODDB\REDO032.LOG’ SIZE 50M,
GROUP 9 ‘E:\PRODDB\REDO033.LOG’ SIZE 50M
— STANDBY LOGFILE
DATAFILE
‘E:\PRODDB\SYSTEM01.DBF’,
‘E:\PRODDB\UNDOTBS01.DBF’,
‘E:\PRODDB\SYSAUX01.DBF’,
‘E:\PRODDB\USERS01.DBF’,
‘E:\PRODDB\APP01_DATA.DBF’,
‘E:\PRODDB\APP01_INDEX.DBF’,
‘E:\PRODDB\APP01_LOB.DBF’,
‘E:\PRODDB\APP01_REPORT_DATA.DBF’,
‘E:\PRODDB\APP01_REPORT_INDEX.DBF’,
‘E:\PRODDB\APP01_ARCHIVE_DATA.DBF’,
‘E:\PRODDB\APP01_ARCHIVE_INDEX.DBF’,
‘E:\PRODDB\APP01_DATA2.DBF’,
‘E:\PRODDB\APP01_INDEX2.DBF’
CHARACTER SET WE8ISO8859P9
;
# Recovery is required if any of the datafiles are restored
# backups, or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;
[/cc]
2.ADIM

Production database i kapatıyoruz.

3.ADIM

Tüm datafile ları TEST veritabanının bulunduğu yere kopyalıyoruz.Eğer datafile ların adını değiştirmek istersek control file da ilgili yerlerde bu değişikleri yapmak zorundayız.

4.ADIM
Kritik bir adım: 1. adımda oluşturduğumuz create database scriptinin içindeki control file ın oluşturulduğu kısımda TEST database imize göre aşağıdaki değişikliği yapmak zorundayız.
[cc lang=”oracle11″]CREATE CONTROLFILE REUSE DATABASE “PROD” NORESETLOGS [/cc]
Şöyle değiştiriyoruz:
[cc lang=”oracle11″]CREATE CONTROLFILE SET DATABASE “TEST” RESETLOGS ARCHIVELOG[/cc]

5.ADIM:
Scriptten aşağıdaki satırları kaldıralım
[cc lang=”oracle11″]# Recovery is required if any of the datafiles are restored
# backups, or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;[/cc]
6.ADIM
Scripti db_create_controlfile.sql
olarak kaydedelim, bu arada değişen datafileların yerini değiştirmeyi unutmuyoruz.
Prod :
[[cc lang=”oracle11″]
‘E:\PRODDB\APP01_REPORT_DATA.DBF’,
‘E:\PRODDB\APP01_REPORT_INDEX.DBF’,
[/cc]
Test :
[cc lang=”oracle11″]
‘E:\TESTDB\APP01_REPORT_DATA.DBF’,
‘E:\TESTDB\APP01_REPORT_INDEX.DBF’,
[/cc]
8.ADIM
bdump, udump, cdump directory lerini oluşturuyoruz.
9. ADIM
init.orayı test veritabanı dizinine kopyalıyoruz.
Copy E:\production_veritabanı\*.ora E:\test_veritabanı\
10. ADIM
Test veritabanını başlatıyoruz.
[cc lang=”oracle11″]
@ db_create_controlfile.sql
[/cc]

print

Share