更改資料檔案路徑的方法

hanson發表於2019-03-04

資料檔案如果從原來目錄轉移到另外一個目錄,如何設定?我總結了一下,大概有三種方法。


第一種方法,適用於轉移所有表空間的資料檔案(包括system),要求mount狀態下完成:

idle> startup mount;
ORACLE 例程已經啟動。

Total System Global Area 135339940 bytes
Fixed Size 454564 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。

idle> alter database rename file 'd:users01.dbf' to 'D:oradatahansonusers01.dbf';

資料庫已更改。

idle> alter database open;

資料庫已更改。

idle> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
D:ORADATAHANSONSYSTEM01.DBF
D:ORADATAHANSONUSERS01.DBF
D:ORADATAHANSONDRSYS01.DBF
D:ORADATAHANSONINDX01.DBF
D:ORADATAHANSONTOOLS01.DBF
D:ORADATAHANSONUNDOTBSNEW01.DBF
D:ORADATAHANSONXDB01.DBF

第二種方法,適用於所有非system表空間,要求open狀態下完成:

idle> alter tablespace users offline;

表空間已更改。

idle> alter database rename file 'D:oradatahansonusers01.dbf' to 'd:users01.dbf';

資料庫已更改。

idle> alter tablespace users online;

表空間已更改。

idle> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
D:ORADATAHANSONSYSTEM01.DBF
D:USERS01.DBF
D:ORADATAHANSONDRSYS01.DBF
D:ORADATAHANSONINDX01.DBF
D:ORADATAHANSONTOOLS01.DBF
D:ORADATAHANSONUNDOTBSNEW01.DBF
D:ORADATAHANSONXDB01.DBF

已選擇7行。

第三種方法,重建控制檔案,適用於所有資料檔案:

idle> startup nomount;
ORACLE 例程已經啟動。

Total System Global Area 135339940 bytes
Fixed Size 454564 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
idle> @connect '/ as sysdba'
idle> connect / as sysdba
已連線。
idle> CREATE CONTROLFILE REUSE DATABASE "HANSON" NORESETLOGS ARCHIVELOG
2 -- SET STANDBY TO MAXIMIZE PERFORMANCE
3 MAXLOGFILES 50
4 MAXLOGMEMBERS 5
5 MAXDATAFILES 100
6 MAXINSTANCES 1
7 MAXLOGHISTORY 226
8 LOGFILE
9 GROUP 1 'D:ORADATAHANSONREDO01.LOG' SIZE 10M,
10 GROUP 2 'D:ORADATAHANSONREDO02.LOG' SIZE 10M,
11 GROUP 3 'D:ORADATAHANSONREDO03.LOG' SIZE 10M
12 -- STANDBY LOGFILE
13 DATAFILE
14 'D:ORADATAHANSONSYSTEM01.DBF',
15 'D:USERS01.DBF',
16 'D:ORADATAHANSONDRSYS01.DBF',
17 'D:ORADATAHANSONINDX01.DBF',
18 'D:ORADATAHANSONTOOLS01.DBF',
19 'D:ORADATAHANSONUNDOTBSNEW01.DBF',
20 'D:ORADATAHANSONXDB01.DBF'
21 CHARACTER SET ZHS16GBK
22 ;

控制檔案已建立

idle> alter database open;
資料庫已更改。

system表空間裡的資料字典會在open資料庫的時候,用控制檔案的資料檔案所在路徑同步。

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

相關文章