SQL數(shù)據(jù)庫遷移至ORA_第1頁
SQL數(shù)據(jù)庫遷移至ORA_第2頁
SQL數(shù)據(jù)庫遷移至ORA_第3頁
SQL數(shù)據(jù)庫遷移至ORA_第4頁
SQL數(shù)據(jù)庫遷移至ORA_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

使用OracleSqlDeveloper將SQLSERVER2008數(shù)據(jù)庫移植到Ora...使用手工轉(zhuǎn)換SQL腳本的方式進行數(shù)據(jù)庫的遷移,其間過程相當(dāng)繁瑣,特別是標(biāo)識符長度的限制讓我焦頭爛額,因為我們的系統(tǒng)中長標(biāo)識符真是多如繁星,另外,表結(jié)構(gòu)建好之后,數(shù)據(jù)的遷移又是一個相當(dāng)復(fù)雜的過程,因為修改了不少的表名,需要把導(dǎo)出的數(shù)據(jù)和表一一對應(yīng)上。但是,除了手工的方式之外,其實我們還有更為簡便和自動化的解決方案,那就是ORACLE官方提供的SqlDeveloper自帶的OracleMigrationWorkbench。什么是OracleSQLDeveloper?在官方頁面上,是這樣介紹它的:OracleSQLDeveloperisafreeandfullysupportedgraphicaltoolfordatabasedevelopment.WithSQLDeveloper,youcanbrowsedatabaseobjects,runSQLstatementsandSQLscripts,andeditanddebugPL/SQLstatements.Youcanalsorunanynumberofprovidedreports,aswellascreateandsaveyourown.SQLDeveloperenhancesproductivityandsimplifiesyourdatabasedevelopmenttasks.另外,通過第三方驅(qū)動包,該工具還支持連接和管理各種主流數(shù)據(jù)庫服務(wù)器。下面就把我使用這個工具遷移MicrosoftSQLServer2008數(shù)據(jù)庫到Oracle11G的過程記錄下來,為了積累也為分享。第一部分:獲取工具第二部分:建立資料檔案庫(MigrationRepository)第三部分:數(shù)據(jù)庫移植向?qū)?/p>

第四部分:SqlServer中的架構(gòu)到Oracle中的模式,名稱的處理第五部分:轉(zhuǎn)移數(shù)據(jù)第六部分:存儲過程和函數(shù)首先,當(dāng)然是獲得工具,該工具在OracleSqlDeveloper官方下載頁面里面可以直接下載到。Windows32位直連地址:Windows32bitSqlDeveloper。OracleSqlDeveloper需要JDK的支持,在下載頁面中提供了包含JDK的下載包,還有支持各種操作系統(tǒng)的下載選項。下載后,解壓到任意位置。直接運行程序。第一次運行,需要指定JDK的目錄。啟動后,我們要做的第一件事,不干別的,先下載SQLSERVER的驅(qū)動程序。點擊菜單幫助,選擇檢查更新,彈出檢查更新向?qū)Т翱?,第一頁一般是廢話,直接下一步,等更新中心列表加載完畢后,只選擇"ThirdPartySQLDeveloperextensions”,點擊下一步,等待更新搜索完畢后,中列表中找到并選中JTDSJDBCDriver,如下圖:更新吁抑使用更新下我觸萼以下申新可用。請暢沓蘿寺裝的審新口Fout+LlELepliuitiErrorLookiLp更新吁抑使用更新下我觸萼以下申新可用。請暢沓蘿寺裝的審新口Fout+LlELepliuitiErrorLookiLpPlugin.0_7Errorlookuppl口氏inFor*JraeleSQLDeveloper未白南心:ThirdFartvSQLDeveloperExtensions詳細(xì)甕料41IFoiur-lliLElepl.UL'tTilsid?rPliLginInsid_erforOracle來白中心;ThirdPartySQLJweMmr3.2Extaui口皿詳細(xì)甕料EJI?SJDBCDx£ver11.1.1.58.17JIBSJTElDriverforMierdEaftSQLSarver來白中心;ThirdPartySQLleveloperExtensinks詳細(xì)資料可用更新廷〕:幫助?Metkod.RTi-^iceforSQLDeveZLapei-1.0MsthfidKTraefiis急clickOr+rs.Ci5filsl壬細(xì)簽料collector.EverytimeyonexecuteSQLorPL/SQLfromyourSQLlEv色1??谏玶*orkMhE@LMRTr?c營如色callitMigt&r7下一步,在許可協(xié)議頁面,點擊“我同意"按鈕后再點下一步,等下載完畢后關(guān)閉窗口,彈出提示需要重啟程序才能完成更新,點擊"是”。等程序重啟完畢。環(huán)境準(zhǔn)備完畢,開始進入到正題移植數(shù)據(jù)庫。建立資料檔案庫(MigrationRepository)一、連接到Oracle在程序左邊的連接窗口中,點擊加號按鈕,添加一個到Oracle數(shù)據(jù)庫的dba連接,如下圖:

