国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

oracle遷移PostgreSQL步驟及工具介紹

IT那活兒 / 2629人閱讀
oracle遷移PostgreSQL步驟及工具介紹

目前國(guó)產(chǎn)化浪潮的浪花兒是一浪高過(guò)一浪,感覺(jué)比后浪都猛。作為IT技術(shù)界的文藝青年,怎能錯(cuò)過(guò)這海天盛筵。今天給大家?guī)?lái)的是oracle遷移到postgresql遷移過(guò)程評(píng)估及對(duì)應(yīng)階段的方法和工具介紹,畢竟工欲善其事,必先利其器,下面開(kāi)始今天的分享。



評(píng)估遷移



遷移工作之前,需要全面評(píng)估需選定的應(yīng)用程序或數(shù)據(jù)庫(kù)。一般老司機(jī)都是選擇較低挑戰(zhàn)性,較低風(fēng)險(xiǎn)的業(yè)務(wù)庫(kù)進(jìn)行遷移,在遷移過(guò)程中不斷踩坑,填坑,積累使用PostgreSQL的經(jīng)驗(yàn),以此總結(jié)出適合自己的遷移路線和遷移方法。作為規(guī)劃遷移的第一步,需要估算從現(xiàn)有數(shù)據(jù)庫(kù)遷移到PostgreSQL的難易程度(哪些對(duì)象能從oracle百分百遷移到PostgreSQL,哪些只有一部分),這些都是有對(duì)應(yīng)工具可以預(yù)估支撐的,請(qǐng)接著往下看。


安裝Orcfce擴(kuò)展包

我們可以安裝一個(gè)擴(kuò)展Orafce,Orafce在PostgreSQL中實(shí)現(xiàn)了Oracle的某些功能。例如,如果習(xí)慣于在Oracle中的DATE函數(shù),則此擴(kuò)展名允許我們使用這些函數(shù)。有關(guān)Orafce的信息,可以訪問(wèn):https : //github.com/orafce/orafce。 


以下是安裝了該擴(kuò)展后的一些示例:





postgres-# dn

     List of schemas

     Name     |  Owner   

--------------+----------

 dbms_alert   | postgres

 dbms_assert  | postgres

 dbms_output  | postgres

 dbms_pipe    | postgres

 dbms_random  | postgres

 dbms_utility | postgres

 oracle       | postgres

 plunit       | postgres

 plvchr       | postgres

 plvdate      | postgres

 plvlex       | postgres

 plvstr       | postgres

 plvsubst     | postgres

 public       | postgres

 utl_file     | postgres

(15 rows)


postgres-# df dbms_random.*

                                        List of functions

   Schema    |    Name    | Result data type |             Argument data types             | Type 

-------------+------------+------------------+---------------------------------------------+------

 dbms_random | initialize | void             | integer                                     | func

 dbms_random | normal     | double precision |                                             | func

 dbms_random | random     | integer          |                                             | func

 dbms_random | seed       | void             | integer                                     | func

 dbms_random | seed       | void             | text                                        | func

 dbms_random | string     | text             | opt text, len integer                       | func

 dbms_random | terminate  | void             |                                             | func

 dbms_random | value      | double precision |                                             | func

 dbms_random | value      | double precision | low double precision, high double precision | func

(9 rows)






向上滑動(dòng)查看更多內(nèi)容


使用AWS Schema Conversion Tool生成遷移評(píng)估報(bào)告

AWS Schema ConversionTool是亞馬遜推出的一款強(qiáng)大的遷移工具,它可以幫助我們實(shí)現(xiàn)數(shù)據(jù)的遷移,還有一些代碼和數(shù)據(jù)類型的轉(zhuǎn)換。同時(shí)它可生成遷移報(bào)告。





表自動(dòng)轉(zhuǎn)換達(dá)到85%以上。而約束和索引均能達(dá)到100%自動(dòng)轉(zhuǎn)換。



這里可以看到包和存儲(chǔ)過(guò)程。工具自動(dòng)轉(zhuǎn)換只能完成10%,剩下的需要手動(dòng)修改。


