原 【DB宝63】项目分享:使用ora2pg迁移Oracle19c到PG13并使用OGG配置实时同步
Tags: Oracle原创PGMySQLOGG监控迁移ora2pg
4.3.2、OGG配置
4.3.2.1、表上添加附件日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | cd /ogg ./ggsci dblogin userid lhrogg password lhr list table soe.* capture tabledef lhrogg.test01 add trandata soe.* add trandata lhrogg.test01 INFO TRANDATA lhrogg.test01 -- SQL查询 col owner format a10 col table_name format a20 select * from dba_log_groups where owner in ('SOE','LHROGG') ; select * from dba_log_group_columns where owner in ('SOE','LHROGG') ; col owner format a10 col table_name format a20 select DISTINCT owner,table_name from dba_log_groups where owner in ('SOE','LHROGG') ; OWNER TABLE_NAME ---------- -------------------- SOE CARD_DETAILS LHROGG TEST01 SOE LOGON SOE ORDER_ITEMS SOE PRODUCT_INFORMATION SOE WAREHOUSES SOE ORDERS SOE ADDRESSES SOE INVENTORIES SOE PRODUCT_DESCRIPTIONS SOE CUSTOMERS SOE ORDERENTRY_METADATA 12 rows selected. |
4.3.2.2、配置MGR管理进程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | -- edit param mgr cat > /ogg/dirprm/mgr.prm << "EOF" PORT 7809 DYNAMICPORTLIST 7810-7830 AUTOSTART EXTRACT * AUTORESTART EXTRACT *, RETRIES 100, WAITMINUTES 2, RESETMINUTES 10 PURGEOLDEXTRACTS ./dirdat/*, usecheckpoints, minkeepdays 30 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45 EOF start mgr info mgr -- 检查OGG启动的端口: send mgr childstatus debug send mgr getportinfo detail |
4.3.2.3、新增ogg抽取进程extract
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | -- edit param ext_ora cat > /ogg/dirprm/ext_ora.prm << "EOF" extract ext_ora setenv (ORACLE_SID=lhrsdb) setenv (ORACLE_HOME=/opt/oracle/product/19c/dbhome_1) setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") userid lhrogg,password lhr exttrail /ogg/dirdat/ex table lhrogg.test01; table soe.*; EOF -- 添加进程 add extract ext_ora, tranlog, begin now add exttrail /ogg/dirdat/ex, extract ext_ora -- 查询 INFO EXTRACT ext_ora INFO EXTRACT * INFO RMTTRAIL * |
4.3.2.4、新增ogg传送进程pump
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- edit param pump_ora cat > /ogg/dirprm/pump_ora.prm << "EOF" extract pump_ora setenv (ORACLE_SID=lhrsdb) setenv (ORACLE_HOME=/opt/oracle/product/19c/dbhome_1) setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") rmthost 192.168.68.67,mgrport 7809,compress rmttrail /ogg/dirdat/ex table lhrogg.test01; table soe.*; EOF add extract pump_ora exttrailsource /ogg/dirdat/ex add rmttrail /ogg/dirdat/ex,extract pump_ora |
4.3.2.5、生成源端定义文件
oracle和pg的数据类型不同,感觉是为了类型转换
1 2 3 4 5 6 7 8 9 10 11 | -- edit param defgen cat > /ogg/dirprm/defgen.prm << "EOF" DEFSFILE ./dirdef/defgen_PG.prm userid lhrogg,password lhr table lhrogg.test01; table soe.*; EOF -- 生成定义文件 /ogg/defgen paramfile /ogg/dirprm/defgen.prm |
然后通过scp将def文件传输到目标端
1 | scp /ogg/dirdef/defgen_PG.prm pg13@192.168.68.67:/ogg/dirdef/defgen_PG.prm |
4.4、目标端OGG配置
4.4.1、进入pg数据库创建测试用户
1 2 3 4 5 6 7 | su - pg13 psql create schema lhrogg; create user lhrogg superuser login createdb PASSWORD 'lhr' ; \c lhrdb lhrogg create table lhrogg.test01(id int primary key,name varchar(10),age int); |
4.4.2、创建DSN(database source name)
ogg for pg使用的是ODBC来连接数据库,因此需要指明ODBC dirver。