Oracle表空間數據文件移動的方法


最近遇到這樣的一個問題,Oracle存放表空間文件的盤符 空間不夠了,必須把部分表空間遷移出去,

【轉】http://www.jb51.net/article/77026.htm

實現把用戶表空間中的數據文件從某一個路徑移動到另一個路徑

一、針對可offline的非系統表空間

本例移動oracle的案例表空間(EXAMPLE表空間),將其從

D:\ORADATA\ORCL\ 移動到 D:\ORACLE\ORADATA\

1.查看要改變的表空間的數據文件信息

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORADATA\ORCL\EXAMPLE01.DBF  ONLINE

2.將目標表空間設置為脫機狀態

SQL> alter tablespace EXAMPLE offline;

3.再次查看目標表空間的狀態,確保其已經是脫機狀態

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE

4.將原來的數據文件移動(或復制)到新的路徑

SQL> host move D:\ORADATA\ORCL\EXAMPLE01.DBF D:\ORACLE\ORADATA\

5.修改該表空間的數據文件路徑

SQL> alter tablespace EXAMPLE 
 rename datafile 'D:\ORADATA\ORCL\EXAMPLE01.DBF'
 to 'D:\ORACLE\ORADATA\EXAMPLE01.DBF';

6.查看該表空間修改后的信息,確保信息無誤

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE

7.修改該表空間為在線狀態

SQL> alter tablespace EXAMPLE online;

8.查看該表空間最后結果

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';
TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF ONLINE

備注:本方法對SYSAUX、USERS表空間也適用

二、系統表空間移動

該方法需要數據庫處於mount狀態

1.關閉運行中的數據庫

SQL> shutdown immediate

2.啟動數據庫到mount狀態

SQL> startup mount

3.移動系統表空間(SYSTEM表空間)的數據文件

SQL> host move D:\ORADATA\ORCL\SYSTEM01.DBF D:\ORACLE\ORADATA\

4.修改該表空間的數據文件路徑

SQL> alter database rename file 'D:\ORADATA\ORCL\SYSTEM01.DBF' to 'D:\ORACLE\ORA
DATA\SYSTEM01.DBF';

5.啟動數據庫,打開實例

SQL> alter database open;

6.查看表空間修改結果

SQL> select tablespace_name,file_name,online_status from dba_data_files where ta
blespace_name='SYSTEM';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
SYSTEM  D:\ORACLE\ORADATA\SYSTEM01.DBF SYSTEM

備注:本方法對UNDOTBS1、TEMP表空間也適用。

以上內容是小編給大家分享的Oracle表空間數據文件移動的方法,希望大家喜歡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM