Oracle資料庫的資料移轉方法

來源:互聯網
上載者:User

Oracle資料庫的資料移轉方法

---- 隨著資料庫管理系統和作業系統平台的更新換代的速度的加快,資料庫管理員經常需要在兩個不同的資料庫之間或在兩種不同的系統平台之間進行資料移轉。本文介 紹了資料庫資料移轉的一般步驟以及實現向Oracle8i資料庫進行資料移轉的幾種方法,並對它們的優缺點做了對比分析。

----在開發環境向運行環境轉換、低版本資料庫向高版本資料庫轉換以及兩個不同資料 庫之間進行轉換時,資料庫中的資料(包括結構定義)需要被轉移並使之正常運行,這就是資料庫中的資料移轉。對於中小型資料庫,如Foxpro中的 *.dbf,這種遷移非常簡單,一般只需通過簡單的Copy就能完成。但對於大型資料庫系統,如Oracle 資料庫,資料移轉就不那麼簡單了,它需要利用一定的技術和經驗,有步驟按計劃地完成。

資料移轉的一般步驟

----對資料庫管理員來說,資料庫資料移轉極具挑戰性,一旦措施不當,珍貴的資料資源將面臨丟失的危險,要成功地實現資料庫資料平滑遷移,需要周密計劃和充分準備,並按照一定的步驟來完成。

----設計資料移轉方案

----設計資料移轉方案主要包括以下幾個方面工作:研究與資料移轉相關的資料,或在網站上查詢相關內容、評估和選擇資料移轉的軟硬體平台、選擇資料移轉方法、選擇資料備份和恢複策略、設計資料移轉和測試方案等。

----進行資料類比遷移

----根據設計的資料移轉方案,建立一個類比的資料移轉環境,它既能模擬實際環境又不影響實際資料,然後在資料類比遷移環境中測試資料移轉的效果。資料類比遷移前也應按備份策略備份類比資料,以便資料移轉後能按恢複策略進行恢複測試。

----測試資料類比遷移

----根據設計的資料移轉測試方案測試資料類比遷移,也就是檢查資料類比遷移後資料和應用軟體是否正常,主要包括:資料一致性測試、應用軟體執行功能測試、效能測試、資料備份和恢複測試等。

----準備實施資料移轉

----資料類比遷移測試成功後,在正式實施資料移轉前還需要做好以下幾個方面工作:進行完全資料備份、確定資料移轉方案、安裝和配置軟硬體等。

----正式實施資料移轉

----按照確定的資料移轉方案,正式實施資料移轉。

----測試資料移轉效果

----按照資料移轉測試方案測試資料移轉效果,並對資料移轉後的資料庫參數和效能進行調整,使之滿足資料移轉後實際應用系統的需要。

----移植系統應用軟體

----將實際應用系統的應用軟體移植到資料移轉後的資料庫系統上,並使之正常運行。

----正式運行應用系統

----在正式實施資料移轉成功並且資料庫參數和效能達到要求後,就可以正式運行應用系統,並投入實際使用。

實現向Oracle8i資料移轉

----Oracle資料庫資料移轉可以從一個版本遷移到另一個版本(即升級),也可以從一個主要版本遷移到另一個主要版本(即移植),例如從Oracle7遷移到Oracle8;可以從一個系統平台遷移到另一個系統平台,例如從Unix系統遷移到Windows NT系統;也可以從非Oracle資料庫遷移到Oracle資料庫,例如從MS SQL Server遷移到 Oracle資料庫。在實現Oracle資料庫資料移轉前,需要瞭解以下幾個方面的問題:對資料庫系統的要求、對 Oracle資料庫DB_Block_Size的要求、對Oracle使用字元集的要求、對SQL*NET版本的要求、對作業系統平台的要求等。

----Oracle資料庫系統本身提供了實現Oracle資料庫資料移轉的多種工 具,我們還可以利用PowerBuilder的資料管道功能實現Oracle資料庫資料移轉。當前Oracle資料庫的較新版本是Oracle8i,以下 介紹可以實現資料庫資料移轉到Oracle8i的幾種方法:

