Ana içeriğe atla

Veritabanı dosyalarını(datafile) başka bir dizine taşıma



Bu işlem veritabanı kapalıyken veya açıkken yapılabilir.

1 ) Veritabanı Kapalıyken:
* Database kapatılır.
SQL > shutdown imeediate

* Datafile yeni dizine kopyalanır veya move edilir.
$ cp /old_location/dbfilename01.dbf /new_location/
Taşımayıp kopyaladıysanız eski lokasyondaki datafile'ı kullanmasını önlemek adına ek önlem için rename edebiliriz.
$ mv /old_location/dbfilename01.dbf /old_location/dbfilename01.dbf_OLD

* Database mount mode'da açılarak datafile rename edilir.
SQL > startup mount
SQL > alter database rename file '/old_location/dbfilename01.dbf' to '/new_location/dbfilename01.dbf';

* Database open mode'a alınır.
SQL > alter database open;


2 ) Veritabanı Açıkken:
Bunu yapabilmek için database'in archive log mode'da olması gerekiyor. Bunu aşağıdaki komutla kontrol edebilirsiniz.
SQL> select log_mode from sys.v_$database;

LOG_MODE
------------
ARCHIVELOG

* Datafile offline'a alınır.
SQL> alter database datafile '/old_location/dbfilename01.dbf' offline;

* Datafile yeni dizine kopyalanır veya move edilir.
$ cp /old_location/dbfilename01.dbf /new_location/
Taşımayıp kopyaladıysanız eski lokasyondaki datafile'ı kullanmasını önlemek adına ek önlem için rename edebiliriz.
$ mv /old_location/dbfilename01.dbf /old_location/dbfilename01.dbf_OLD

* Veritabanın taşınan datafile'ı yeni lokasyonda olduğunu göstermek için rename ederiz:
SQL> alter database rename file '/old_location/dbfilename01.dbf' to '/new_location/dbfilename01.dbf';

* Datafile'ı tutarlı hale getirmek için recover edilir.
SQL> alter database recover datafile '/new_location/dbfilename01.dbf';

* Tekrar kullanıma açmak için online mode'a alınır.
SQL> alter database datafile '/new_location/dbfilename01.dbf' online;

şeklinde taşıma işlemini tamamlamış oluruz. 

Yorumlar

Bu blogdaki popüler yayınlar

Oracle 11G - Interval Partitioning Özelliği

Bilindiği üzere devasa tablolara erişimde performans sıkıntılarının giderilmesi, data arşivleme, büyük hacimlerdeki eski dataların silinmesi gibi durumlarda partitioning hayat kurtarıyordu. Bununla birlikte 11g öncesi versiyonlarda bu tabloların sürekli yeni partition'larının oluşturulması gibi bir maliyet söz konusuydu. Önceki versiyonlarda partition yaparken belirtilen zaman aralığı dışında bir veri girmeye çalıştığımız zaman "ORA-14400: inserted partition key does not map to any partition" hatasını alıyorduk, çünkü girmek istediğiniz verinin konumlandırılacağı bir partition bulunmamaktaydı. 11g ile partition create ederken "interval" ifadesini de ekleyerek tablomuza belirtilen aralıkların dışında bir data gelmesi durumunda ilgili partition'ı kendisi oluşturuyor. 11g ile gelen bu yeni özellik sayesinde artık partitioning seçeneğine daha bir ısındım diyebilirim.  Aşağıda bir örnekle açıklamaya çalıştım. Bu örnekte eski dataları, farklı bir arşiv tables...

RMAN:DUPLICATE DATABASE İLE YENİ BİR VERİTABANI YARATMA

Veritabanımızın son alınan mevcut backup'ından yeni bir test ortamı oluştururken hazırladığım aksiyon planını aşağıdaki gibi paylaşmak istedim. Eklemek istediğiniz veya yanlış olduğunu düşündüğünüz hertürlü konuyu paylaşırsanız sevinirim. Tanımlar: prd: kopyası oluşturalacak production sistemi prdserver: production veritabanı server ı test: oluşturulacak test sistemi. testserver: test veritabanı server ı catalogdb: rman katalog bilgilerinin bulunduğu veritabanı catdbserver: katalog veritabanı server ı Test ortamında listener düzenlemesi: * oluşturulacak test ortamının mevcut listener.ora dosyasına aşağıdaki satırlar eklenir. (SID_DESC = (GLOBAL_DBNAME = prd) (ORACLE_HOME = /app/oracle/product/11.1.0/db_1) (SID_NAME = prd) ) TNS tanımlarınını yapılması: * test ortamının tnsnames.ora dosyasına catalog ve prod veriabanlarının tns tanımları eklenir. catalogdb = (DESCRIPTION = (ADDRES...