配置完成后,點擊連接按鈕,連接到數(shù)據(jù)庫。二,建立用戶打開到Oracle數(shù)據(jù)的連接,新建一個用戶,我們要在該用戶的模式中建立所謂的"資料檔案庫”,并使用該用戶去建立SQLServer移植后的用戶名,以及做其它的一些工作。按照幫助中的說明,這個用戶最少需要以下權(quán)限和角色:RolesCONNECTWITHADMINOPTION,RESOURCEWITHADMINOPTIONPrivilegesALTERANYROLE,ALTERANYSEQUENCE,ALTERANYTABLE,ALTERTABLESPACEALTERANYTRIGGER,COMMENTANYTABLE,CREATEANYSEQUENCE,CREATEANYTABLE,CREATEANYTRIGGER,CREATEVIEWWITHADMINOPTION,CREATEPUBLICSYNONYMWITHADMINOPTION,CREATEROLECREATEUSER,DROPANYSEQUENCE,DROPANYTABLE,DROPANYTRIGGER,DROP

USER,DROPANYROLE,GRANTANYROLE,INSERTANYTABLE,SELECTANYTABLEUPDATEANYTABLE以下語句直接建立一個名為migrations的用戶:--CreatetheusercreateuserMIGRATIONSidentifiedbyMIGRATIONSdefaulttablespaceUSERStemporarytablespaceTEMPprofileDEFAULT;--Grant/RevokeroleprivilegesgrantconnecttoMIGRATIONSwithadminoption;grantresourcetoMIGRATIONSwithadminoption;--Grant/RevokesystemprivilegesgrantalteranyroletoMIGRATIONS;grantalteranysequencetoMIGRATIONS;grantalteranytabletoMIGRATIONS;grantalteranytriggertoMIGRATIONS;grantaltertablespacetoMIGRATIONS;grantcommentanytabletoMIGRATIONS;grantcreateanysequencetoMIGRATIONS;grantcreateanytabletoMIGRATIONS;grantcreateanytriggertoMIGRATIONS;

grantcreateanyviewtoMIGRATIONS;grantcreatematerializedviewtoMIGRATIONSwithadminoption;grantcreatepublicsynonymtoMIGRATIONSwithadminoption;grantcreateroletoMIGRATIONS;grantcreatesessiontoMIGRATIONSwithadminoption;grantcreatesynonymtoMIGRATIONSwithadminoption;grantcreatetablespacetoMIGRATIONS;grantcreateusertoMIGRATIONS;grantcreateviewtoMIGRATIONSwithadminoption;grantdropanyroletoMIGRATIONS;grantdropanysequencetoMIGRATIONS;grantdropanytabletoMIGRATIONS;grantdropanytriggertoMIGRATIONS;grantdroptablespacetoMIGRATIONS;grantdropusertoMIGRATIONS;grantgrantanyroletoMIGRATIONS;grantinsertanytabletoMIGRATIONS;grantselectanytabletoMIGRATIONS;grantunlimitedtablespacetoMIGRATIONSwithadminoption;grantupdateanytabletoMIGRATIONS;再次點擊連接中的加號按鈕,添加一個使用剛剛新建立的用戶的連接。