點(diǎn)擊save,會(huì)生成一個(gè)excel列表,該列表展示了一些無(wú)法自動(dòng)遷移的信息,例如包、觸發(fā)器,此類需要手工修改。


此類工作也可以使用Ora2PG來(lái)實(shí)現(xiàn)遷移工作量的評(píng)估。這類工具的作用都是對(duì)元數(shù)據(jù)進(jìn)行遷移和改造。




也可以保存成.sql腳本




執(zhí)行遷移完的效果如下所示:



數(shù)據(jù)遷移



元數(shù)據(jù)遷移完成之后,即可對(duì)數(shù)據(jù)進(jìn)行遷移工作了。元數(shù)據(jù)遷移需要注意不要導(dǎo)入索引和約束、觸發(fā)器。進(jìn)行數(shù)據(jù)遷移,包括全量遷移時(shí),可以使用AWSSchema Conversion Tool或者ora2PG工具。


對(duì)于大數(shù)據(jù)量的表,建議采用sqluldr2工具。sqluldr2在大數(shù)據(jù)量導(dǎo)出方面速度超快,能導(dǎo)出億級(jí)數(shù)據(jù)為excelcsv文件。使用sqluldr2可以輸出到多個(gè)文件中,指定行數(shù)分割或者按照文件大小分割。增加并發(fā)性。然后使用psql工具對(duì)CSV文件進(jìn)行導(dǎo)入。導(dǎo)入完成之后,再創(chuàng)建索引,約束、觸發(fā)器。



數(shù)據(jù)一致性



數(shù)據(jù)遷移完成之后需要對(duì)數(shù)據(jù)做對(duì)比驗(yàn)證,目前主流的方法是HASH算法,也可以使用MD5算法。以測(cè)試數(shù)據(jù)為例,分別在Oracle和PG中執(zhí)行以下命令:

Oracle

WITH foo AS (SELECT stragg(lower(standard_hash(id||name||

to_char(price,fm999999990.999999999), MD5)) 

order by lower(standard_hash(id||name||to_char(price,fm999999990.999999999), MD5)) asc) 

AS total_md5 from hello ) SELECT lower(standard_hash(total_md5, MD5)) AS md5 FROM foo;


PostgreSQL

WITH foo AS (select string_agg(md5(id||name||to_char(price,fm999999990.999999999)) order by md5(id||name||to_char(price,fm999999990.999999999)) asc) AS total_md5  FROM hello) SELECT md5(total_md5) AS md5 FROM foo;


以上得到2個(gè)庫(kù)中表的MD5值,如果一致則數(shù)據(jù)一致。




數(shù)據(jù)庫(kù)對(duì)象改造



整個(gè)數(shù)據(jù)遷移完成之后,就需要對(duì)存儲(chǔ)過(guò)程,觸發(fā)器、函數(shù)等代碼進(jìn)行改造,根據(jù)前面報(bào)告提示的點(diǎn)進(jìn)行修改。


特殊處理

AWS SchemaConversionTool或者ora2PG工具不能完全無(wú)損遷移,需要根據(jù)評(píng)估報(bào)告和遷移測(cè)試,對(duì)轉(zhuǎn)換不徹底的,進(jìn)行適當(dāng)?shù)氖止ば薷模瑥臏y(cè)試來(lái)看,重點(diǎn)還是在語(yǔ)法兼容性上,已知的一些問(wèn)題有:


  • 存儲(chǔ)過(guò)程、函數(shù)目前的pg版本(12)不支持OUT參數(shù),需要用INOUT代替;

  • 存儲(chǔ)過(guò)程中游標(biāo)定義的語(yǔ)法轉(zhuǎn)換有誤,需要人工修改

  • 某些情況下SELECT會(huì)被錯(cuò)誤的轉(zhuǎn)換為PERFORM

  • 分區(qū)表只支持rang、list,不支持Hash分區(qū)

  • Sequence的訪問(wèn)方式變化

