作者简介:卢鹏,现任职于海天起点,从事国家电网数据库相关维护工作,曾就职于中国移动,从事数据模型数据治理等工作。擅长oracle数据库性能优化,数据治理,数据标准等。
配置源端抽取投递进程
1 2 3 4 5 6 7 8 9 10 11 12 13 |
GGSCI(hndt host 5)45> view params ex_t1 EXTRACT ex t1 USERID ogg, password oggxxxx._1234567890 DISCARDFILE ./dirrpt/exthbase.dsc, APPEND, MEGABYTES 1024 Exttrail ./dirdat/tc, format level 5 TABLE SCOTT, t1 GGSCI(hndt host 5)47> view params DP_T1 extract dp t1 USERID ogg, password oggxxxx_.1234567890 rmthost 22.56 0.136, mgrport 7089 rmttralt /datal/txogg/ogg/dirdat/tc, format level 5 gettruncates |
oracle 源端ogg生成源端数据格式定义文件
1 2 3 4 5 6 7 8 |
hndlhost5: /home/oracle/t xogg/ogg/di rpm(newzydb)$ more defgen_1.prm DEFSFILE ./dirdef/defgen_postgres_1.prm; userid ogg,password oggxxxx_.1234567890; table scott,t1; defgen paramfile ./dirprm/defgen_1.prm scp ./dirdef/defgen_postgres_1.prm txogg@22.56 0.136: /data1/txogg/ogg/dirdef |
目标端oracle ogg for postgresql安装配置
- 软件解压
解压ogg软件至/txogg下
- 修改oggcore.rsp
1 2 3 4 |
INSTALL_OPTION=ORA11g SOFTWARE_LOCATION=/data1/txogg/ogg START_MANAGER=false UNIX_GROUP_NAME=oinstall |
- 静默安装
1 2 |
cd /txogg/ogg ./runInstaller -silent -responsefile /txogg/ogg/response/oggcore.rsp |
- 环境变量新增
1 2 3 4 |
export GGATE=/data1/txogg/ogg export LD_LIBRARY_PATH=$ LD_LIBRARY_PATH: GGATE/lib export PATH=$PATH:$PGHOME/bin:$ GGATE export ODBCINI=$GGATE/odbc.ini |
目标端创建对应表测试
1 2 3 4 5 6 7 8 9 |
ogg_test=> create table t1 (col1 float8,col2 varchar(50)); CREATE TABLE ogg_test=>\d t1 Table "public.t1" Column| Type | Collation | Nullable | default | Storage | Stats target | Desc ription ------+----------------------+----------------+-----------+------------+------------+--------------------+---------------- col1 |double precision | | | | | | | col2 |character varying(50) | | | | | | | |
目标端配置odbc.ini文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[ODBC Data Sources] postgre=DataDirect 10.0 PostgreSQL Wire Protocol [ODBC] IANAAppCodePage=106 InstallDir=/data1/txogg/ogg [postgre] Driver=/data1/txogg/ogg/lib/GGpsql25.so Description=DataDirect 10.0 PostgreSQL Wire Protocol Database=ogg_test HostName=22.56.0.136 PortNumber=11379 LogonID=ogg password=ogg |
参数说明:
[ODBC Data Sources]里边配置该ODBC的别名,本文件中也就是GG_Postgres
[ODBC]:
IANAAppCodePage指的是字符集的设置这里的106值得是UTF8,如果是4则为ISO-8859-1,注意这个应该始终和postgres的字符集设置相同,不同字符集对应的值见附件。
InstallDir对应ogg的安装目录
[GG_Postgres]:这里的名称对应的是上边ODBC的别名
Driver这里指向的是ogg安装目录下的lib/GGpsql25.so
Description是描述
Database填写数据库名称
HostName填写本机的hostname,可以解析的即可。
PosrNumber是postgres的监听端口。
LogonID填写postgres的用户名
password填写postgres的密码
ogg复制进程配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
GGSCI (localhost.localdomain) 12> edit params rep_t1 replicat rep_t1 SOURCEDEFS ./dirdef/defgen_postgres_1.prm SETENV(PGCLIENTENCODING = "UTF8") SETENV(ODBCINI="/data1/txogg/ogg/odbc.ini") SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8") TARGETDB postgre,userid ogg,password ogg map scott.t1,target public.t1,COLMAP(COL1=col1,COL2=col2); GGSCI (localhost.localdomain) 12>add replicat rep_t1,exttrail /data1/txogg/ogg/dirdat/tc,begin now GGSCI (localhost.localdomain) 13>info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP_T1 00:00:00 00:00:01 |
测试数据数据入库
源库插入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SQL> insert into scott.t1 select object_id,object_name from dba_objects where rownum<10; 9 rows created. SQL> select * from scott.t1; COL1 COL2 ---------- ------------------------------ 20 ICOL$ 46 I_USER1 28 CON$ 15 UNDO$ 29 C_COBJ# 3 I_OBJ# 25 PROXY_ROLE_DATA$ 41 I_IND1 54 I_CDEF2 |
目标端数据查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ogg_test=# select * from t1; col1 | col2 ------+--------- (0 rows) ogg_test=# select * from t1; col1 | col2 ------+--------------------------- 20 | ICOL$ 46 | I_USER1 28 | CON$ 15 | UNDO$ 29 | C_COBJ# 3 | I_OBJ# 25 | PROXY_ROLE_DATA$ 41 | I_IND1 54 | I_CDEF2 |
参考文档
Oracle GoldenGate for PostgreSQL
未经允许不得转载:Oracle一体机用户组 » ogg实现oracle到postgresql表的实时同步