連接后,在該連接上點擊右鍵,選擇移植資料檔案庫-關(guān)聯(lián)移植資料檔案庫,程序會在該用戶下建立移植資料檔案庫所需要的表、存儲過程等等,彈出一個對話框顯示當(dāng)前建立的進度,稍等片刻即建立完畢。數(shù)據(jù)庫移植向?qū)б唬⒌皆碨qlServer數(shù)據(jù)庫的連接在連接窗口中,點擊綠色加號按鈕,打開連接配置窗口,按下圖建立到SqlServer的連接:

因為動態(tài)商品的使用,使得原來SqlServer配置頁中默認(rèn)的1433往往沒有辦法連接到SqlServer2008數(shù)據(jù)庫,修改為1434即可。二、啟動數(shù)據(jù)庫移植向?qū)Ы⒌絊qlServer的連接后,開始對數(shù)據(jù)庫進行移植。有兩個地方可以啟動數(shù)據(jù)庫移植向?qū)?,一個是在新建的SqlServer連接上點擊右鍵,選擇移植到Oracle,另一個是在菜單工具-移植-移植,啟動向?qū)Ш螅谝豁摦?dāng)然是向?qū)У暮喗?,通過簡介,我們可以知道整個移植過程有7步,并且有兩個先決條件,如下圖:使用此向?qū)Э蓪⒌谌綌?shù)據(jù)庫移植到Oracle可在聯(lián)機或脫機模式下抑行數(shù)據(jù)庫移植忘要執(zhí)行聯(lián)機移植,乘要與第三方數(shù)據(jù)庫保持活動連榜令移植過程涉及以下步驟。1.啟動與移植資料檔案庫的Oracle連接。中創(chuàng)建一個移植項目以用作移植實體的答器將源數(shù)據(jù)庫元信息捕獲至移植資料檔案庫。將捕獲的無信息轉(zhuǎn)換為Oracle特定的元信息。從轉(zhuǎn)換的元信息生成Oracle教據(jù)庫削建醐本。6生成皈皿數(shù)據(jù)庫創(chuàng)建腳本,7.將教據(jù)M源教據(jù)庫移到新創(chuàng)建的詢心恥數(shù)據(jù)庫下面是連挨極限先決粲件口資料檔案庫連接-Connect,Eesource和CreateVie?用干創(chuàng)建數(shù)據(jù)座的目標(biāo)諄傍-直接點擊下一步三、選擇資料檔案庫在這個頁面中,我們也可以去建立連接和資料檔案庫,也就是前一部分中我們所做的工作在這里也可以進行。當(dāng)然選擇我們剛剛建立的migrations連接,如下圖

這里截斷的意思是將資料檔案庫清空,我們建立一個移植項目后,所有抓取的數(shù)據(jù)庫結(jié)構(gòu)信息、統(tǒng)計信息還有轉(zhuǎn)換記錄等都保存在這個資料檔案庫中,只要項目名稱不同,即使不清空資料檔案庫也不會影響到移植工作。當(dāng)然,如果希望更"清爽”一點,也可以勾選。這是后話。四、為轉(zhuǎn)換項目命名選擇好資料檔案庫后,點擊下一步,為我們的轉(zhuǎn)換項目輸入名稱和備注,以便識別。另外,還需要指定腳本生成目錄,用于存放向?qū)?zhí)行過程中生成的腳本。五、選擇源數(shù)據(jù)庫連接

