成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

利用FDW進(jìn)行ORACLE到Postgresql的數(shù)據(jù)遷移

IT那活兒 / 2816人閱讀
利用FDW進(jìn)行ORACLE到Postgresql的數(shù)據(jù)遷移

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


FDW插件

隨著開(kāi)源數(shù)據(jù)庫(kù)技術(shù)的發(fā)展和去“O”工作的推進(jìn),越來(lái)越多企業(yè)生產(chǎn)系統(tǒng)選擇使用Postgresql數(shù)據(jù)庫(kù)。Pgsql采用多進(jìn)程結(jié)構(gòu),其存儲(chǔ)過(guò)程、函數(shù)的支持好于mysql。個(gè)人認(rèn)為pgsql是oracle的最佳替代產(chǎn)品。
但是pgsql作為一款開(kāi)源數(shù)據(jù)庫(kù),其計(jì)算能力和穩(wěn)定性還是無(wú)法與Oracle相提并論,所有當(dāng)企業(yè)要使用PG替代oracle時(shí),還是得從數(shù)據(jù)庫(kù)的拆分和架構(gòu)上下功夫。使用PG去“O”的核心步驟之一是數(shù)據(jù)遷移,遷移方案有多種,如ETL、ORACLE_FDW等,本文將重點(diǎn)介紹ORACLE_FDW的遷移過(guò)程。FDW是PG的一個(gè)開(kāi)源插件,可以通過(guò)在github上下載編譯安裝,以實(shí)現(xiàn)類(lèi)似ORACLEDBLINK的功能。

FDW優(yōu)點(diǎn)是配置簡(jiǎn)單,使用方便,缺點(diǎn)是不能實(shí)現(xiàn)增量遷移,所以只適合數(shù)據(jù)量較小或者停機(jī)時(shí)間較長(zhǎng)的情況。下面開(kāi)始本次分享。


FDW插件安裝

2.1 PG軟件安裝
一般選用源碼進(jìn)行編譯安裝,此處不對(duì)安裝過(guò)程進(jìn)行詳細(xì)描述(相信大家都是老司機(jī)哈)。
2.2 下載精簡(jiǎn)版Oracle客戶(hù)端instantclient-*.zip
包含basic、sdk和sqlplus三個(gè)文件并解壓。
2.3 配置好用戶(hù)postgres的環(huán)境變量
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/postgres/instantclient_11_2:/usr/local/pgsql/lib
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/pgsql/bin
ORACLE_HOME=/home/postgres/instantclient_11_2
PGDATA=/data
export PATH ORACLE_HOME LD_LIBRARY_PATH PGDATA
2.4 插件編譯安裝
$ make
$ make install
2.5 驗(yàn)證是否安裝成功


ORACLE_FDW配置和使用

3.1 創(chuàng)建extension
create extension oracle_fdw;
postgres=# dx
                        List of installed extensions
    Name | Version |   Schema | Description
------------+---------+------------+----------------------------------------
 oracle_fdw |
 1.1     | public | foreign data wrapper for Oracle access -->說(shuō)明創(chuàng)建成功
 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
3.2 創(chuàng)建server,使pg通過(guò)創(chuàng)建外部表連接oracle數(shù)據(jù)庫(kù)
CREATE SERVER spclora FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 10.26.5*.**:1521/spcltbk);
--創(chuàng)建server spclora 連接到oracle數(shù)據(jù)庫(kù)
GRANT USAGE ON FOREIGN SERVER spclora TO userinfo_prod;
--將server授權(quán)給用戶(hù)userinfo_prod
c userinfodb userinfo_prod
--使用userinfo_prod切換到userinfodb
CREATE USER MAPPING FOR userinfo_prod SERVER spclora OPTIONS (user pgsync, password oracle);
--創(chuàng)建到oracle的映射,pgsync/oracle是oracle數(shù)據(jù)庫(kù)的用戶(hù)名和密碼
3.3 創(chuàng)建外部表
create FOREIGN table t_***_userinfo_fdw
(
  phone*** VARCHAR(24) not null,
  ser***tus int4 not null,
  createtime timestamp with time zone default now() not null,
  ups***time  timestamp with time zone default now() not null,
  op**a*or      int4 not null,
  che**me timestamp with time zone,
  lo**id       int4,
  modu**code VARCHAR(20),
  modi***time  timestamp with time zone default now() not null
)SERVER spclora OPTIONS (schema SP***DP, table T_USERINFO_MV,prefetch 10240);

至此,通過(guò)訪問(wèn)外部表,即可訪問(wèn)ORACLE數(shù)據(jù)庫(kù)對(duì)應(yīng)表,上例建表語(yǔ)句中的options表示oracle的表信息SP***DP.T_USERINFO_MV。pretetch,表示從oracle預(yù)取的行數(shù),默認(rèn)是200,建議配置到最大10240,根據(jù)我們的實(shí)戰(zhàn)經(jīng)驗(yàn),配置該參數(shù)后,數(shù)據(jù)遷移的速度至少提高50%


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