----方法1:移植公用程式(Migration Utility)

----MIG是Oracle提供的用於Oracle資料庫之間資料移轉的命令列方式公用程式。使用MIG遷移Oracle7的資料到Oracle8i的一般步驟為:

----☆ 設定 Oracle7資料庫環境變數,包括運行登錄編輯程式(regedit.exe)和控制台,設定Oracle7主目錄、字元集和可執行檔路徑等,並在DOS 命令提示字元下設定Oracle_sid=Oracle7_sid,並正常關閉Oracle7資料庫。

----☆ 運行Oracle8i的MIG應用程式,產生一個轉換檔,用於資料庫轉換。

----☆ 從Windows NT控制台終止Oracle7資料庫服務,並使用執行個體管理器刪除Oracle7資料庫服務。

----☆ 設定Oracle8i資料庫環境變數,包括運行登錄編輯程式(regedit.exe)和控制台,設定Oracle8i主目錄、字元集和可執行檔路徑 等;由oradim 命令使用Oracle7_sid和init.ora檔案建立Oracle8i服務;重新命名資料庫控制檔案;編輯init.ora檔案,設定 compatible為8.1.5.0.0;刪除init.ora檔案中不再使用的參數;在DOS命令提示字元下設定Oracle_Sid= Oracle8_sid。

----☆ 實現資料移轉,以內部使用者帳號串連伺服器管理員;以非登入方式啟動Oracle8i資料庫;由alter database covert命令產生新的控制檔案,並把檔案頭轉換為Oracle8i資料庫檔案格式;由alter database open resetlog命令開啟資料庫並且重新設定記錄檔;由spool migscripts.log命令建立輸出目標檔案,該檔案儲存前面命令指令檔的運行結果;運行u0703030.sql,當使用資料庫進階複製功能選項時,運行Catrep.sql,當使用Oracle Parallel Server選項時,運行catparr.sql;由spool out命令結束結果輸出,並關閉資料庫和備份資料庫。

----☆ 查看migscripts.out spool檔案,確認指令檔執行成功,如果指令檔沒有成功執行,返回到指令檔,檢查可能出現的問題。

----方法2:Oracle 資料移植助理(Oracle data Migration Assistant)

----Oracle資料移植助手用於將Oracle7資料庫移植到 Oracle8資料庫。升級Oracle8資料庫較早版本到Oracle8資料庫新版本。Oracle資料移植助手不用於升級較低版本Oracle7資料 庫到較高版本Oracle7資料庫。使用Oracle資料移植助手遷移Oracle7資料庫資料到Oracle8i的一般步驟是:

----☆ 關閉Oracle7資料庫,終止所有Oracle資料庫服務;編輯init.ora檔案,設定compatible為8.1.5.0.0;刪除init.ora檔案中不再使用的參數。

----☆ 運行Oracle資料移植助手,在Database Instance頁,選擇移植的資料庫執行個體,輸人internal使用者帳號密碼,並提供init.ora檔案位置;在Moving the Database頁,指定資料庫移植的新位置;如果使用者還沒有進行備份,在Backup the Database 頁,允許使用者進行Database Backup;在Character Set頁,指定移植後的資料庫使用的字元集。

----☆ 開始移植過程。移植過程需要的時間取決於系統記憶體容量、硬碟速度、CPU速度等因素。

----☆ 移植完成後,可以查看Migration Report頁,檢查移植是否成功執行。如果移植沒有成功,應當把資料庫系統返回到備份的Oracle7資料庫。

----☆ 編輯init.ora檔案,添加在Oracle8i資料庫中會用到的參數。刪除在移植過程中用到的舊的控制檔案。

----☆ 當使用資料庫進階複製功能選項時,運行catrep.sql;當使用Oracle Parallel Server選項時,運行catparr.sql。

----方法3:匯入/匯出工具(Export/Import)

----當需要從一個非PC的系統平台(例如,Unix系統)遷移資料庫時,導人/匯出方式是一種非常有用的策略,當然相同系統平台的資料移轉導人/匯出方式同樣適用。採用匯入/匯出方式遷移Oracle7 Database on Unix到 Oracle8i Database on Windows NT資料庫的一般步驟是:

