循序漸進講解Oracle 9i數據庫的遷移過程
需求:把原系統Oracle 9205數據庫遷移到一臺新的服務器和陣列上,原系統有250GB的數據量,需要停止原來系統的業務,做冷備份和恢復。
解決方法如下:
◆1.在新的服務器和陣列上裝好一個oracle 9206數據庫;
◆2.停止原系統oracle 9205;
◆3.把原系統的數據冷拷貝到新的服務器上,然后按照以下步驟來進行恢復:
(1)、獲取數據庫相關信息
首先要查看一下數據庫的文件內容:
select * from v$datafile;
select * from v$controlfile
select * from v$logfile;
數據文件:
G:ORADATAWEBOASYSTEM01.DBF
G:ORADATAWEBOAUNDOTBS01.DBF
G:ORADATAWEBOACWMLITE01.DBF
G:ORADATAWEBOADRSYS01.DBF
G:ORADATAWEBOAEXAMPLE01.DBF
G:ORADATAWEBOAINDX01.DBF
G:ORADATAWEBOAODM01.DBF
G:ORADATAWEBOATOOLS01.DBF
G:ORADATAWEBOAUSERS01.DBF
G:ORADATAWEBOAXDB01.DBF
控制文件:
G:ORADATAWEBOACONTROL01.CTL
G:ORADATAWEBOACONTROL02.CTL
G:ORADATAWEBOACONTROL03.CTL
重做日志文件:
G:ORADATAWEBOAREDO03.LOG
G:ORADATAWEBOAREDO02.LOG
G:ORADATAWEBOAREDO01.LOG
(2)、移動應用數據文件
shutdown immediate關閉數據庫,拷貝數據文件到另外一個目錄下。需要copy 的文件有:
system01.dbf
indx01.dbf
temp01.dbf
users01.dbf
應用數據文件
(3)、修改數據庫文件的位置
啟動MOUNT模式
startup mount;
alter database rename file 'g:oradataweboaSYSTEM01.DBF' to 'd:oradataweboaSYSTEM01.DBF';
注意只能進行更改移動的數據庫文件,不包括控制文件與日志文件,TEMP文件。
移動控制文件
(1)備份SPFILE中的內容:
再重新啟動數據庫:
startup;
create pfile=’c:init.ora’ from spfile;
(2)修改init.ora文件中的內容:
*.control_files='oradataocpcontrol01.ctl','oradataocpcontrol02.ctl','oradataocpcontrol03.ctl'
進行更改已經復制的目錄位置。
Shutdown 數據庫
(3)將控制文件復制過去
將三個控制文件移動到上面所修改的的目錄下。
(4)倒入參數文件
以init.ora參數方式啟動:
startup pfile=’oracleinit.ora’;
create spfile from pfile=’oracleinit.ora’;
shutdown immediate;
startup; 從spfile中進行啟動。
這樣控制文件移動工作就結束了。
重建或重定位LOG文件
解決日志文件的移動方式有兩種,一種是移動(RENAME方式)另一種是重新創建。
(1)移動LOG文件
重新移動數據庫文件與移動系統數據庫文件是一樣的方法,只是要求數據庫必須是“startup mount”方式進行。
startup mount
alter database rename file 'g:oradataweboaREDO01.LOG' to 'd:oradataweboaREDO01.LOG';
alter database rename file 'g:oradataweboaREDO02.LOG' to 'd:oradataweboaREDO02.LOG';
alter database rename file 'g:oradataweboaREDO03.LOG' to 'd:oradataweboaREDO03.LOG';
四、重建系統監時(temp)文件系統
在移動數據表空間時,TEMP文件是不能被移動的,這里要求可以進行重建一個TEMP表空間,并設置為系統默認的TEMP文件系統。
然后再冊除原來的TEMP表空間,達到移動表空間的過程。
遷移臨時表空間
◆1.startup --啟動數據庫
◆2. create temporary tablespace 'temp02' tempfile 'd:oradataweboatemp02.dbf' size 500m extent management local uniform size 10m; --創建中轉臨時表空間
◆3.alter database default temporary tablespace temp2; --改變缺省臨時表空間 為剛剛創建的新臨時表空間temp2
◆4.drop tablespace temp including contents and datafiles;--刪除原來臨時表空間
◆5 然后再刪除原來的TEMP文件就可以了。