在PG側(cè)創(chuàng)建表,然后使用insertinto pg_table select * from foreign_table即可實(shí)現(xiàn)數(shù)據(jù)遷移。
遷移案例
某客戶(hù)項(xiàng)目一重要系統(tǒng)原數(shù)據(jù)庫(kù)使用Oracle11.2.0.4,架構(gòu)為HA架構(gòu),數(shù)據(jù)量約1TB,進(jìn)行去“O”改造??紤]到去O后的效率以及數(shù)據(jù)增長(zhǎng)等問(wèn)題,架構(gòu)上做了數(shù)據(jù)“對(duì)癥下藥”。數(shù)據(jù)庫(kù)層面進(jìn)行了拆分,日志數(shù)據(jù)存放到ES上,分發(fā)數(shù)據(jù)存放到Mongodb上,核心交易數(shù)據(jù)存放到PG中,日志數(shù)據(jù)無(wú)需遷移,分發(fā)數(shù)據(jù)可以在業(yè)務(wù)重建之后,從其他業(yè)務(wù)系統(tǒng)請(qǐng)求重新分發(fā),也無(wú)需遷移,只需要遷移核心交易數(shù)據(jù)到PG中,需遷移的數(shù)據(jù)量大大減少。為提升PG數(shù)據(jù)庫(kù)效率,PG架構(gòu)使用一主兩從加pgpool的讀寫(xiě)分離架構(gòu)。
根據(jù)業(yè)務(wù)的特點(diǎn)以及確保遷移影響降到最低,遷移方案采用數(shù)據(jù)按省份進(jìn)行割接的輪動(dòng)方式。每個(gè)省份的數(shù)據(jù)遷移,只有15分鐘的停機(jī)時(shí)間。停機(jī)時(shí)間短,我們考慮過(guò)使用OGG進(jìn)行增量遷移,使用過(guò)OGG的同學(xué)都是,這玩意就像有錢(qián)人家的大小姐,性子琢磨不透,純“根據(jù)心情”,經(jīng)常出現(xiàn)莫名其妙的岔子。再加上異構(gòu)環(huán)境下,估計(jì)使用OGG,岔子更多,所以我們選擇ORACLE_FDW作為遷移方案。
為了在規(guī)定的時(shí)間內(nèi)完成數(shù)據(jù)遷移,我們采取了以下手段:
  1. 由于在原表中以省份ID區(qū)分各省數(shù)據(jù),列數(shù)據(jù)選擇性較低,以省份過(guò)濾查詢(xún)時(shí),部分省份數(shù)據(jù)無(wú)法使用索引,全表掃描會(huì)導(dǎo)致遷移的時(shí)間延長(zhǎng);而且本次遷移,業(yè)務(wù)上也進(jìn)行了更改,所以遷移數(shù)據(jù)時(shí)只需要原表的部分列。鑒于此情況,我們?cè)谠炊耸褂昧宋锘晥D對(duì)原表數(shù)據(jù)進(jìn)行裁剪,PG外部表與物化視圖進(jìn)行對(duì)應(yīng),這樣遷移時(shí)可以減少無(wú)效的讀取IO,縮短遷移時(shí)間。
  2. 修改外部表的prefetch參數(shù)為10240。
  3. 將多個(gè)表數(shù)據(jù)遷移編寫(xiě)腳本實(shí)現(xiàn)手工并行。
按照本篇介紹及手段方法,即可完成數(shù)據(jù)量1T左右的遷移工作,希望對(duì)你的工作有所啟示和幫助。



本文作者:劉運(yùn)彬(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129217.html

相關(guān)文章

  • 新書(shū)推薦 |《PostgreSQL實(shí)戰(zhàn)》出版(提供樣章下載)

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

    Martin91 評(píng)論0 收藏0
  • PostgreSQL對(duì)接SequoiaDB

    摘要:是一款開(kāi)源的數(shù)據(jù)庫(kù),支持標(biāo)準(zhǔn),用戶(hù)可以通過(guò)驅(qū)動(dòng)連接進(jìn)行應(yīng)用程序開(kāi)發(fā)。本文就針對(duì)如何擴(kuò)展功能,實(shí)現(xiàn)對(duì)接進(jìn)行介紹。直接在中修改配置文件,只能在當(dāng)前中生效,重新登錄需要重新設(shè)置。 PostgreSQL是一款開(kāi)源的SQL數(shù)據(jù)庫(kù),支持標(biāo)準(zhǔn)SQL,用戶(hù)可以通過(guò)JDBC驅(qū)動(dòng)連接PostgreSQL進(jìn)行應(yīng)用程序開(kāi)發(fā)。用戶(hù)通過(guò)擴(kuò)展PostgreSQL功能,讓開(kāi)發(fā)者可以使用SQL語(yǔ)句訪問(wèn)SequoiaDB...

    TZLLOG 評(píng)論0 收藏0
  • 阿里云如何打破Oracle遷移上云壁壘

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

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

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

0條評(píng)論

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