----☆ 以正常方式關閉Unix系統的 Oracle7資料庫系統,不要立即終止或者異常終止,然後冷備份資料庫。開啟資料庫,使用匯出工具(Export Utility)進行資料庫的完全匯出。

----☆ 在Windows NT系統安裝Oracle8i資料庫軟體並建立啟動資料庫。

----☆ 使用FTP,將檔案傳輸到Windows NT電腦。必須使用FTP的binary傳輸模式,否則,可能造成讀匯出轉儲檔案錯誤。

----☆ 確認目標資料庫在運行,並在DOS命令提示字元下設定oracle_sid=Oracle8i_SID。

----☆ 使用匯出轉儲檔案,執行到目標資料庫完全的導人。

----☆ 查看匯入記錄檔,確認資料庫匯入執行成功。

----方法4:SQl*Loader工具

----SQL*Loader可以將ASCII檔案中的資料裝入Oracle資料庫。ASCII檔案中的資訊可以來自不同的資料來源,例如其他Oracle資料庫、非Oracle資料庫以及試算表等。

----採用SQl*Loader工具將資料移轉到Oracle資料庫的一般步驟有:

----☆ 使用文字檔編輯器建立控制檔案。

----☆ 在DOS命令列下使用sqlldr命令裝載資料檔案。

----☆ 驗證資料是否正確裝載。

----方法5:SQL*PLUS COPY 命令

----使用SQL*PLUS COPY命令,遷移Oracle7資料庫到 Oracle8i與導人/匯出方式相似,但是,此時需要兩個資料庫都線上,其一般步驟是:

----☆ 首先安裝Oracle8i資料庫,並建立一個資料庫作為目標資料庫。

----☆ 添加所需的資料表空間和使用者到目標資料庫中;安裝所需的SQL*Net2或者Net8軟體,並配置用於串連資料庫的別名。

----☆ 在DOS命令提示字元下設定oracle_sid=Oracle7_sid。

----☆ 以Internal使用者帳號串連SQL*PLUS。

----☆ 建立一個從Oracle7資料庫到Oracle8i資料庫的資料庫連結;使用SQL*PLUS COPY命令從Oracle7資料庫複寫表和表內容到Oracle8i資料庫。

----☆ 將視圖、同義字、預存程序等添加到目標資料庫。

----方法6:PowerBuilder資料管道工具(Pipeline)

----PowerBuilder資料管道工具是PowerBuilder提供的一個用於轉換資料的智能對象,它可以在圖形方式下實現不同類型資料庫間的資料移轉而無需SQL 編程。PowerBuilder資料管道的操作是在圖形方式下實現的,因此比較簡單,其一般步驟是:

----☆ 啟動PowerBuilder。

----☆ 點擊工具列上的“DBProfile"按鈕,通過ODBC或專用介面配置源和目標資料庫連接,同時串連到源和目標資料庫。

----☆ 單擊工具列上的“Pipeline"按鈕,建一個新的資料管道,確定好源和目標資料庫。

----☆ 選擇要傳輸資料的表,並根據需要選中想傳輸的列。

----☆ 選擇資料移轉方式,Create-AddTable(在目標庫中建立一個新表並複製資料)、Replace-Drop/AddTable(刪除舊錶並複製資料)、Refresh -DeleteRows(刪除表中的現有資料並複製資料)、Append-InsertRows(在現有資料基礎上增加新資料)、Update-Update/InsertRows(新增資料的索引值如果與現有資料某行的索引值一樣則覆蓋現有資料,否則插入新資料)。

----☆ 單擊“Execute"按鈕運行定義好的資料管道完成資料移轉。

幾種資料移轉方法的比較

----以上介紹了幾種Oracle資料移轉的方法,它們各有特點,下表給出了它們的適用場合以及優缺點的對比分析,僅供參考。

文章引用自:

評論(0) 引用 閱讀(119) 圈子 編輯 列印 有獎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.