學習ASM技術(七)--ASM檔案轉化

yezhibin發表於2010-03-16
一、非ASM資料檔案轉發成ASM步驟:

1、建立測試表空間
SQL>create tablespace test datafile '/home/oracle/test.dbf' size 20M;

2、使用RMAN,將資料檔案offline

SQL>rman target system/password
RMAN>sql 'alter tablespace test offline';

3、使用backup as copy命令遷移
RMAN>backup as copy tablespace 'TEST' format 'ASM_DISKGROUP';

4、切換表空間
RMAN>switch tablespace 'TEST' to copy;

5、將表空間online
RMAN>sql 'alter tablespace test online';

6、檢視錶空間資訊
select file_name from dba_data_files where tablespace_name='TEST';

二、將資料檔案從一個diskgroup遷移到另一個diskgroup

1、檢視需要遷移的資料檔案#
SQL> select file_id from dba_data_files where TABLESPACE_NAME='TEST';

   FILE_ID
----------
         5

2、備份資料檔案

RMAN> sql 'alter tablespace test offline';
RMAN>backup device type disk as copy datafile 5 format '+DG1';

3、切換
RMAN>switch datafile 5 to copy;
RMAN>recover datafile 5;

4、啟動
RMAN>sql 'alter tablespace test online';

三、將ASM檔案轉發成OS檔案(除RMAN外的另一種方法)

1、檢視資料檔案

SQL> select file_name from dba_data_files
           where tablespace_name='TEST';
FILE_NAME
--------------------------------------------------------------------------------
+DG1/ora10g/datafile/test.261.713925727

2、將表空間offline

SQL>alter tablespace test offline;

3、建立ASM目錄

SQL> create directory asmsrc as '+DG1/ora10g/datafile';
SQL> create directory osdesc as '/home/oracle';

4、執行轉化
SQL> begin
    dbms_file_transfer.copy_file('ASMSRC',
    'TEST.261.713925727',
    'OSDESC',
    'TEST.DBF');
    END;
    /

5、將資料檔案rename

SQL> alter database rename file
           '+DG1/ora10g/datafile/test.261.713925727'
           to '/home/oracle/TEST.DBF';

6、恢復資料檔案
SQL> recover datafile 5;

7、將表空間online,並檢視資料檔案

SQL> alter tablespace test online;
SQL> select file_name from dba_data_files
           where tablespace_name='TEST';

8、進入ASMCMD,將test.261.713925727刪除
ASMCMD>rm test.261.713925727

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

相關文章