oracle 資料遷移案例 從 8.1.7.4到9.2.0.8

paulyibinyi發表於2008-10-24

舊資料庫環境 作業系統為alpha 資料庫版本為8.1.7.4 使用者名稱 oracle  ip地址 192.168.1.1 資料庫例項名為orcl 
 需要遷移到IBM aix 5308 資料庫版本為 oracle 9.2.0.8 使用者名稱為oracle ip地址為192.168.1.12資料庫例項名為orcl  

遷移完成後,需要改回原先用的ip地址


遷移大概步驟:
第一步:資料遷移
舊庫:
1。收集資訊(包括表空間指令碼 需要在新庫建立同樣表空間用到,包括大小)
2。通知客戶停舊庫相關的應用
3。停listener  listener stop
4。檢查job引數 停相關job
   show parameter job
   已經為0
5。停資料庫,再啟動一次資料庫,檢查是否還有session連線,用以下sql檢查
   select username,count(*) from v$session group by username; 無的話 進行下步資料匯出
6。vi exp.sh
   export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
   exp system/password full=y file=/oldxz/exp_full_xz1022.dmp log=/oldxz/exp_full_xz1022.log buffer=4096000 feedback=5000 compress=n recordlength=65535
   nohup ./exp.sh &   放到後臺進行 注意按回車
7。匯出完成後 檢查log 是否正常 透過檢查 匯出16G資料檔案 花了三個多小時
8。複製tnsnames.ora到/oldxz目錄


新庫: 因為是新機器,需要安裝 oracle軟體,打補丁,建立資料庫需要用到的lv裸裝置,建立資料庫,建立原庫需要用到的表空間
1.安裝oracle軟體
2.打9.2.0.8補丁
3.建立lv 裸裝置
4.建立資料庫,生成建庫指令碼  --注意字符集要和原庫一致
5.建立表空間
6.匯入資料
  imp system/password full=y file=/oldxz/exp_full_xz1022.dmp log=/oldxz/imp_full_xz1022.log buffer=4096000 feedback=5000 commit=y
  recordlength=65535 ignore=y  匯入時間用了一個小時左右 因為是新儲存,速度比較塊 每秒達到100多M
7.匯入完成後 檢查log 是否正常
8.編譯無效物件
  cd $ORACLE_HOME/rdbms/admin/utrlp.sql
  sqlplus "/as sysdba"
  @ utlrp.sql
9.複製/oldxz/下的tnsnames.ora到$ORACLE_HOME/network/admin目錄下
10.配置listener
11.檢查兩邊失效物件是否一致,也可用toad工具進行檢查
   SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS='INVALID' ORDER BY OWNER,OBJECT_NAME ;
   要是舊庫正常 ,而新庫不正常 就要在新庫解決這些失效的物件
   這次遇到的問題 是sys的許可權在新庫中沒有賦予對應的使用者,因為是用system使用者匯出和匯入
   用以下sql在原庫進行進行檢查
   SELECT * FROM dba_tab_privs WHERE GRANTOR='SYS';
   查出來後,在新庫賦予許可權給對應的使用者
   GRANT SELECT ON V_$DATAFILE to test;
   GRANT SELECT ON V_$FILESTAT to test;
   GRANT SELECT ON V_$LATCH to test;
   GRANT SELECT ON V_$LIBRARYCACHE to test;
   GRANT SELECT ON V_$LOCK to test;
   GRANT SELECT ON V_$LOCKED_OBJECT to test;
   GRANT SELECT ON V_$PARAMETER to test;
   GRANT SELECT ON V_$PROCESS to test;
   GRANT SELECT ON V_$ROLLNAME to test;
   GRANT SELECT ON V_$ROLLSTAT to test;
   GRANT SELECT ON V_$ROWCACHE to test;
   GRANT SELECT ON V_$SESSION to test;
   GRANT SELECT ON V_$SGA to test;
   GRANT SELECT ON V_$SQLTEXT to test;
   GRANT SELECT ON V_$SYSSTAT to test;
12.在新庫檢查db_link用到的相關tns,用tnsping測試是否正常連線
   和相關使用者登入進去,看連線到 dblink 看是否能正常查詢
   dblink檢視名稱dba_db_links
   conn test/aaa
   select * from
13.啟監聽和資料庫
14.通知客戶測試下應用在新庫臨時ip 192.168.1.2  下是否正常 測試透過


第二步 切換ip,生產正式啟用到新ip上
舊庫操作:
 shutdown 資料庫
 和關掉主機

新庫操作
  停 lsnrctl 和資料庫
 
  smitty tcp/ip 由192.168.1.2改為192.168.1.1

  改完後 啟動資料庫和監聽
 
  完成切換 正式啟用
繼續觀察應用看是否正常

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

相關文章