然后繼續(xù)下一步,選擇源數(shù)據(jù)庫,在這里有聯(lián)機和離線兩種模式,聯(lián)機即是直接連接到源數(shù)據(jù)進行抓取,而離線則是在SqlDeveloper不直接連接到源數(shù)據(jù)庫的情況下,通過SqlDeveloper提供的腳本預(yù)先捕獲數(shù)據(jù)庫,得到數(shù)據(jù)庫結(jié)構(gòu)文件后,通過向?qū)?dǎo)入。這里當(dāng)然是選擇我們剛才建立的SqlServer連接。六、選擇捕獲源數(shù)據(jù)庫在這一步中,顯示為兩個多選框,左邊列出SqlServer中所有可選的數(shù)據(jù)庫,通過中間的按鈕將數(shù)據(jù)庫移動到右邊的已選數(shù)據(jù)庫中。如下圖:‘⑦移植向辱-步驟5陽捕萩簡介TTT¥京捕貌淹播檔案窟項目狼教握隹T曰小藪布割

丫晦的數(shù)握J(rèn)畦im_4為宗女埔恭詵柱的據(jù)定,可用數(shù)據(jù)庫□轉(zhuǎn)到概要頁幫助?七、數(shù)據(jù)類型轉(zhuǎn)換選項在這一頁中,列出了所有系統(tǒng)內(nèi)置的數(shù)據(jù)類型轉(zhuǎn)換對應(yīng)關(guān)系??梢云溥M行修改,一般不作修改直接下一步。如下圖:轉(zhuǎn)換密料檔案匡頃曰情荻源數(shù)據(jù)類型Oracle數(shù)據(jù)類型BIGIHTITUMBEREl^0]BIUARTRAfBIT密料檔案匡頃曰情荻源數(shù)據(jù)類型Oracle數(shù)據(jù)類型BIGIHTITUMBEREl^0]BIUARTRAfBITITUMBEREtO]LHAECHARlKRSORS¥S_EEFCUBSOEDATEVAHCHAR2[200]DATETIMEEATEDAIEnrE2VAHCHAR2[200]DAIErirEaFPSETVAHCHAR2[200]DECIMALrUMEERFbOATFLOAT[53]IMAGEELBEIITTrUMEERE10;0]IITTEGEErUMEERE10;0]H0HETrUMEER[l^4]ilCHARUCHA1梏*拮梅詵頃。統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)統(tǒng)

