移動資料檔案從ASM到檔案系統

liglewang發表於2011-09-16

測試環境:ORACLE 10.2.0.4 + ASM

有兩種方法可以實現從ASM到檔案系統的資料檔案移動

1、  資料庫RUNNING狀態

在資料庫處於OPEN狀態時,要想移動資料庫從ASM到檔案系統,則必須使相關表空間OFFLINE

1.1、        確認被移動資料檔案所在表空間

SQL> select tablespace_name,file_name from dba_data_files where file_id=5; 
TABLESPACE_NAME                FILE_NAME
------------------------------ -----------------------------------------------
OCPTBS                         +XINER_DATA/xiner/datafile/ocptbs.268.745970939

1.2、        離線表空間OCPTBS

SQL> alter tablespace OCPTBS offline;
Tablespace altered.

1.3、        登入RMANCOPY資料庫從ASM到檔案系統

RMAN> copy datafile 5 to '/home/oracle/wangz/liglewang.dbf';
Starting backup at 07-APR-2011 02:45:56
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=153 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005 name=+XINER_DATA/xiner/datafile/ocptbs.268.745970939
output filename=/home/oracle/wangz/liglewang.dbf tag=TAG20110407T024557 recid=1 stamp=747801964
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
Finished backup at 07-APR-2011 02:46:05
Starting Control File and SPFILE Autobackup at 07-APR-2011 02:46:05
piece handle=/u01/app/oracle/product/10.2.0/db_1/dbs/c-4034639180-20110407-01 comment=NONE
Finished Control File and SPFILE Autobackup at 07-APR-2011 02:46:08

1.4、        更新控制檔案以使其可識別到新路徑下的資料檔案

SQL> alter database rename file '+XINER_DATA/xiner/datafile/ocptbs.268.745970939' to '/home/oracle/wangz/liglewang.dbf';
Database altered.

1.5、        驗證資料檔案

SQL> select tablespace_name,file_name from dba_data_files where file_id=5;
TABLESPACE_NAME                FILE_NAME
------------------------------ -----------------------------------------------
OCPTBS                         /home/oracle/wangz/liglewang.dbf

1.6、        ONLINE表空間

SQL> alter tablespace OCPTBS online;
Tablespace altered.

                     至此,ASM中的資料檔案5已被成功移動到了檔案系統。

2、  資料庫處於MOUNT狀態或者SHUTDOWN

2.1、先shutdown然後再mount

SQL> shutdown immediate
SQL> startup mount

2.2、使用RMAN進行COPY

RMAN> copy datafile 4 to '/home/oracle/users.dbf';

2.3、更新控制檔案以使其可識別到新路徑下的資料檔案

SQL> alter database rename file '+XINER_DATA/xiner/datafile/users.266.745002877' to '/home/oracle/users.dbf';
Database altered.

2.4、查詢字典DBA_DATA_FILES驗證資料庫,然後開啟資料庫

SQL> alter database open;
Database altered.

 

以上兩種方式都是透過RMAN進行COPY的,並且COPY後,ASM上的資料庫檔案會自動被Oracle刪除。參考文件:

Metalink: How to move a datafile from ASM to the file system [ID 390416.1]

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

相關文章