Hurriyet

10 Eylül 2013 Salı

Oracle Veritabanı: DBNEWID Aracı ve NID

DBNEWID Oracle Database'de bulunan bir araçtır. Bu araç ile DBID(Internal Database Identifier) ve database ismi (DBNAME) değiştirilir.

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