系系系系系系系系系系系系系系系系—添加新規(guī)則編輯規(guī)則刪躥規(guī)則口轉(zhuǎn)到概要頁喜級詵項幫助?〈上一步但)下一步也)〉完隴正)取消八、選擇目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫的選擇一樣,目標(biāo)數(shù)據(jù)庫的選擇同樣也有聯(lián)機和離線兩種方式。仍舊選擇聯(lián)機。選擇orcl(migrations)連接。九、移動數(shù)據(jù)選項這個頁面中,也提供了聯(lián)機或離線兩種方式進行數(shù)據(jù)移動。所謂聯(lián)機雖然"據(jù)說”可以直接以聯(lián)機的方式從源數(shù)據(jù)庫中移動數(shù)據(jù)到Oracle中,可我試過幾次沒有成功,原因不明。最終我選擇了離線的方式進行數(shù)據(jù)移動。所謂離線移動數(shù)據(jù),是在我們指定的腳本存放目錄中生成"數(shù)據(jù)移動”腳本,分別在源數(shù)據(jù)庫中卸載數(shù)據(jù)(即導(dǎo)出)和在目標(biāo)數(shù)據(jù)庫中加載數(shù)據(jù)。選擇好后,點擊下一步。十、選項完畢,開始執(zhí)行在向?qū)У淖詈?,是一個用于確認(rèn)的"概要”頁面。確認(rèn)無誤后,點擊完成。移植將會開始執(zhí)行。SqlServer中的架構(gòu)到Oracle中的模式,名稱的處理通過執(zhí)行移植向?qū)?,如果沒有錯誤的話,那么表結(jié)構(gòu)基本上都會建立起來了,在連接中打開orcl(migrations)連接,找到最下面的其它用戶,假設(shè)你的表都在dbo架構(gòu)下,那么找到dbo_源數(shù)據(jù)庫名,展開它,可以看到在表中已經(jīng)有原數(shù)據(jù)庫中的所有表。但是,為什么會顯示為dbo_源數(shù)據(jù)庫名呢?我很不喜歡這樣的用戶名。我希望它顯示為源數(shù)據(jù)庫名,要怎樣做呢?在程序的左下角,是移植項目窗格,在里面可以看到我們剛才建立的移植項目名。展開它,會顯示我們執(zhí)行過向?qū)У娜掌诤蜁r間,繼續(xù)展開,可以看到兩個節(jié)點,叫作捕獲的數(shù)據(jù)庫對象和轉(zhuǎn)換的數(shù)據(jù)庫對象,如下圖:OracleSQLDeveloper如牛(B箱揖值查看GO導(dǎo)航(CD運行?91>??■Ix■■\&-a劇謹(jǐn)接]>報告□+?Y+?質(zhì)DBM&作業(yè)1+?扇調(diào)度程序-M其他用戶+七Aiionriflous+gAPE1_030200+2APES_PUELIl_UEER+8AFFQ0SST5+"AM+“gCISSYS-8DE0_HMS:十?庖表(已過濾〕:4?四視圖|;HO版本化視囹.1親植項目(們□「角1I頁目-qrclAigrmti皿5_j十度]pcs-回t庭t-崟如11-£-叫^3一口9-廠+舫轉(zhuǎn)換的數(shù)據(jù)庫對象在捕獲的數(shù)據(jù)庫對象上點擊右鍵,選擇轉(zhuǎn)換,再次打開數(shù)據(jù)移植向?qū)?。點擊下一步,會直接跳轉(zhuǎn)到轉(zhuǎn)換頁,這一次的轉(zhuǎn)換頁面與前一部分的轉(zhuǎn)換頁稍有不同。不同之處在于多出了一個選項卡,叫對象命名,選擇它打開,如下圖所示:

轉(zhuǎn)換丫TT.TT簡介溪料檔案犀I幣目轉(zhuǎn)供目標(biāo)數(shù)據(jù)匡科動數(shù)據(jù)幫助⑩轉(zhuǎn)換丫TT.TT簡介溪料檔案犀I幣目轉(zhuǎn)供目標(biāo)數(shù)據(jù)匡科動數(shù)據(jù)幫助⑩1碉排序,,過濾器;IU原始標(biāo)識符@新建標(biāo)識符m已轉(zhuǎn)換10限定名AllowEmptyrilluwEziptvHMS..dbQ.fL^HM5.dba.E2AuditReasDiiAuditReasdel3A-uditStatuaaudit-Statua4AuIlineHH2.dLa.fl5AuditUserAudit-UacrHMS.dbQ.Hl6uategoryCategoryKMS.dbQ.fll7Ch-ecklnriinerhecJrlnllineHMS.dbti.HlSCh-ecklnUaErChEdcInUaEEHMS.dba.Hl9Ch-eckedln.ChecksdinHMS.dbQ.Hl10Cck1€CodeKMS-dba.Hl11CcrdeCodeHMS.dbQ.Hl艷宗站梅詵項。數(shù)據(jù)類型映射對象命名□轉(zhuǎn)到概要頁言組詵項<上一步⑥下一步<K)>完成②取消在這個頁面中,顯示了一個數(shù)據(jù)列表,列出了源數(shù)據(jù)庫的表名、字段名、約束名、視圖名、架構(gòu)名等等所有的標(biāo)識符的原始標(biāo)識符、新建標(biāo)識符、是否經(jīng)過轉(zhuǎn)換、原始限定名、標(biāo)識符類型等信息。因為Oracle中不支持30個字符以上的標(biāo)識符,所以當(dāng)碰到原始標(biāo)識符超過30個字符時,移植向?qū)詣訉⒅財?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論