程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 手動轉移Oracle數據庫步驟

手動轉移Oracle數據庫步驟

編輯:關於SqlServer

您正在看的SQLserver教程是:手動轉移Oracle數據庫步驟。有時候我們會遇到這樣的情況,現有的數據庫要從一個機器轉移到另外一個機器上,一般我們會使用導出,導入。但是如果數據庫的數據非常多,數據文件尺寸很大,那麼在導出導入的過程就很可能會出現問題,並且漫長的過程也是我們無法容忍的。在這種情況下,我們可以簡單地使用操作系統的copy命令,直接進行數據庫的轉移。以下示例均在Redhat Fedora Core 1上的Oracle9.2.0.1中操作,其它操作系統和Oracle版本同樣適用。假設我們的數據庫在服務器A上,$ORACLE_BASE是/oracle,$ORACLE_HOME是 /Oracle/product/9.2.0。現在我們要將此數據庫轉移到服務器B上,並且新的$ORACLE_BASE是/u01/oracle,$ ORACLE_HOME是/u01/Oracle/product/9.2.0。SID是oraLinux。

操作步驟如下:

一. 在服務器B上安裝Oracle,安裝過程中不要創建數據庫。



     用戶的profile直接從服務器A上copy過來即可,注意需要修改原先的$ORACLE_HOME到現在的位置。



二. 如果服務器A上的Oracle使用的是spfile,那麼根據此spfile創建pfile:



      create pfile from spfile;



三. 關閉服務器A上的數據庫,shutdown immediate。如果數據庫不允許關閉,



     那麼可以使用聯機備份,這種情況數據庫必須處於archivelog模式,



     轉移的原理和允許關閉的情況一樣,此處不作討論。



四. 備份服務器A上的所有數據文件,包括以下:



a) 所有的datafile(臨時文件可以不copy,比如temp01.dbf)



b) 所有的online redo log



c) 所有的archive redo log



d) 所有的control file



e) $Oracle_HOME/dbs/init.ora(此文件是在上面第二步中創建的)



f) $Oracle_HOME/dbs/orapw(這是passWord file)



g) $ORACLE_HOME/network/listener.ora(這步可以省略,以後重新生成也可以)



h) $Oracle_BASE/admin//下的所有目錄,一般是udump, cdump, 



   bdump(這步可以省略,以後手工創建目錄也可以)
五.通過FTP或者別的工具將上述的備份文件,全部上傳到服務器B的相應目錄中。比如說原來在服務器A上$ORACLE_BASE/oradata/< SID>/system01.dbf,現在就上傳到服務器B上$Oracle_BASE/oradata/ /system01.dbf,保證目錄的邏輯結構一樣,實際上物理結構已經發生了變化(A上$ORACLE_BASE是/oracle,而B上是 /u01/Oracle)。其它的文件均作相同處理,如果服務器B上還沒有相應的目錄,那麼就手工創建。

六. 編輯上傳到服務器B上的init.ora文件,將其中涉及的目錄結構全部改為B中目前的目錄結構,比如本例中就是將/oracle改為/u01/Oracle。
七. 在服務器B上,sqlplus “/ as sysdba”,提示進入空閒進程。



八. 根據修改過的pfile創建spfile,create spfile from pfile;



九. 啟動數據庫到mount狀態,startup mount;



十. 修改control file中所有數據文件的位置,可以通過spool生成所有的SQL:



SQL> alter database rename file '/oracle/oradata/oraLinux/system01.dbf'



  2  to '/u01/Oracle/oradata/oraLinux/system01.dbf';



按照以上語法修改所有的數據文件位置。



十一. 此時數據庫已經可以使用了,alter database open;



十二. 將臨時文件添加到TEMP表空間中:



alter tablespace TEMP add tempfile 



‘'/u01/Oracle/oradata/oraLinux/temp01.dbf’ size 20M;
十三.還有一些後續工作,包括更新數據庫B上的監聽配置文件(其實可以不用管,因為9i的實例已經可以自動注冊到監聽程序上了,如果是先起監聽再起數據庫,那麼立刻就會注冊,如果是先起數據庫再起監聽,那麼會稍微有些延時才注冊),修改/etc/oratab文件,以能夠使用dbstart和dbshut腳本。 這樣數據庫就算完全轉移了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved