熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

用Oracle導入導出工具實現Oracle數據庫移植

2013-11-13 15:55:34  來源: Oracle 

  Oracle數據庫作為目前市場的主流數據庫之一許多應用都在其上進行開發由於Oracle數據庫更新換代的原因和不同的應用程序提供商可能會造成在一個單位的應用中存在Oracle的幾種版本如Oracle Oracle Oracle i甚至Oracle i而考慮到數據庫集中維護備份的方便性和避免設備的重復投資在應用能兼容的情況下將幾個版本的Oracle數據庫移植到一個主流版本上是數據庫管理員的一個較優的選擇
  這就存在從Oracle數據庫的低版本移植到高版本和從Oracle數據庫的高版本移植到低版本的問題甚至包括系統平台的遷移如從Windows NT系統遷移到Unix系統利用Oracle導入/導出工具(Export/Import)能比較方便實現上述移植操作
  Oracle導入/導出工具(Export/Import)主要是用來對數據庫進行邏輯備份利用Export導出數據庫的轉儲二進制文件作為數據庫Import輸入從而達到移植的目的有二個規則可以參考
  規則一從Oracle 低版本的Export數據可以Import到Oracle高版本中但限於Oracle的相鄰版本如從Oracle 到 Oracle 對於兩個不相鄰版本間進行轉換如從Oracle 到 Oracle 則應先將數據輸入到中間版本—Oracle 再從中間數據庫轉入更高版本
  規則二Oracle的Export/Import工具只能連接到擁有更高或者一樣的Export/Import版本的數據庫如Oracle 的Export/Import(版本)可連接到Oracle 數據庫(版本高版本的Export導出來的轉儲文件低版本的Import讀不了低版本的Export導出來的轉儲文件高版本的Import可以進行讀取
  利用上面兩個規則下面就本人在為一單位用Oracle的導入/導出工具(Export/Import)進行此種移植碰到的問題提出來與大家分享希望能起到拋磚引玉的作用
  此單位擁有Oracle數據庫版本有Oracle For NTOracle For NTOracle For Digital UnixOracle For NT
  考慮到Oracle For Digital Unix運行在小型機上單位的備份系統也是針對此小型機決定將Oracle For NTOracle For NTOracle For NT的數據庫都移植到Oracle For Digital Unix上
  Oracle For NT移植
  因版本相差甚小開始直接用Oracle的exp導出數據庫的轉儲文件然後用FTP(binary傳輸模式)直接上傳至Oracle 所在的小型機再用Oracle 的imp導入一直有字符集的問題即存有漢字的字段顯示的都是?????? 移植失敗後發現在Oracle服務器上直接用Oracle的imp對exp導出的轉儲文件進行遠程導入字符集的問題解決移植成功
  對於使用Oracle For Digital Unix的用戶提醒一句最好不要用Oracle For Digital Unix的expimp工具做備份而應用此版本的Windows客戶端程序expimp本人曾做過實驗在Oracle for Digital UNIN數據庫上新建一用戶(user)和一個表格(table)通過sql plus客戶端在表格的列中插入一些中文行提交後用exp 數據導出再用imp數據導入用sql plus客戶端查看表中的中文值顯示為???
  
  Oracle 移植
  直接用Oracle的export導出數據庫的轉儲文件拷至Oracle服務器然後用Oracle服務器的imp直接導入至Oracle 數據庫此移植就變成了Oracle For NT移植至Oracle For Digital Unix的移植
  
  Oracle For NT移植
  初步設想也通過Oracle 進行過度因其版本比Oracle 下面對參考的規則進行一些校驗
  高版本的Export導出來的轉儲文件低版本的Import讀不了
  在Oracle 數據庫服務器導出轉儲二進制文件oradmp
  在Oracle 數據庫服務器上用Imp進行導入
  D:>Imp house/password file=d:\ oradmp log=d:\oralog full=y
  /*日志顯示*/
  已連接到Oracle Release – Production
  PL/SQL Release – Production
  IMP: 不是有效的導出文件標題檢驗失敗
  IMP: 操作系統錯誤 錯誤代碼(十進制十六進制x
  IMP: 未成功終止導入
   Oracle的Export/Import工具只能連接到擁有更高或者一樣的Export/Import版本的數據庫
  a)Oracle 遠程數據導入
  在Oracle 數據庫服務器導出轉儲二進制文件oradmp
  在Oracle 數據庫服務器向Oracle數據庫進行數據遠程導入
  D:>Imp house/password@orclfromto file=d:\ oradmp log=d:\oralog full=y
  (orclfromto為數據庫連接字符串由Oracle數據庫指向 Oracle數據庫)
  /*日志顯示*/
  連接到: Oracle Release – Production
  PL/SQL Release – Production
  ……
  經由常規路徑導出由EXPORT:V創建的文件
  已經完成ZHSGBK字符集和ZHSGBK NCHAR 字符集中的導入
  IMP: ORACLE 錯誤出現
  ORA: 無效的 ALTER SESSION 選項
  IMP: 未成功終止導入
  
  b)在Oracle 數據庫服務器上用exp對Oracle 數據庫進行遠程導出
  D:>exp house/password@orclfromto file=d:\oradmp log=d:\oralog
  (orclfromfromto為數據庫連接字符串由Oracle數據庫指向Oracle數據庫)
  /*日志顯示*/
  連接到Oraclei Enterprise Edition Release – Production
  With the Partitioning option
  JServer Release – Production
  已導出ZHSGBK字符集和ZHSGBK NCHAR 字符集
  即將導出指定的用戶
  ……
  在沒有警告的情況下成功終止導出
  
  再對遠程導出的轉儲文件在Oracle 數據庫服務器上用imp導入
  D:>imp house/password file=d:\oradmp full=y log=d:\ora _ilog
  顯示成功導入
  此刻此移植就變成了Oracle For NT移植至Oracle For Digital Unix的移植
  
  利用Oracle的Oracle導入/導出工具(Export/Import)除了可進行數據庫邏輯備份數據庫移植還可以用來提高數據庫的性能對數據庫進行一次導入/導出操作能重新組織數據消除數據庫的碎片從而使數據庫的性能有較大的提高

From:http://tw.wingwit.com/Article/program/Oracle/201311/17528.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.