DBNEWID'den önce database ismini değiştirmek için database'in kopyasını alıp yeni bir control file yaratılırdı ancak DBID değiştirilemezdi. DBID her database için özel olan bir tanımlayıcıdır. DBNEWID aracıyla bu problem çözülmüştür. Bundan böyle DBID ve DBNAME parametreleri ayrı ayrı ya da birleşik olarak değiştirilebilinir.
DBID ve DBNAME Değiştirmenin Sonuçları
Bir database'in DBID'si değiştirilirse bütün eski backup'lar ve archive log'lar kullanılamaz hale gelir. DBID değiştirildikten sonra database resetlogs ('Alter database open resetlogs') modunda açılmalıdır.Bu şekilde redolog'lar tekrar yaratılır ve sequence numaraları 1'e resetlenir. Sonrasında da hemen veritabanının backup'ı alınmalıdır.
DBNAME'i DBID değiştirmeden farklı bir isme set etmek veritabanını resetlogs ile açmamızı gerektirmez. DB_NAME parametresini spfile veya pfile da(hangisi kullanılıyorsa) değiştirmek gereklidir. Böylece DBNAME parametresi etki eder.
DBNAME ve DBID Nasıl Değiştirilir?
Önce mutlaka full bir backup alınmalıdır. Bu adım zaten bütün büyük veritabanı işlemlerinden önce mutlaka kontrol edilmesi ve eğer yoksa backup yoksa uygulanması gereklidir.
Veritabanı consistent yani düzgün bir şekilde kapatılmalıdır.
SHUTDOWN IMMEDIATE
STARTUP MOUNT
Artık DBNEWID aracımızı kullanmaya hazırız. Bu aracı kullanırken mutlaka "SYSDBA" yetkisine sahip bir kullanıcıyla çalıştırmalıyız. Aşağıdaki örneğimizde sadece DBID değiştirilir.
nid TARGET=SYS/oracle@orcl
DBNAME'imizi de değiştirmek için bu sefer DBNAME parametresini vermeliyiz. Bu şekilde artık database'in adı berke olmuş olur. Buradaki örneğimizde ise DBID ve DBNAME değiştirilir.
nid TARGET=SYS/oracle@orcl DBNAME=BERKE
Nid komutuyla datafile ve controlfile header'ları değiştirilir. Bütün datafiler için dbid'ler değiştirilir ve sonra da çıkılır.
Sadece DBNAME'i değiştirmek için:
nid TARGET=SYS/oracle@orcl DBNAME=BERKE SETNAME=YES LOGFILE=dbid.out
Başarıyla Nid komutunu çalıştırdıktan sonra database kapatılır ve tekrar Mount modda açılır. Ertesinde resetlogs modunda veritabanı açılır. "Alter system"'lı komutumuz dbname değişikliğini geçerli kılmak için yapılır.
SHUTDOWN IMMEDIATE
STARTUP MOUNT;
ALTER SYSTEM SET DB_NAME=BERKE SCOPE=SPFILE;--DBNAME Değişikliği olduğunda kullanılır.
SHUTDOWN IMMEDATE;
STARTUP MOUNT
ALTER DATABASE OPEN RESETLOGS;
Sonrasında database'in backup'ı alınır.
Hiç yorum yok:
Yorum Gönder