成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

IT那活兒 / 3557人閱讀
利用FDW進行ORACLE到Postgresql的數(shù)據(jù)遷移
隨著開源數(shù)據(jù)庫技術的發(fā)展和去“O”工作的推進,越來越多企業(yè)生產(chǎn)系統(tǒng)選擇使用Postgresql數(shù)據(jù)庫。Pgsql采用多進程結構,其存儲過程、函數(shù)的支持好于mysql。個人認為pgsql是oracle的最佳替代產(chǎn)品。但是pgsql作為一款開源數(shù)據(jù)庫,其計算能力和穩(wěn)定性還是無法與Oracle相提并論,所有當企業(yè)要使用PG替代oracle時,還是得從數(shù)據(jù)庫的拆分和架構上下功夫。使用PG去“O”的核心步驟之一是數(shù)據(jù)遷移,遷移方案有多種,如ETL、ORACLE_FDW等,本文將重點介紹ORACLE_FDW的遷移過程。FDW是PG的一個開源插件,可以通過在github上下載編譯安裝,以實現(xiàn)類似ORACLEDBLINK的功能。FDW優(yōu)點是配置簡單,使用方便,缺點是不能實現(xiàn)增量遷移,所以只適合數(shù)據(jù)量較小或者停機時間較長的情況。下面開始本次分享。




插  件  安  裝



  1. PG軟件安裝,一般選用源碼進行編譯安裝,此處不對安裝過程進行詳細描述(相信大家都是老司機哈)。


  2. 下載精簡版Oracle客戶端instantclient-*.zip,包含basic、sdk和sqlplus三個文件并解壓。


  3. 配置好用戶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


  1. 插件編譯安裝

$ make

$ make install


  1. 驗證是否安裝成功




ORACLE_FDW配置和使用


  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  -->說明創(chuàng)建成功

 plpgsql    | 1.0     | pg_catalog | PL/pgSQL procedural language  


  1. 創(chuàng)建server,使pg通過創(chuàng)建外部表連接oracle數(shù)據(jù)庫

CREATE SERVER spclora FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 10.26.5*.**:1521/spcltbk);

--創(chuàng)建server spclora 連接到oracle數(shù)據(jù)庫

GRANT USAGE ON FOREIGN SERVER spclora TO userinfo_prod;

--將server授權給用戶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ù)庫的用戶名和密碼


  1. 創(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);


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




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



在PG側創(chuàng)建表,然后使用insertinto pg_table select * from foreign_table即可實現(xiàn)數(shù)據(jù)遷移。



遷移案例



某運營商項目一重要系統(tǒng)原數(shù)據(jù)庫使用Oracle11.2.0.4,架構為HA架構,數(shù)據(jù)量約1TB,進行去“O”改造。考慮到去O后的效率以及數(shù)據(jù)增長等問題,架構上做了數(shù)據(jù)“對癥下藥”。數(shù)據(jù)庫層面進行了拆分,日志數(shù)據(jù)存放到ES上,分發(fā)數(shù)據(jù)存放到Mongodb上,核心交易數(shù)據(jù)存放到PG中,日志數(shù)據(jù)無需遷移,分發(fā)數(shù)據(jù)可以在業(yè)務重建之后,從其他業(yè)務系統(tǒng)請求重新分發(fā),也無需遷移,只需要遷移核心交易數(shù)據(jù)到PG中,需遷移的數(shù)據(jù)量大大減少。為提升PG數(shù)據(jù)庫效率,PG架構使用一主兩從加pgpool的讀寫分離架構。


根據(jù)業(yè)務的特點以及確保遷移影響降到最低,遷移方案采用數(shù)據(jù)按省份進行割接的輪動方式。每個省份的數(shù)據(jù)遷移,只有15分鐘的停機時間。停機時間短,我們考慮過使用OGG進行增量遷移,使用過OGG的同學都是,這玩意就像有錢人家的大小姐,性子琢磨不透,純“根據(jù)心情”,經(jīng)常出現(xiàn)莫名其妙的岔子。再加上異構環(huán)境下,估計使用OGG,岔子更多,所以我們選擇ORACLE_FDW作為遷移方案。


為了在規(guī)定的時間內(nèi)完成數(shù)據(jù)遷移,我們采取了以下手段:

  1. 由于在原表中以省份ID區(qū)分各省數(shù)據(jù),列數(shù)據(jù)選擇性較低,以省份過濾查詢時,部分省份數(shù)據(jù)無法使用索引,全表掃描會導致遷移的時間延長;而且本次遷移,業(yè)務上也進行了更改,所以遷移數(shù)據(jù)時只需要原表的部分列。鑒于此情況,我們在源端使用了物化視圖對原表數(shù)據(jù)進行裁剪,PG外部表與物化視圖進行對應,這樣遷移時可以減少無效的讀取IO,縮短遷移時間。

  2. 修改外部表的prefetch參數(shù)為10240。

  3. 將多個表數(shù)據(jù)遷移編寫腳本實現(xiàn)手工并行。

按照本篇介紹及手段方法,即可完成數(shù)據(jù)量1T左右的遷移工作,希望對你的工作有所啟示和幫助,我們下回見。

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

轉載請注明本文地址:http://m.hztianpu.com/yun/130206.html

相關文章

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

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

    Martin91 評論0 收藏0
  • PostgreSQL對接SequoiaDB

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

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

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

    chavesgu 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<