Kadang kita perlu memindahkan datafile dari satu tempat (disk/file system/directory/drive) ke tempat yang lainnya. Atau kadang juga kita perlu me-rename datafile karena ada salah ketik waktu membuatnya. Baik memindahkan file dari satu tempat ke tempat lain, maupun merename datafile di tempat yang sama, intinya adalah sama saja.
Misalkan kita ingin memindahkan/me-rename datafile dari ‘/oradata/oracle/ts/users01.dbf’ ke ‘/oradata/oracle/ts/users02.dbf’
Pada database yang NOARCHIVELOG:
- Shutdown database
SQL> shutdown immediate
- Pindahkan/move/rename datafile. Di Windows bisa pakai Windows explorer. Di unix gunakan command ini:
mv /oradata/oracle/ts/users01.dbf /oradata/oracle/ts/users02.dbf
- Startup mount database
SQL> startup mount
- Rename datafile di level database
SQL> alter database rename file '/oradata/oracle/ts/users01.dbf' to '/oradata/oracle/ts/users02.dbf';
- Setelah itu, open database
SQL> alter database open;
Pada database yang ARCHIVELOG:
- Tidak perlu shutdown database. Cukup offline-kan datafile yang bersangkutan
SQL> alter database datafile '/oradata/oracle/ts/users01.dbf' offline;
- Pindahkan/move/rename datafile. Di Windows bisa pakai Windows explorer. Di unix gunakan command ini:
mv /oradata/oracle/ts/users01.dbf /oradata/oracle/ts/users02.dbf
- Rename datafile di level database
SQL> alter database rename file '/oradata/oracle/ts/users01.dbf' to '/oradata/oracle/ts/users02.dbf';
- Setelah itu, recover datafile yang telah di-rename tersebut
SQL> recover datafile '/oradata/oracle/ts/users02.dbf';
- Terakhir, online-kan datafile yang telah di-rename tersebut
alter database datafile '/oradata/oracle/ts/users01.dbf' online;
Pada metode pertama di atas (untuk database NOARCHIVELOG), mau tidak mau database tersebut tidak bisa diakses karena harus di-shutdown dulu (ada downtime).
Sementara pada metode kedua (untuk database ARCHIVELOG) database masih bisa diakses (baik query maupun transaksi), kecuali data (bytes) yang secara intrinsik disimpan di datafile tersebut tidak bisa diakses. Misalkan datafile diatas adalah milik tablespace USERS, dan tablespace USERS punya dua datafiles; maka data yang secara intriksik ada di datafile lain (bukan yang di-offline-kan tersebut) masih bisa diakses.

2 Comments
bagaimana jika kita inginmemindahkan lokasi datafile saja tamapa merename datafile..??
misal lokasi awal di :
/db/oracle/OraHome_1/oradata/DB_DWH/staging01.dbf
lokasi tujuan :
/db3/oradata/staging01.dbf
dan apakah dalam process ini pertu adanya downtime user yg akses ke datafile staging01.dbf
Status database saat ini dalam keadaan ARCHIVELOG.
Memindahkan datafile di OS HARUS disertai dengan me-rename datafile di database, tidak bisa tidak, alias wajib
Meskipun database anda ARCHIVELOG, data yang secara instrinsik tersimpan di datafile tsb tidak akan bisa diakses karena datafilenya OFFLINE.
Post a Comment