需求:把原系統Oracle 9205數據庫遷移到一臺新的服務器和陣列上,原系統有250GB的數據量,需要停止原來系統的業務,做冷備份和恢復。
解決方法如下:
◆1.在新的服務器和陣列上裝好一個oracle 9206數據庫;
◆2.停止原系統oracle 9205;
◆3.把原系統的數據冷拷貝到新的服務器上,然后按照以下步驟來進行恢復:
(1)、獲取數據庫相關信息
首先要查看一下數據庫的文件內容:
select * from v$datafile;
select * from v$controlfile
select * from v$logfile;
數據文件:
G:/ORADATA/WEBOA/SYSTEM01.DBF
G:/ORADATA/WEBOA/UNDOTBS01.DBF
G:/ORADATA/WEBOA/CWMLITE01.DBF
G:/ORADATA/WEBOA/DRSYS01.DBF
G:/ORADATA/WEBOA/EXAMPLE01.DBF
G:/ORADATA/WEBOA/INDX01.DBF
G:/ORADATA/WEBOA/ODM01.DBF
G:/ORADATA/WEBOA/TOOLS01.DBF
G:/ORADATA/WEBOA/USERS01.DBF
G:/ORADATA/WEBOA/XDB01.DBF
控制文件:
G:/ORADATA/WEBOA/CONTROL01.CTL
G:/ORADATA/WEBOA/CONTROL02.CTL
G:/ORADATA/WEBOA/CONTROL03.CTL
重做日志文件:
G:/ORADATA/WEBOA/REDO03.LOG
G:/ORADATA/WEBOA/REDO02.LOG
G:/ORADATA/WEBOA/REDO01.LOG
(2)、移動應用數據文件
shutdown immediate關閉數據庫,拷貝數據文件到另外一個目錄下。需要copy 的文件有:
system01.dbf
indx01.dbf
temp01.dbf
users01.dbf
應用數據文件
(3)、修改數據庫文件的位置
啟動MOUNT模式
startup mount;
alter database rename file 'g:/oradata/weboa/SYSTEM01.DBF' to 'd:/oradata/weboa/SYSTEM01.DBF';
注意只能進行更改移動的數據庫文件,不包括控制文件與日志文件,TEMP文件。
移動控制文件
(1)備份SPFILE中的內容:
再重新啟動數據庫:
startup;
create pfile=’c:/init.ora’ from spfile;
(2)修改init.ora文件中的內容:
*.control_files='/oradata/ocp/control01.ctl','/oradata/ocp/control02.ctl','/oradata/ocp/control03.ctl'
進行更改已經復制的目錄位置。
Shutdown 數據庫
(3)將控制文件復制過去
將三個控制文件移動到上面所修改的的目錄下。
(4)倒入參數文件
以init.ora參數方式啟動:
startup pfile=’/oracle/init.ora’;
create spfile from pfile=’/oracle/init.ora’;
shutdown immediate;
startup; 從spfile中進行啟動。
這樣控制文件移動工作就結束了。
重建或重定位LOG文件
解決日志文件的移動方式有兩種,一種是移動(RENAME方式)另一種是重新創建。
(1)移動LOG文件
重新移動數據庫文件與移動系統數據庫文件是一樣的方法,只是要求數據庫必須是“startup mount”方式進行。
startup mount
alter database rename file 'g:/oradata/weboa/REDO01.LOG' to 'd:/oradata/weboa/REDO01.LOG';
alter database rename file 'g:/oradata/weboa/REDO02.LOG' to 'd:/oradata/weboa/REDO02.LOG';
alter database rename file 'g:/oradata/weboa/REDO03.LOG' to 'd:/oradata/weboa/REDO03.LOG';
四、重建系統監時(temp)文件系統
在移動數據表空間時,TEMP文件是不能被移動的,這里要求可以進行重建一個TEMP表空間,并設置為系統默認的TEMP文件系統。
然后再冊除原來的TEMP表空間,達到移動表空間的過程。
遷移臨時表空間
◆1.startup --啟動數據庫
◆2. create temporary tablespace "temp02" tempfile 'd:/oradata/weboa/temp02.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文件就可以了。
新聞熱點
疑難解答