【TABLESPACE】資料庫Open狀態下調整表空間資料檔案位置及名稱

secooler發表於2011-04-11
  需要調整表空間資料檔名稱及位置的場景主要有如下幾種:
  ①發現表空間對應的個別資料檔名稱命名有誤,例如忘記新增“.dbf”字尾;
  ②由於存放資料檔案的磁碟空間緊張,需要調整存放位置;
  ③針對特定儲存裝置,重新規劃資料檔案的佈局。

  本文給出最常見的調整方法:在資料庫Open狀態下調整表空間資料檔案位置及名稱。
  注意:在完成調整操作之前請對資料庫做好有效備份,防止出現故障給資料庫的使用帶來不便。

1.建立測試用表空間TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;

Tablespace created.

2.獲取表空間與資料檔案之間的對應關係
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';

TABLESPACE_NAME   FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D    /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf

3.將表空間TBS_SECOOLER_D離線
sys@ora10g> alter tablespace TBS_SECOOLER_D offline normal;

Tablespace altered.

注意,這個步驟很重要,也是這種在資料庫Open狀態下調整方法的侷限所在。因為不是所有情況都可以將表空間順利離線。如果表空間正在被使用,則表空間將無法正常離線。

4.在作業系統中調整資料檔案位置和名稱
在Linux/UNIX作業系統中可以使用作業系統命令mv完成這一步的調整。
ora10g@secdb /home/oracle$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf

確認檔案位置及名稱調整完畢。
ora10g@secdb /home/oracle$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /home/oracle$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 11 21:41 /home/oracle/tbs_secooler_d.dbf

5.在資料庫中調整資料檔案位置及名稱
sys@ora10g> alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';

Tablespace altered.

此步驟變化體現在資料庫控制檔案上。

6.將表空間重新調整為線上狀態
sys@ora10g> alter tablespace TBS_SECOOLER_D online;

Tablespace altered.

7.最後的確認
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';

TABLESPACE_NAME   FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D    /home/oracle/tbs_secooler_d.dbf

可見,此時已達到了調整表空間資料檔案位置及名稱的目的。

8.小結
  使用文中提到的方法來調整表空間資料檔名稱及路徑的方法有一定的侷限性,適用於待調整表空間可以順利地完成離線操作的場景。如不滿足條件,也可以透過重啟資料庫或人為的干預使之滿足這個前提條件。當然,也可以選擇其他調整方式。

Good luck.

secooler
11.04.11

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-692267/,如需轉載,請註明出處,否則將追究法律責任。

相關文章