Sequencesare fully supported, but all call to sequence_name.NEXTVAL orsequence_name.CURRVAL will be transformed intoNEXTVAL(sequence_name) or CURRVAL(sequence_name).

  • Oracle同義詞轉(zhuǎn)為View

  • DBLINK轉(zhuǎn)為FDW

  • JOB不支持,在PG中需要改為外部CRONTAB

  • 物化視圖轉(zhuǎn)為物化視圖快照,僅在完全刷新的時(shí)候更新



應(yīng)用程序遷移測(cè)試及改造



此時(shí)搭建好,可以提供給應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試。在測(cè)試過(guò)程中遇到問(wèn)題,需要修改SQL代碼。當(dāng)然也可以從Oracle中創(chuàng)建SPA任務(wù),捕捉全量的SQL,找到下面相關(guān)語(yǔ)法的SQL,提交給開(kāi)發(fā)人員修改。


表連接

Oracle

Postgresql

(+)


查詢

Oracle

Postgresql

unique

connect by

insert all into

╳ insert into values

merge into

╳ upsert



應(yīng)用程序性能測(cè)試



遷移之后有一些SQL語(yǔ)句性能會(huì)下降,我們需要捕捉到性能下降的SQL,查找引起性能下降的原因,并進(jìn)行針對(duì)性優(yōu)化,將性能問(wèn)題最大程度排除在上線前,以免上線后引起性能問(wèn)題,影響業(yè)務(wù)的正常使用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/130201.html

相關(guān)文章

  • 阿里云如何打破Oracle遷移上云的壁壘

    摘要:摘要第九屆中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì),阿里云數(shù)據(jù)庫(kù)產(chǎn)品專家蕭少聰帶來(lái)以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì),阿里云數(shù)據(jù)庫(kù)產(chǎn)品專家蕭少聰帶來(lái)以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數(shù)據(jù)庫(kù)管理系統(tǒng),面對(duì)Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數(shù)據(jù)庫(kù)P...

    chavesgu 評(píng)論0 收藏0
  • 新書推薦 |《PostgreSQL實(shí)戰(zhàn)》出版(提供樣章下載)

    摘要:作者譚峰張文升出版日期年月頁(yè)數(shù)頁(yè)定價(jià)元本書特色中國(guó)開(kāi)源軟件推進(jìn)聯(lián)盟分會(huì)特聘專家撰寫,國(guó)內(nèi)多位開(kāi)源數(shù)據(jù)庫(kù)專家鼎力推薦。張文升中國(guó)開(kāi)源軟件推進(jìn)聯(lián)盟分會(huì)核心成員之一。 很高興《PostgreSQL實(shí)戰(zhàn)》一書終于出版,本書大體上系統(tǒng)總結(jié)了筆者 PostgreSQL DBA 職業(yè)生涯的經(jīng)驗(yàn)總結(jié),本書的另一位作者張文升擁有豐富的PostgreSQL運(yùn)維經(jīng)驗(yàn),目前就職于探探科技任首席PostgreS...

    Martin91 評(píng)論0 收藏0
  • Oracle SQL Developer 個(gè)人使用記錄

    摘要:打開(kāi)多個(gè)窗口一個(gè)數(shù)據(jù)庫(kù)連接打開(kāi)多個(gè)窗口用于查看數(shù)據(jù)表及數(shù)據(jù)進(jìn)入工具首選項(xiàng)數(shù)據(jù)庫(kù)對(duì)象查看器勾選自動(dòng)凍結(jié)對(duì)象查看器窗口即可。顯示行號(hào)進(jìn)入工具首選項(xiàng)代碼編輯器行裝訂線勾選顯示行數(shù)即可。 Oracle SQL Developer 個(gè)人使用記錄 以下簡(jiǎn)稱 SQL Developer 對(duì)我Java開(kāi)發(fā)來(lái)說(shuō),這個(gè)工具已經(jīng)足夠使用了,雖然還有很多缺點(diǎn),但夠用就行,相對(duì)于我來(lái)說(shuō)的優(yōu)點(diǎn): 整體UI還算舒...

    leanxi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<