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

資訊專欄INFORMATION COLUMN

PostgreSQL+Oracle跨庫連接實操

IT那活兒 / 2153人閱讀
PostgreSQL+Oracle跨庫連接實操

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


[
PostgreSQL連接Oracle
]


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

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


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

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


--檢查確認沒有依賴未解決

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ù)源服務

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、測試訪問速度


測試結果:

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

select * from vol_audit_nbr_sum_qs;


Time: 563775.627 ms (09:23.776)


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

select * from vol_audit_nbr_sum_qs;


Time: 322470.280 ms (05:22.470)


[
PostgreSQL連接PostgreSQL
]


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

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


1、創(chuàng)建拓展

postgres=# create extension postgres_fdw;


2、創(chuàng)建服務

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、測試訪問速度


測試結果:

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

select * from vol_audit_nbr_sum_qs;


Time: 779932.685 ms (12:59.933)


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

select * from vol_audit_nbr_sum_qs;


Time: 238503.016 ms (03:58.503)


[
Oracle連接PostgreSQL
]


1、安裝postgresql的odbc驅動包

--需要安裝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)關

在$ORACLE_HOME/network/admin/下面創(chuàng)建initPG_LINK.ora文件,這個文件名字中的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)聽文件

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、訪問PG數(shù)據(jù)庫

訪問postgre的數(shù)據(jù)庫表是需要表名字小寫并加上雙引號

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


9、測試訪問速度

測試結果:

使用oracle連接postgres查詢2G的表,4520萬行數(shù)據(jù),全表掃描耗時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

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130182.html

相關文章

  • springboot+mycat 分表分庫

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

    lakeside 評論0 收藏0
  • 題庫分庫分表架構方案

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

    kohoh_ 評論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
  • 移動易開源APP組合套件更新——支持多種外部數(shù)據(jù)庫,支持全文搜索

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

    anyway 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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