1. 程式人生 > >Oracle遷移資料檔案從檔案系統至裸裝置

Oracle遷移資料檔案從檔案系統至裸裝置

實施將檔案系統上的資料檔案移至裸裝置上:

進入sqlplus命令列:

$ sqlplus '/as sysdba'

SQL*Plus: Release 9.2.0.6.0 - Production on Thu Aug 19 19:52:32 2010

Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.6.0 - Production

offline該表空間:

SQL> alter tablespace BONC offline;

Tablespace altered.

遷移檔案系統資料檔案至裸裝置:

$ rman target /

Recovery Manager: Release 9.2.0.6.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation.All rights reserved.

connected to target database: HIUBI (DBID=2363790514)

RMAN> copy datafile 108 to '/dev/rv06_4_back007';

Starting copy at 19-AUG-10

using channel ORA_DISK_1

channel ORA_DISK_1: copied datafile 108

output filename=/dev/rv06_4_back007 recid=7 stamp=727473123

Finished copy at 19-AUG-10

重新命名資料檔案:

SQL> alter tablespace BONC

2 rename datafile '/arrayubi/oracle/product/9.2.0/dbs/D:ORACLEPRODUCT10.2.0ORADATAORCLbonc.dbf'

3to '/dev/rv06_4_back007';

online該表空間並修改為read write

SQL> alter tablespace BONC online;

Tablespace altered.

SQL> alter tablespace BONC read write;

Tablespace altered.

查驗:

SQL> set linesize 120

SQL> col file_name for a30

SQL> select file_id,file_name,tablespace_name,bytes/1024/1024 M,status from dba_data_files where tablespace_name='BONC';

FILE_ID FILE_NAMETABLESPACE_NAMEM STATUS

---------- ------------------------------ ------------------------------ ---------- ---------

108 /dev/rv06_4_back007 BONC2460 AVAILABLE

最後將原檔案系統上的資料檔案rm掉即可。

其實在遇到此類問題時,解決問題的思路還是比較簡單的,有如下4步:

1、使表空間離線

2、使用rmancopy命令進行操作

3、退出rman進入sqlplus命令列,對錶空間資料檔案進行重新命名

4、線上表空間並置為可讀可寫狀態