6.2 參考資料:Oracle數據庫移動方法
這里所指“數據庫移動”是將Oracle數據文件(系統(tǒng)數據文件或用戶數據文件)、控制文件、重做日志移動至新的存儲路徑,并修改Oracle相關配置,使之可以重新正常啟動。這種應用常見于系統(tǒng)擴容后的Oracle數據存儲路徑的調整。
以下面為例,移動系統(tǒng)表空間的相關文件位置,并重新配置Oracle。假設原存儲路徑為/oradata,新存儲路徑為/oratest。
6.2.1 移動數據庫文件
1) 獲取數據庫相關信息
查看一下數據庫的文件內容:
sqlplus /nolog
SQL> connect /as sysdba
SQL> select * from v$datafile;
SQL> select * from v$controlfile
SQL> select * from v$logfile;
2) 移動數據庫文件
以shutdown immediate模式關閉數據庫,復制數據文件到新路徑/oratest/下。需復制的文件有:
system01.dbf
indx01.dbf
undotbs01.dbf
drsys01.dbf
users01.dbf
tools01.dbf
control01.ctl
control02.ctl
control03.ctl
redo01.log
redo02.log
redo03.log
3)修改數據文件的位置
以mount模式啟動Oracle,
SQL>startup mount;
SQL>alter database rename file '/oradata/system01.dbf' to '/oratest/system01.dbf" ;
SQL>alter database rename file '/oradata/indx01.dbf' to '/oratest/indx01.dbf" ;
SQL>alter database rename file '/oradata/undotbs01.dbf' to '/oratest/undotbs01.dbf" ;
SQL>alter database rename file '/oradata/drsys01.dbf' to '/oratest/drsys01.dbf" ;
SQL>alter database rename file '/oradata/users01.dbf' to '/oratest/users01.dbf" ;
SQL>alter database rename file '/oradata/tools01.dbf' to '/oratest/tools01.dbf" ;
注意:在此步驟只能更改已移動的數據庫文件,不能更改控制文件、日志文件和TEMP文件。
6.2.2 移動控制文件
1)備份SPFILE中的內容:
重新啟動數據庫:
SQL> startup;
SQL> create pfile=’/init.ora’ from spfile;
2)修改init.ora文件內容:
將*.control_files='/oradata/control01.ctl','/oradata/control02.ctl','/oradata/control03.ctl' 更改為新目錄位置的控制文件,如:
*.control_files='/oratest/control01.ctl','/oratest/control02.ctl','/oratest/control03.ctl'
關閉數據庫。
3)倒入參數文件
以init.ora為參數啟動數據庫,
SQL> startup pfile=’/init.ora’;
SQL> create spfile from pfile=’/ init.ora’;
SQL> shutdown immediate;
從spfile中進行啟動,
SQL> startup;
控制文件移動更改完成。
6.2.3 重定位LOG文件
日志文件的移動方式有兩種,一種是移動(rename方式),另一種是重建。下面僅舉例說明移動方式。
移動Redo Log文件:
SQL>alter database rename file '/oradata/redo01.log' to '/oratest/redo01.log" ;
SQL>alter database rename file '/oradata/redo02.log' to '/oratest/redo02.log" ;
SQL>alter database rename file '/oradata/redo03.log' to '/oratest/redo03.log" ;
6.2.4 重建系統(tǒng)臨時(temp)文件系統(tǒng)
在移動數據庫表空間時,TEMP文件是不能被移動的,可以重建一個TEMP表空間,并設置為系統(tǒng)默認的TEMP文件系統(tǒng)。再刪除原來的TEMP表空間,達到移動表空間的目的。
SQL>create temporary tablespace TEMP02 tempfile ‘/oratest/temp02.dbf’ size 500m extent management local uniform size 10m;
SQL>alter database default temporary tablespace TEMP02;
確認創(chuàng)建設置成功后,再刪除原來的TEMP文件。
SQL>drop tablespace TEMP including contents and datafiles;
6.2.5 測試數據庫
重啟ORACLE數據
$ sqlplus “/as sysdba”
SQL> startup;
SQL> show sga;
SQL>
這看來相當于SQLSERVER的附加數據庫了,即為oracle的冷備份。
oracle看來主要有三種文件:數據庫文件、控件文件、日志文件
依次對以上三種文件進行移動和修改。