將ORACLE資料庫資料檔案遷移到其他目錄(ZT)

trigger_lau發表於2010-04-24
將ORACLE資料庫資料檔案遷移到其他目錄

一、系統環境:

作業系統:winXP

資料庫版本: 9.2.0.1.0

資料庫SIDtest

資料庫為非歸檔模式

[@more@]

二、遷移過程

原資料庫資料檔案位置:C:oracleoradatatest

目標資料庫資料檔案位置:D:Softwareoradatatest

原來資料檔案位置

'C:ORACLEORADATATESTSYSTEM01.DBF',
'C:ORACLEORADATATESTUNDOTBS01.DBF',
'C:ORACLEORADATATESTCWMLITE01.DBF',
'C:ORACLEORADATATESTDRSYS01.DBF',
'C:ORACLEORADATATESTEXAMPLE01.DBF',
'C:ORACLEORADATATESTINDX01.DBF',
'C:ORACLEORADATATESTODM01.DBF',
'C:ORACLEORADATATESTTOOLS01.DBF',
'C:ORACLEORADATATESTUSERS01.DBF',
'C:ORACLEORADATATESTXDB01.DBF'

因為需要移動所有的資料檔案,所以採用alter database方法

1、 首先shutdown資料庫

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

2、 使用系統命令複製貼上到指定目錄

copy C:oracleoradatatest* D:Softwareoradatatest*

3、 啟動資料庫到mount狀態,更改資料檔案的位置

SQL> startup mount

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

資料庫裝載完畢。

SQL>

alter database rename file 'C:ORACLEORADATATESTSYSTEM01.DBF',

'C:ORACLEORADATATESTUNDOTBS01.DBF',

'C:ORACLEORADATATESTCWMLITE01.DBF',

'C:ORACLEORADATATESTDRSYS01.DBF',

'C:ORACLEORADATATESTEXAMPLE01.DBF',

'C:ORACLEORADATATESTINDX01.DBF',

'C:ORACLEORADATATESTODM01.DBF',

'C:ORACLEORADATATESTTOOLS01.DBF',

'C:ORACLEORADATATESTUSERS01.DBF',

'C:ORACLEORADATATESTXDB01.DBF' to

'D:SoftwareoradatatestSYSTEM01.DBF',

'D:SoftwareoradatatestUNDOTBS01.DBF',

'D:SoftwareoradatatestCWMLITE01.DBF',

'D:SoftwareoradatatestDRSYS01.DBF',

'D:SoftwareoradatatestEXAMPLE01.DBF',

'D:SoftwareoradatatestINDX01.DBF',

'D:SoftwareoradatatestODM01.DBF',

'D:SoftwareoradatatestTOOLS01.DBF',

'D:SoftwareoradatatestUSERS01.DBF',

'D:SoftwareoradatatestXDB01.DBF'

然 後開啟資料庫

SQL> alter database open;

資料庫已更改。

SQL> select name from v$datafile;

NAME

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

D:SOFTWAREORADATATESTSYSTEM01.DBF

D:SOFTWAREORADATATESTUNDOTBS01.DBF

D:SOFTWAREORADATATESTCWMLITE01.DBF

D:SOFTWAREORADATATESTDRSYS01.DBF

D:SOFTWAREORADATATESTEXAMPLE01.DBF

D:SOFTWAREORADATATESTINDX01.DBF

D:SOFTWAREORADATATESTODM01.DBF

D:SOFTWAREORADATATESTTOOLS01.DBF

D:SOFTWAREORADATATESTUSERS01.DBF

D:SOFTWAREORADATATESTXDB01.DBF

已選擇10行。

4、 更改聯機日誌檔案

關閉資料庫:shutdown immediate

alter alter database rename file 'C:ORACLEORADATATESTREDO01.LOG',

'C:ORACLEORADATATESTREDO02.LOG',

'C:ORACLEORADATATESTREDO03.LOG' to

'D:SoftwareoradatatestREDO01.LOG',

'D:SoftwareoradatatestREDO02.LOG',

'D:SoftwareoradatatestREDO03.LOG'

資料庫已更改。

5、 修改inittest.ora裡面的控制檔案路徑,inittest.ora檔案是用create pfile from spfile建立的,目錄在%ORACLE_HOME%database下:

l 先關閉資料庫:shutdown immediate

l copy 控制檔案到新目錄中

l 啟動到nomount狀態,因為這時候沒有開啟控制檔案,不會造成控制檔案不一致情況:startup nomount

l 建立pfilecreate pfile from spfile

l 修改檔案裡面的控制檔案資訊

control_files='D:SoftwareoradatatestCONTROL01.CTL','D:Softwareoradatatest CONTROL02.CTL',' D:Softwareoradatatest CONTROL03.CTL'

l 修改後使用create spfile from pfile使修改後的檔案生效

alter database mount看看能否開啟控制檔案

alter database open;開啟資料庫

6、 臨時檔案的移動

由於控制檔案不記錄臨時檔案的資訊,所以不能使用alter database rename file命令完成,只能刪除掉原來的再建立一個

SQL> create temporary tablespace temp02 tempfile 'd:softwareoradatatesttemp0

2.dbf' size 40M autoextend on extent management local uniform size 1M

SQL> alter database default temporary tablespace temp02;

SQL> drop tablespace temp including contents and datafiles;

表空間已丟棄。
link:http://blog.chinaunix.net/u/10410/showart_370883.html

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

相關文章