Wednesday, August 27, 2008

DataGuard konfigürasyon ile Standby database kurulumu

..

Database Adının değiştirilmesi

Database Adının değiştirilmesi

1. Database kapatılır ve mount modda açılır.
shutdown immediate;
startup mount;


2. export $ORACLE_SID=new_db_name olmalıdır

3. nid target=/ dbname=new_db_name

DBNEWID: Release 10.2.0.4.0 - Production on Wed Aug 13 17:20:55 2008

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

Database name changed to PROVKURS.
Modify parameter file and generate a new password file before restarting.
Database ID for database PROVKURS changed to 3460159672.
All previous backups and archived redo logs for this database are unusable.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

4. initnew_db_name.ora dosyasında

db_name= 'new_db_name' yapılır

tnsnames.ora gerekirse değiştirilir.


5. spfile yaratılıp database open resetlog ile açılır.

sqlplus "/ as sysdba"

create spfile from pfile;

startup mount;

alter database open resetlogs;

startup force;

Yeni Yaratılan Bir Database'in Backup'ının Konfigürasyonu

.

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