Oracle server ürürünü kurarken genelde kurulum esnasında oracle tarafından
ORACLE_BASE altına
set edilen oradata dizinine direk kurulum yapanlarınız mutlaka olmuştur.
Ancak burası aynı zamanda ORACLE_HOME dizinide olduğundan genelde bu diskin
size’ i dbf’ lerin barındırabilecek ölçüde olmadığından dolayı bunları
taşımamız gerekebilir. Veya herhangi bir sebebden bir ötürü herhangi bir
datafile’ i farklı bir disk üzerinde tutmaya karar verebilirsiniz. Bunun için
aslında 2 yöntem var. Şimdi bunları sırasıyla açıklamaya çalışalım;
1) Eğer veritabanımız noarchivelog modda veya taşımak istediğiniz
datafile SYS, SYSAUX veya UNDO tablespace'ine ait ise bu taşıma işlemini
veritabanı açıkken yapılamazsınız. Mutlaka database’ in kapatılması
gerekmektedir.
SQL> SHUTDOWN IMMEDIATE
Database’ I kapattıkdan sonra OS komutlarıyla
datafilelerin yerlerindeki değişiklikleri yaparız. Sonra Mount modda database’
I açarız.
SQL> STARTUP MOUNT
Sonra datafile’lerin yeni yerleri sisteme tanıtılır ve
database Open moda alınır.
SQL> ALTER DATABASE RENAME FILE '/old_lokasyon/deneme01.dbf' TO'/new_lokasyon/deneme01.dbf';
SQL> ALTER DATABASE OPEN;
2) Eğer archivelog modda çalışıyor isek ce taşıyacağımız datafile’ ler sistem
tablespace’ lerine ait değilse o zaman database’ I kapatmadan bu taşıma
işlemini yapabiliriz. İlk adımımız taşınacak datafile hangi tablespace’ e ait ise o
tablespace’ I offline moda alıyoruz.
SQL> ALTER TABLESPACE deneme OFFLINE;
Tablespace oofline’ a alınması demek artık database
tarafından hiçbir şekilde o tablespace’ e erişim olmaması anlamına gelir.
Datafile’ I artık yeni yerine OS komutları ile taşıyabiliriz. Sonrasında tekrar
tablespace’ i Online moda almamız gerekecek.
SQL> ALTER DATABASE RENAME FILE '/old_lokasyon/deneme01.dbf' TO'/new_lokasyon/deneme01.dbf';
SQL> ALTER TABLESPACE example ONLINE;
Aslında şu suruyu sorabilirsiniz datafile üzerinde
işlem yapıyoruz peki neden datafile’ I değilde tablespace’ I offline moda
alıyoruz. Bu sorunun cevabı evet haklısınız bu işlem için tablespace’ I değilde
sadece ilgili datafile’ I offline moda alabilirsiniz ancak datafile online moda
almadan önce mutlaka recover etmeniz gerekeceğinden yedeğinizin olduğundan
mutlaka emin olmanız gerekecektir.
SQL> ALTER DATABASE DATAFILE '/old_lokasyon/dosya.dbf' OFFLINE;
Kopyalama sonrası:
SQL> ALTER DATABASE RENAME FILE '/old_lokasyon/deneme01.dbf' TO'/new_lokasyon/deneme01.dbf';
SQL> RECOVER DATAFILE '/new_lokasyon/deneme01.dbf';
SQL> ALTER DATABASE DATAFILE '/new_lokasyon/deneme01.dbf';
ONLINE;
Datafile’ i Offline moda alıpda işlem
yapacaksınız backup son derece önemli.
Hiç yorum yok:
Yorum Gönder