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

資訊專欄INFORMATION COLUMN

PostgreSQL+Oracle跨庫(kù)連接實(shí)操

IT那活兒 / 2234人閱讀
PostgreSQL+Oracle跨庫(kù)連接實(shí)操

在我們異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)遷移的過(guò)程中,涉及大量的跨庫(kù)查詢操作的需求。常見(jiàn)的跨庫(kù)連接有A連B,B連B,B連A的現(xiàn)實(shí)需求。本文帶給大家的是PostgreSQL和oracle之間上述三種跨庫(kù)連接的實(shí)戰(zhàn)分享。


[
PostgreSQL連接Oracle
]


使用Oracle_FDW實(shí)現(xiàn)Postgres連接Oracle

Oracle_fdw的編譯依賴系統(tǒng)中需要有pg_config和Oracle的環(huán)境,需要安裝oracle客戶端。


1、安裝客戶端需要如下3個(gè)文件包

unzip instantclient-basic-linux.x64-12.2.0.1.0.zip

unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip

unzip instantclient-sqlplus-linux.x64-12.2.0.1.0.zip


2、配置環(huán)境變量

export ORACLE_HOME=/opt/oracle/instantclient

export OCI_LIB_DIR=$ORACLE_HOME

export OCI_INC_DIR=$ORACLE_HOME/sdk/include

export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH


3、下載oracle_fdw插件并安裝

unzip oracle_fdw-2.0.0.zip

cd oracle_fdw-2.0.0

Make

Make install


--檢查確認(rèn)沒(méi)有依賴未解決

ldd oracle_fdw.so


4、創(chuàng)建拓展

postgres=# create extension oracle_fdw ;


postgres=# des

List of foreign servers

Name |  Owner   | Foreign-data wrapper

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

oradb | postgres | oracle_fdw


5、創(chuàng)建外部數(shù)據(jù)源服務(wù)

postgres=# CREATE SERVER oradb FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver //192.168.217.120:1521/posdb);


6、建用戶映射

postgres=# CREATE USER MAPPING FOR postgres SERVER oradb OPTIONS (user wen, password wen123);


7、創(chuàng)建外部表

postgres=# CREATE  FOREIGN TABLE "vol_audit_nbr_sum_qs" (

id int,

uuid character(32),

name character(32),

Minfo text) SERVER oradb OPTIONS (table vol_audit_nbr_sum_qs);


8、測(cè)試訪問(wèn)速度


測(cè)試結(jié)果:

1、使用postgres連接oracle查詢2G的表,4520萬(wàn)行數(shù)據(jù),全表掃描耗時(shí)9分鐘23秒。

select * from vol_audit_nbr_sum_qs;


Time: 563775.627 ms (09:23.776)


2、建表時(shí)加入prefetch10240 參數(shù)后耗時(shí)5分22秒。

select * from vol_audit_nbr_sum_qs;


Time: 322470.280 ms (05:22.470)


[
PostgreSQL連接PostgreSQL
]


使用Postgres_FDW實(shí)現(xiàn)Postgresql連接Postgresql

Postgres_FDW為postgresql自帶拓展可以直接創(chuàng)建。支持遠(yuǎn)程select和DML,和本地表操作一樣。


1、創(chuàng)建拓展

postgres=# create extension postgres_fdw;


2、創(chuàng)建服務(wù)

postgres=# create server f_postgres foreign data wrapper postgres_fdw options (host 192.168.86.95,port 5433,dbname db_demo);


3、創(chuàng)建用戶映射

postgres=# create user mapping if not exists for postgres server f_postgres options (user wen,password wen123);


4、創(chuàng)建外部表

postgres=# CREATE  FOREIGN TABLE "vol_audit_nbr_sum_qs" (

id int,

uuid character(32),

name character(32),

Minfo text) SERVER f_postgres OPTIONS (table_name vol_audit_nbr_sum_qs);


5、測(cè)試訪問(wèn)速度


測(cè)試結(jié)果:

1、使用postgres連接postgres查詢2G的表,4520萬(wàn)行數(shù)據(jù),全表掃描耗時(shí)12分鐘59秒。

select * from vol_audit_nbr_sum_qs;


Time: 779932.685 ms (12:59.933)


2、建表時(shí)加入fetch_size10240 參數(shù)后耗時(shí)3分58秒。

select * from vol_audit_nbr_sum_qs;


Time: 238503.016 ms (03:58.503)


[
Oracle連接PostgreSQL
]


1、安裝postgresql的odbc驅(qū)動(dòng)包

--需要安裝unixODBC 和 postgresql_odbc


yum install -y unixODBC.x86_64

yum install -y postgresql-odbc.x86_64


2、配置/etc/odbc.ini

[postgresql]

Description = PostgresSQLODBC

Driver = PostgreSQL

Database = testdb

Servername = 192.168.12.123

UserName = test

Password = test123

Port = 5432

ReadOnly = 0

ConnSettings = set client_encoding to UTF8


連接成功:

[root@localoracle ~]# isql postgresql

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

| Connected!                           |

|                                    |

| sql-statement                         |

| help [tablename]                      |

| quit                                 |

|                                    |

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


3、創(chuàng)建.odbc.ini文件

在/home/oracle下創(chuàng)建隱藏文件.odbc.ini

[PG_LINK]

Description        = PostgreSQL connection to SallyDB

Driver             = /usr/lib64/psqlodbc.so

