oracle動態sql語句綁定變量,postgresql 自定義表變量_Oracle GoldenGate新支持開源關系型數據庫PostgreSQL

 2023-11-19 阅读 18 评论 0

摘要:PostgreSQL是一款免費的對象-關系型數據庫(ORDBMS),PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也支持各種擴展,例如通過增加新的數據類型、函數

PostgreSQL是一款免費的對象-關系型數據庫(ORDBMS),PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也支持各種擴展,例如通過增加新的數據類型、函數、操作符、聚集函數、索引方法、過程語言等。最后,因為靈活的許可授權,任何人都可以以任何目的免費使用、修改和分發PostgreSQL。

2020年7月,Oracle數據庫產品管理部門很高興宣布Oracle GoldenGate PostgreSQL 的抽取(Capture)支持已全面上市。自GoldenGate 12.1發行以來,GoldenGate已支持到PostgreSQL的交付,并允許用戶將數據從GoldenGate支持的異構數據庫實時復制到PostgreSQL數據庫。現在,除了GoldenGate PostgreSQL Delivery,又增加了從PostgreSQL 10及更高版本的數據庫中捕獲數據的能力。

該產品除了支持本地PostgreSQL的捕獲,它還支持從Amazon PostgreSQL RDS和Amazon PostgreSQL Aurora(或其它基于PostgreSQL內核的RDS)捕獲數據,并幫助您將數據復制到其它任何數據平臺,如Oracle自治數據庫。該數據庫是一個云數據庫,使用機器學習來自動執行數據庫調優、安全設置、備份、打補丁和其他日常由DBA執行的管理任務。與常規數據庫不同,自治數據庫無需人工干預即可執行所有這些任務以及更多任務。

9710b29d95ed8e78dfe4e7c7d06e302a.png

oracle動態sql語句綁定變量?您可以在OCI Cloud上運行GoldenGate PostgreSQL,并從Amazon PostgreSQL RDS和Amazon PostgreSQL Aurora遠程捕獲數據,并將數據復制到自治數據庫中。

在部署GoldenGate PostgreSQL時,需要考慮的幾個限制:

  • 抽取名稱在單個部署中必須唯一

  • 不支持針對系統數據庫的捕獲和投遞

  • 數據庫版本必須為10或更高

oracle創建sequence。本文就GoldenGate如何從本地PostgreSQL中抽取數據作一簡單介紹,以起到拋磚引玉的作用。主要操作步驟如下:

  • 準備DB環境

  • 配置GoldenGate節點的環境變量

  • 配置ODBC

  • 配置GoldenGate

  • mysql自定義變量。測試

配置

準備PostgreSQL環境

Oracle GoldenGate PostgreSQL通過邏輯日志讀取變更數據。Oracle GoldenGate Capture的每個Extract都需要一個replicat slot,應根據您要運行的抽取程序的數量來設置足夠的max_replication_slot值。相應的參數需要添加或修改配置文件postgresql.conf,如下:?

wal_level= logical

max_replication_slots= 10 #可以比該值更大

linux定義變量?max_wal_senders= 10

如果是遠程部署GoldenGate,則還需要修改pg_hba.conf,允許遠端的主機IP能訪問PG對應的主機,如下示例:

host? all??all 192.168.7.0/24? md5

修改上述參數可能需要重啟PostgreSQL才會生效,詳情可參考PG的手冊。

創建一個testdb,并設置postgres用戶的密碼為post3214

用戶定義的變量、配置GoldenGate節點的環境

GoldenGate安裝

GoldenGate PostgreSQL的安裝與其它DB的安裝相同,不在本文贅述。

OS環境變量配置

exportPGHOST=192.168.7.98

PS變量、exportOGG_HOME=/root/ogg4pg

exportLD_LIBRARY_PATH=$OGG_HOME/lib

exportODBCINI=/etc/odbc.ini

unixODBC配置

# yum -y install unixODBC

sql oracle。# vi /etc/odbc.ini

[ODBC DataSources]

testdb=DataDirect7.1 PostgreSQL Wire Protocol

[ODBC]

IANAAppCodePage=106

自定義表單 前端。InstallDir=/root/ogg4pg

[testdb]

Driver=/root/ogg4pg/lib/GGpsql25.so

Description=DataDirect7.1 PostgreSQL Wire Protocol

Database=testdb

oracle 綁定變量。HostName=192.168.7.98

PortNumber=5432

LogonID=postgres

Password=post3214

執行以下命令,確認odbc配置正確。

mysql定義變量?$ isql -v testdb postgres post3214

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

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

