時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
主要介紹了oracle數(shù)據(jù)庫的數(shù)據(jù)遷移方法,詳細內(nèi)容請大家參考下文: 隨著數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)平臺的更新?lián)Q代的速度的加快,數(shù)據(jù)庫管理員經(jīng)常需要在兩個不同的數(shù)據(jù)庫之間或在兩種不同的系統(tǒng)平臺之間進行數(shù)據(jù)遷移。本文介紹了數(shù)據(jù)庫數(shù)據(jù)遷移的一般步驟以及實現(xiàn)向Oracle8i數(shù)據(jù)庫進行數(shù)據(jù)遷移的幾種方法,并對它們的優(yōu)缺點做了對比分析。 在開發(fā)環(huán)境向運行環(huán)境轉(zhuǎn)換、低版本數(shù)據(jù)庫向高版本數(shù)據(jù)庫轉(zhuǎn)換以及兩個不同數(shù)據(jù)庫之間進行轉(zhuǎn)換時,數(shù)據(jù)庫中的數(shù)據(jù)(包括結(jié)構(gòu)定義)需要被轉(zhuǎn)移并使之正常運行,這就是數(shù)據(jù)庫中的數(shù)據(jù)遷移。對于中小型數(shù)據(jù)庫,如Foxpro中的*.dbf,這種遷移非常簡單,一般只需通過簡單的Copy就能完成。但對于大型數(shù)據(jù)庫系統(tǒng),如Oracle 數(shù)據(jù)庫,數(shù)據(jù)遷移就不那么簡單了,它需要利用一定的技術(shù)和經(jīng)驗,有步驟按計劃地完成。
數(shù)據(jù)遷移的一般步驟 對數(shù)據(jù)庫管理人員來說,數(shù)據(jù)庫數(shù)據(jù)遷移極具挑戰(zhàn)性,一旦措施不當(dāng),珍貴的數(shù)據(jù)資源將面臨丟失的危險,要成功地實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)平滑遷移,需要周密計劃和充分準(zhǔn)備,并按照一定的步驟來完成。
設(shè)計數(shù)據(jù)遷移方案 設(shè)計數(shù)據(jù)遷移方案主要包括以下幾個方面工作:研究與數(shù)據(jù)遷移相關(guān)的資料,或在網(wǎng)站上查詢相關(guān)內(nèi)容、評估和選擇數(shù)據(jù)遷移的軟硬件平臺、選擇數(shù)據(jù)遷移方法、選擇數(shù)據(jù)備份和恢復(fù)策略、設(shè)計數(shù)據(jù)遷移和測試方案等。
進行數(shù)據(jù)模擬遷移 根據(jù)設(shè)計的數(shù)據(jù)遷移方案,建立一個模擬的數(shù)據(jù)遷移環(huán)境,它既能仿真實際環(huán)境又不影響實際數(shù)據(jù),然后在數(shù)據(jù)模擬遷移環(huán)境中測試數(shù)據(jù)遷移的效果。數(shù)據(jù)模擬遷移前也應(yīng)按備份策略備份模擬數(shù)據(jù),以便數(shù)據(jù)遷移后能按恢復(fù)策略進行恢復(fù)測試。
測試數(shù)據(jù)模擬遷移 根據(jù)設(shè)計的數(shù)據(jù)遷移測試方案測試數(shù)據(jù)模擬遷移,也就是檢查數(shù)據(jù)模擬遷移后數(shù)據(jù)和應(yīng)用軟件是否正常,主要包括:數(shù)據(jù)一致性測試、應(yīng)用軟件執(zhí)行功能測試、性能測試、數(shù)據(jù)備份和恢復(fù)測試等。
準(zhǔn)備實施數(shù)據(jù)遷移 數(shù)據(jù)模擬遷移測試成功后,在正式實施數(shù)據(jù)遷移前還需要做好以下幾個方面工作:進行完全數(shù)據(jù)備份、確定數(shù)據(jù)遷移方案、安裝和配置軟硬件等。
正式實施數(shù)據(jù)遷移 按照確定的數(shù)據(jù)遷移方案,正式實施數(shù)據(jù)遷移。
測試數(shù)據(jù)遷移效果 按照數(shù)據(jù)遷移測試方案測試數(shù)據(jù)遷移效果,并對數(shù)據(jù)遷移后的數(shù)據(jù)庫參數(shù)和性能進行調(diào)整,使之滿足數(shù)據(jù)遷移后實際應(yīng)用系統(tǒng)的需要。
移植系統(tǒng)應(yīng)用軟件 將實際應(yīng)用系統(tǒng)的應(yīng)用軟件移植到數(shù)據(jù)遷移后的數(shù)據(jù)庫系統(tǒng)上,并使之正常運行。
正式運行應(yīng)用系統(tǒng) 在正式實施數(shù)據(jù)遷移成功并且數(shù)據(jù)庫參數(shù)和性能達到要求后,就可以正式運行應(yīng)用系統(tǒng),并投入實際使用。
實現(xiàn)向Oracle8i數(shù)據(jù)遷移 Oracle數(shù)據(jù)庫數(shù)據(jù)遷移可以從一個版本遷移到另一個版本(即升級),也可以從一個主版本遷移到另一個主版本(即移植),例如從Oracle7遷移到Oracle8;可以從一個系統(tǒng)平臺遷移到另一個系統(tǒng)平臺,例如從Unix系統(tǒng)遷移到Windows NT系統(tǒng);也可以從非Oracle數(shù)據(jù)庫遷移到Oracle數(shù)據(jù)庫,例如從MS sql server遷移到 Oracle數(shù)據(jù)庫。在實現(xiàn)Oracle數(shù)據(jù)庫數(shù)據(jù)遷移前,需要了解以下幾個方面的問題:對數(shù)據(jù)庫系統(tǒng)的要求、對 Oracle數(shù)據(jù)庫DB_Block_Size的要求、對Oracle使用字符集的要求、對SQL*NET版本的要求、對操作系統(tǒng)平臺的要求等。 Oracle數(shù)據(jù)庫系統(tǒng)本身提供了實現(xiàn)Oracle數(shù)據(jù)庫數(shù)據(jù)遷移的多種工具,我們還可以利用PowerBuilder的數(shù)據(jù)管道功能實現(xiàn)Oracle數(shù)據(jù)庫數(shù)據(jù)遷移。
當(dāng)前Oracle數(shù)據(jù)庫的較舊版本是Oracle8i,以下介紹可以實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)遷移到Oracle8i的幾種方法:
方法1:移植實用程序(Migration Utility)
MIG是Oracle提供的用于Oracle數(shù)據(jù)庫之間數(shù)據(jù)遷移的命令行方式實用程序。使用MIG遷移Oracle7的數(shù)據(jù)到Oracle8i的一般步驟為:
設(shè)置 Oracle7數(shù)據(jù)庫環(huán)境變量,包括運行注冊表編輯器(regedit.exe)和控制面板,設(shè)置Oracle7主目錄、字符集和可執(zhí)行文件路徑等,并在DOS 命令提示符下設(shè)置Oracle_sid=Oracle7_sid,并正常關(guān)閉Oracle7數(shù)據(jù)庫。
運行Oracle8i的MIG應(yīng)用程序,生成一個轉(zhuǎn)換文件,用于數(shù)據(jù)庫轉(zhuǎn)換。
從Windows NT控制面板終止Oracle7數(shù)據(jù)庫服務(wù),并使用實例管理器刪除Oracle7數(shù)據(jù)庫服務(wù)。
設(shè)置Oracle8i數(shù)據(jù)庫環(huán)境變量,包括運行注冊表編輯器(regedit.exe)和控制面板,設(shè)置Oracle8i主目錄、字符集和可執(zhí)行文件路徑等;由oradim 命令使用Oracle7_sid和init.ora文件創(chuàng)建Oracle8i服務(wù);重新命名數(shù)據(jù)庫控制文件;編輯init.ora文件,設(shè)置compatible為8.1.5.0.0;刪除init.ora文件中不再使用的參數(shù);在DOS命令提示符下設(shè)置Oracle_Sid=Oracle8_sid。
實現(xiàn)數(shù)據(jù)遷移,以內(nèi)部用戶賬號連接服務(wù)器管理器;以非登錄方式啟動Oracle8i數(shù)據(jù)庫;由alter database covert命令生成新的控制文件,并把文件頭轉(zhuǎn)換為Oracle8i數(shù)據(jù)庫文件格式;由alter database open resetlog命令打開數(shù)據(jù)庫并且重新設(shè)置日志文件;由spool migscripts.log命令創(chuàng)建輸出目標(biāo)文件,該文件保存前面命令腳本文件的運行結(jié)果;運行u0703030.sql,當(dāng)使用數(shù)據(jù)庫高級復(fù)制功能選項時,運行Catrep.sql,當(dāng)使用Oracle Parallel Server選項時,運行catparr.sql;由spool out命令結(jié)束結(jié)果輸出,并關(guān)閉數(shù)據(jù)庫和備份數(shù)據(jù)庫。
#p#副標(biāo)題#e#
方法2:Oracle 數(shù)據(jù)移植助理(Oracle data Migration Assistant)
Oracle數(shù)據(jù)移植助手用于將Oracle7數(shù)據(jù)庫移植到 Oracle8數(shù)據(jù)庫。升級Oracle8數(shù)據(jù)庫較早版本到Oracle8數(shù)據(jù)庫新版本。Oracle數(shù)據(jù)移植助手不用于升級較低版本Oracle7數(shù)據(jù)庫到較高版本Oracle7數(shù)據(jù)庫。使用Oracle數(shù)據(jù)移植助手遷移Oracle7數(shù)據(jù)庫數(shù)據(jù)到Oracle8i的一般步驟是:
關(guān)閉Oracle7數(shù)據(jù)庫,終止所有Oracle數(shù)據(jù)庫服務(wù);編輯init.ora文件,設(shè)置compatible為8.1.5.0.0;刪除init.ora文件中不再使用的參數(shù)。
運行Oracle數(shù)據(jù)移植助手,在Database Instance頁,選擇移植的數(shù)據(jù)庫實例,輸人internal用戶賬號密碼,并提供init.ora文件位置;在Moving the Database頁,指定數(shù)據(jù)庫移植的新位置;如果用戶還沒有進行備份,在Backup the Database 頁,允許用戶進行數(shù)據(jù)庫備份;在Character Set頁,指定移植后的數(shù)據(jù)庫使用的字符集。
開始移植過程。移植過程需要的時間取決于系統(tǒng)內(nèi)存容量、硬盤速度、CPU速度等因素。
移植完成后,可以查看Migration Report頁,檢查移植是否成功執(zhí)行。如果移植沒有成功,應(yīng)當(dāng)把數(shù)據(jù)庫系統(tǒng)返回到備份的Oracle7數(shù)據(jù)庫。
編輯init.ora文件,添加在Oracle8i數(shù)據(jù)庫中會用到的參數(shù)。刪除在移植過程中用到的舊的控制文件。
當(dāng)使用數(shù)據(jù)庫高級復(fù)制功能選項時,運行catrep.sql;當(dāng)使用Oracle Parallel Server選項時,運行catparr.sql。方法3:導(dǎo)入/導(dǎo)出工具(Export/Import)
當(dāng)需要從一個非PC的系統(tǒng)平臺(例如,Unix系統(tǒng))遷移數(shù)據(jù)庫時,導(dǎo)人/導(dǎo)出方式是一種非常有用的策略,當(dāng)然相同系統(tǒng)平臺的數(shù)據(jù)遷移導(dǎo)人/導(dǎo)出方式同樣適用。采用導(dǎo)入/導(dǎo)出方式遷移Oracle7 Database on Unix到 Oracle8i Database on Windows NT數(shù)據(jù)庫的一般步驟是:
以正常方式關(guān)閉Unix系統(tǒng)的 Oracle7數(shù)據(jù)庫系統(tǒng),不要立即終止或者異常終止,然后冷備份數(shù)據(jù)庫。打開數(shù)據(jù)庫,使用導(dǎo)出工具(Export Utility)進行數(shù)據(jù)庫的完全導(dǎo)出。
在Windows NT系統(tǒng)安裝Oracle8i數(shù)據(jù)庫軟件并創(chuàng)建啟動數(shù)據(jù)庫。
使用FTP,將文件傳輸?shù)絎indows NT計算機。必須使用FTP的binary傳輸模式,否則,可能造成讀導(dǎo)出轉(zhuǎn)儲文件錯誤。
確認目標(biāo)數(shù)據(jù)庫在運行,并在DOS命令提示符下設(shè)置oracle_sid=Oracle8i_SID。
使用導(dǎo)出轉(zhuǎn)儲文件,執(zhí)行到目標(biāo)數(shù)據(jù)庫完全的導(dǎo)人。
查看導(dǎo)入日志文件,確認數(shù)據(jù)庫導(dǎo)入執(zhí)行成功。
方法4:SQl*Loader工具
SQL*Loader可以將ASCII文件中的數(shù)據(jù)裝入Oracle數(shù)據(jù)庫。ASCII文件中的信息可以來自不同的數(shù)據(jù)源,例如其他Oracle數(shù)據(jù)庫、非Oracle數(shù)據(jù)庫以及電子表格等。
采用SQl*Loader工具將數(shù)據(jù)遷移到Oracle數(shù)據(jù)庫的一般步驟有:
使用文本文件編輯器創(chuàng)建控制文件。
在DOS命令行下使用sqlldr命令裝載數(shù)據(jù)文件。
驗證數(shù)據(jù)是否正確裝載。方法5:SQL*PLUS COPY 命令
使用SQL*PLUS COPY命令,遷移Oracle7數(shù)據(jù)庫到 Oracle8i與導(dǎo)人/導(dǎo)出方式相似,但是,此時需要兩個數(shù)據(jù)庫都在線,其一般步驟是:
首先安裝Oracle8i數(shù)據(jù)庫,并創(chuàng)建一個數(shù)據(jù)庫作為目標(biāo)數(shù)據(jù)庫。
添加所需的表空間和用戶到目標(biāo)數(shù)據(jù)庫中;安裝所需的SQL*Net2或者Net8軟件,并配置用于連接數(shù)據(jù)庫的別名。
在DOS命令提示符下設(shè)置oracle_sid=Oracle7_sid。
以Internal用戶賬號連接SQL*PLUS。
創(chuàng)建一個從Oracle7數(shù)據(jù)庫到Oracle8i數(shù)據(jù)庫的數(shù)據(jù)庫鏈接;使用SQL*PLUS COPY命令從Oracle7數(shù)據(jù)庫復(fù)制表和表內(nèi)容到Oracle8i數(shù)據(jù)庫。
將視圖、同義詞、存儲過程等添加到目標(biāo)數(shù)據(jù)庫。
方法6:PowerBuilder數(shù)據(jù)管道工具(Pipeline)
PowerBuilder數(shù)據(jù)管道工具是PowerBuilder提供的一個用于轉(zhuǎn)換數(shù)據(jù)的智能對象,它可以在圖形方式下實現(xiàn)不同類型數(shù)據(jù)庫間的數(shù)據(jù)遷移而無需SQL 編程。PowerBuilder數(shù)據(jù)管道的操作是在圖形方式下實現(xiàn)的,因此比較簡單,其一般步驟是:
啟動PowerBuilder。
點擊工具欄上的"DBProfile"按鈕,通過ODBC或?qū)S媒涌谂渲迷春湍繕?biāo)數(shù)據(jù)庫連接,同時連接到源和目標(biāo)數(shù)據(jù)庫。
單擊工具欄上的"Pipeline"按鈕,建一個新的數(shù)據(jù)管道,確定好源和目標(biāo)數(shù)據(jù)庫。
選擇要傳輸數(shù)據(jù)的表,并根據(jù)需要選
關(guān)鍵詞標(biāo)簽:Oracle數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制
人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限