Skip to content

Memindahkan atau Me-rename Datafile

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:

  1. Shutdown database
    SQL> shutdown immediate
    
  2. 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
    
  3. Startup mount database
    SQL> startup mount
    
  4. Rename datafile di level database
    SQL> alter database rename file '/oradata/oracle/ts/users01.dbf'
    to '/oradata/oracle/ts/users02.dbf';
    
  5. Setelah itu, open database
    SQL> alter database open;
    

Pada database yang ARCHIVELOG:

  1. Tidak perlu shutdown database. Cukup offline-kan datafile yang bersangkutan
    SQL> alter database datafile '/oradata/oracle/ts/users01.dbf' offline;
  2. 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
  3. Rename datafile di level database
    SQL> alter database rename file '/oradata/oracle/ts/users01.dbf'
    to '/oradata/oracle/ts/users02.dbf';
    
  4. Setelah itu, recover datafile yang telah di-rename tersebut
    SQL> recover datafile '/oradata/oracle/ts/users02.dbf';
  5. 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.



Silahkan baca yang berikut ini juga :

2 Comments

  1. murdi

    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.

    Posted on 17-Sep-08 at 9:11 am | Permalink
  2. rohmadne

    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.

    Posted on 18-Sep-08 at 2:04 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*