|Connected!??????????????????????????? |

|?????????????????????????????????????? |

自定義表單系統 開源,| sql-statement???????????????????????? |

| help[tablename]????????????????????? |

|quit????????????????????????????????? |

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

SQL>select now();

傳奇自定義變量詳解?+---------------------------------+

| now???????????????????????????? |

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

|2020-07-18 16:34:08.233492+08?? |

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

oracle創建一張一樣的表,SQLRowCountreturns -1

1 rowsfetched

經過以上步驟,確認通過ODBC可以正常訪問PostgreSQL。

安裝libpq

針對遠程抽取,需要在安裝GoldenGate的機器上安裝pg lib。

# yum -y install postgresql-libs

配置GoldenGate

配置MGR和附加日志

運行ggsci

GGSCI> create subidrs

配置mgr

GGSCI> edit param mgr

Port 7809

確認OGG可以登錄到PostgreSQL

GGSCI > dblogin sourcedb testdb, useridpostgres, password post3214

Successfully logged into database.

對需要同步的表,添加附加日志

GGSCI> add trandata test.tb1

GGSCI> add trandata test.tb2

配置抽取進程

GGSCI> edit param ex1

extractex1

sourcedbtestdb, userid postgres, password post3214

exttrail./dirdat/ea

tabletest.*;

注冊和添加抽取進程

GGSCI >register extract ex1

2020-07-1816:40:45? INFO??? OGG-25355?Successfully created replication slot 'ex1_46b13bf0f63b63ba' for EXTRACTgroup 'EX1' in database 'testdb'.

GGSCI> add ext ex1, tranlog , begin now

GGSCI >add exttrail ./dirdat/ea, ext ex1

啟動抽取進程

GGSCI > start ex1

GGSCI > info ex1

EXTRACT??? EX1??????Last Started 2020-07-18 16:41??Status RUNNING

CheckpointLag?????? 00:00:00 (updated 00:00:07 ago)

ProcessID?????????? 11376

VAM ReadCheckpoint? 2020-07-18 16:41:02.708290

ReplicationSlot???? ex1_46b13bf0f63b63ba is activewith PID 8338 in database testdb

SlotRestart LSN???? 0/16BAA78

SlotFlush LSN?????? 0/16BAAB0

CurrentLog Position 0/16BAAB0

由上述信息可以看出,GoldenGate可以正常讀取數據庫日志。

測試

在PostgreSQL上進行數據變更操作

testdb=#insert into test.tb1 values(1,'abc');

INSERT 01

testdb=#insert into test.tb1 values(2,'abc');

INSERT 01

testdb=#update test.tb1 set name='ksaa' where id=1;

UPDATE 1

testdb=#delete from test.tb1 where id=2;

DELETE 1

查看GoldenGate是否能捕獲增量數據

GGSCI> stats ex1, total

SendingSTATS request to EXTRACT EX1 ...

Start ofStatistics at 2020-07-18 16:42:28.

Output to./dirdat/ea:

Extractingfrom test.tb1 to test.tb1:

*** Totalstatistics since 2020-07-18 16:41:57 ***

??????? Total inserts????????????????????????????????????? 2.00

???? ???Total updates???????????????????????????????????? 1.00

??????? Total deletes????????????????????????????????????? 1.00

??????? Total upserts????????????????????????????????????? 0.00

??????? Total discards???????????????????????????????????? 0.00

??????? Total operations???????????????????????? ??????????4.00

End ofStatistics.

可以看到,GoldenGate已經捕獲到變更數據。

小結

GoldenGate配置從PostgreSQL抽取增量數據,與其它數據庫的配置完全一樣。通過使用GoldenGate PostgreSQL,可以在不同異構環境中,實現更多的數據實時集中和分發,以滿足數據同步的需求。針對GoldenGate PostgreSQL更詳細的說明可參考官方文檔:

https://docs.oracle.com/en/middleware/goldengate/core/19.1/installing/installing-postgresql.html

822d9904bd899bc4913887c8109f714b.png

作者簡介

蔡東林,甲骨文云平臺數據集成資深咨詢顧問,專注于甲骨文數據集成相關產品及解決方案。具有15+年的數據倉庫、數據處理經驗,熟悉甲骨文相關集成產品,方案和項目實施經驗。熟悉電信,銀行行業。您可以通過donglin.cai@oracle.com與他聯系。

了解更多,敬請關注甲骨文開發者社區......

16eb9079acc8fd7f217bfb5bb1be27c9.png

f3bdb503a44625de2f346b63101adf75.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/182786.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息