Setup              = /usr/lib64/libodbcpsqlS.so

Database           = testdb

Servername         = 192.168.12.123

UserName           = test

Password           = test123

Port               = 5432

Protocol           = 12.2

ReadOnly           = No

RowVersioning      = No

ShowSystemTables   = No

ConnSettings       = set client_encoding to UTF8


4、配置透明網(wǎng)關(guān)

在$ORACLE_HOME/network/admin/下面創(chuàng)建initPG_LINK.ora文件,這個(gè)文件名字中的PG_LINK是上面自定義的名字

HS_FDS_CONNECT_INFO = PG_LINK

HS_FDS_TRACE_LEVEL = 255

HS_FDS_SHAREABLE_NAME=/usr/lib64/psqlodbc.so

HS_LANGUAGE=AMERICAN_AMERICA.ZHS16GBK

set ODBCINI=/home/oracle/.odbc.ini


5、配置tnsnames.ora文件

PG_LINK =

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.120)(PORT=1521))

(CONNECT_DATA=(SID=PG_LINK))

(HS=OK)

)


6、配置監(jiān)聽(tīng)文件

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=PG_LINK)

(ORACLE_HOME=/u01/app/oracle/product/12.2/db_1)       (ENV="LD_LIBRARY_PATH=/usr/lib64/:/u01/app/oracle/product/12.2/db_1/bin/")        (PROGRAM=dg4odbc)

)

)


7、創(chuàng)建DBLINK

create database link to_pglink connect to "test" identified by "test123" using PG_LINK;


8、訪問(wèn)PG數(shù)據(jù)庫(kù)

訪問(wèn)postgre的數(shù)據(jù)庫(kù)表是需要表名字小寫并加上雙引號(hào)

select count(*) from "vol_audit_nbr_sum_qs"@to_pglink;


9、測(cè)試訪問(wèn)速度

測(cè)試結(jié)果:

使用oracle連接postgres查詢2G的表,4520萬(wàn)行數(shù)據(jù),全表掃描耗時(shí)10分鐘37秒。

SQL> set timing on    

SQL> set autot trace

SQL> select "billing_cycle_id" from "vol_audit_nbr_sum_qs"@to_pglink;


45201535 rows selected.


Elapsed: 00:10:37.14

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

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

相關(guān)文章

  • springboot+mycat 分表分庫(kù)

    摘要:而在分布式系統(tǒng)中,分表分庫(kù)也是常用的一種解決此類瓶頸的手段。支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持等常用的聚合函數(shù)支持跨庫(kù)分頁(yè)。支持通過(guò)全局表,關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表查詢。支持多租戶方案。 前言 對(duì)于業(yè)務(wù)量越來(lái)越大的時(shí)候,單表數(shù)據(jù)超過(guò)幾千萬(wàn),甚至上億時(shí),一張表里面查詢真的會(huì)很費(fèi)時(shí)。而在分布式系統(tǒng)中,分表分庫(kù)也是常用的一種解決此類瓶頸的手段。今天就選用springboot+myca...

    lakeside 評(píng)論0 收藏0
  • 題庫(kù)分庫(kù)分表架構(gòu)方案

    摘要:個(gè)人博客地址方案項(xiàng)目背景在現(xiàn)在題庫(kù)架構(gòu)下,針對(duì)新購(gòu)買的多道數(shù)據(jù)進(jìn)行整合,不影響現(xiàn)有功能。數(shù)據(jù)切分盡量通過(guò)數(shù)據(jù)冗余或表分組來(lái)降低跨庫(kù)的可能。 個(gè)人博客地址 https://www.texixi.com/2019/0... 方案 項(xiàng)目背景 在現(xiàn)在題庫(kù)架構(gòu)下,針對(duì)新購(gòu)買的1300W多道數(shù)據(jù)進(jìn)行整合,不影響現(xiàn)有功能。由于數(shù)據(jù)量偏多,需要進(jìn)行數(shù)據(jù)的切分 目標(biāo)場(chǎng)景 兼容舊的功能 對(duì)1300多W...

    kohoh_ 評(píng)論0 收藏0
  • 阿里云如何打破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
  • 移動(dòng)易開(kāi)源APP組合套件更新——支持多種外部數(shù)據(jù)庫(kù),支持全文搜索

    摘要:移動(dòng)易后臺(tái)實(shí)現(xiàn)外部數(shù)據(jù)庫(kù)連接要實(shí)現(xiàn)外置數(shù)據(jù)庫(kù),即上層開(kāi)發(fā)人員不關(guān)心下層數(shù)據(jù)庫(kù)的實(shí)現(xiàn),在項(xiàng)目中需要針對(duì)不同數(shù)據(jù)庫(kù)修改文件以及在項(xiàng)目中添加依賴包。本文主要介紹移動(dòng)易后臺(tái)如何實(shí)現(xiàn)同不同數(shù)據(jù)源的連接,數(shù)據(jù)源包括,。 1、移動(dòng)易后臺(tái)實(shí)現(xiàn)外部數(shù)據(jù)庫(kù)連接 要實(shí)現(xiàn)外置數(shù)據(jù)庫(kù),即上層開(kāi)發(fā)人員不關(guān)心下層數(shù)據(jù)庫(kù)的實(shí)現(xiàn),在Spring boot項(xiàng)目 中需要針對(duì)不同數(shù)據(jù)庫(kù)修改application.proper...

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

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

0條評(píng)論

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