如果我在目錄中有一個數據文件並且它對於目錄來說太大了我可以使用Oracle中的哪個命令來移動該文件,另一個數據文件到另一個目錄?如果一個oracle數據文件對於目錄來說太大,那麼它會做什麼
ALTER TABLESPACE
users
ADD DATAFILE
‘/ora01/oracle/oradata/booktst_users_02.dbf’
size 100m
如果我在目錄中有一個數據文件並且它對於目錄來說太大了我可以使用Oracle中的哪個命令來移動該文件,另一個數據文件到另一個目錄?如果一個oracle數據文件對於目錄來說太大,那麼它會做什麼
ALTER TABLESPACE
users
ADD DATAFILE
‘/ora01/oracle/oradata/booktst_users_02.dbf’
size 100m
您可以執行。添加數據文件更簡單,因爲它可以使用您顯示的命令在線完成。只要您不介意將數據文件分佈在不同的目錄中,並且不需要刪除該文件當前所在的文件系統,則這對您應該沒問題。
文檔explains how to relocate a datafile。我不會引用整個事情,但實質上,在表空間脫機的情況下,將數據文件複製到另一個磁盤,然後使用ALTER TABLESPACE...RENAME DATAFILE
命令更新數據庫控制文件(和數據字典)以指向新位置,然後您可以使表空間重新聯機。
正如文檔中提到的那樣,對已修改的數據庫進行備份。一旦表空間正在使用這些文件的新副本,您可以從文件系統中刪除舊的副本 - 小心,確保您正在處理未使用的副本! - 釋放磁盤空間。
另一種選擇是在較大的文件系統上創建一個新的表空間,並將其數據文件放入一個較大的文件系統中,然後將所有對象移動到該表空間中,然後刪除原始表空間。表空間保持在線狀態,但訪問正在移動的對象將被暫時阻止;如果對象很大,可能是一個重要的問題,並且比移動數據文件慢得多。
感謝您的輸入! – Mark