文章目录
前言
本文详细介绍了我的OGG旅程、从OGG实现Oracle19C到postgreSQL14的实时同步📣 1.架构设计
主机名 | IP | 操作系统 | 内存/空间 | 角色 | 说明 |
---|---|---|---|---|---|
ora19c | 172.18.12.90 | centos7.8 | 2c/18G 400G | 源端 | Oracle 19.3 |
postgres14 | 172.18.12.50 | centos7.8 | 2c/18G 400G | 目标库 | postgreSQL 14 |
📣 2.OGG下载
📣 3.安装OGG for Oracle
✨ 3.1 解压授权
✨ 3.2. 静默安装
✨ 3.3 环境变量
cat >> /home/oracle/.bash_profile <<"EOF"
export OGG_HOME=/ogg
export PATH=$OGG_HOME:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$OGG_HOME:$ORACLE_HOME/lib:$LD_LIBRARYPATH
alias ggsci='cd $OGG_HOME;ggsci'
EOF
source /home/oracle/.bash_profile
[oracle@jemora19c ~]$ ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Jul 29 2021 03:59:23
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.
GGSCI (jemora19c) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
✨ 3.4 创建目录
📣 4.安装OGG for postgreSQL
✨ 4.1 解压及授权
✨ 4.2 修改环境变量
cat >> /var/lib/pgsql/.bash_profile <<"EOF"
export OGG_HOME=/ogg
export PATH=$OGG_HOME:$PATH
export LD_LIBRARY_PATH=$OGG_HOME/lib:$LD_LIBRARY_PATH
alias ggsci='cd $GG_HOME;ggsci'
EOF
source /var/lib/pgsql/.bash_profile
✨ 4.3 创建目录
📣 5.Oracle配置
✨ 5.1 开归档
✨ 5.2 打开附加日志
📣 6.MGR管理进程
📣 7.抽取进程extract
📣 8.传送进程pump
📣 9.目标端配置
📣 10.测试同步
-- oracle查询
col table_name format a30
SELECT a.table_name,a.num_rows FROM dba_tables a where a.OWNER='STEST' order by num_rows desc ;
SYS@oradb> delete from STEST.LOGON;
2383 rows deleted.
SYS@oradb> select count(*) from STEST.LOGON;
COUNT(*)
----------
0
jemdb=# select count(*) from stest.LOGON;
count
-------
0
(1 row)
-- 在pg中查询数据量
select nspname AS schemaname,
relname,
reltuples::numeric as rowcount,
pg_size_pretty (
pg_total_relation_size ( '"' || nspname || '"."' || relname || '"' )) AS SIZE
from pg_class C LEFT JOIN pg_namespace N ON ( N.oid = C.relnamespace )
where nspname NOT IN ( 'pg_catalog', 'information_schema' )
AND relkind = 'r'
ORDER by reltuples DESC
LIMIT 20;
schemaname | relname | rowcount | size
------------+----------------------+----------+------------
stest | inventories | 899441 | 433 MB
stest | order_items | 7341 | 1072 kB
stest | addresses | 1500 | 264 kB
stest | card_details | 1500 | 264 kB
stest | orders | 1430 | 376 kB
stest | product_information | 1000 | 400 kB
stest | warehouses | 1000 | 192 kB
stest | customers | 1000 | 440 kB
stest | product_descriptions | 1000 | 288 kB
stest | logon | 0 | 16 kB
stest | orderentry_metadata | -1 | 8192 bytes
pgogg | test01 | -1 | 8192 bytes
stest | checkpointtab | -1 | 32 kB
stest | checkpointtab_lox | -1 | 16 kB
(14 rows)
GGSCI (postgres14) 2> stats rep_pg,table stest.logon, total
Sending STATS request to Replicat group REP_PG ...
Start of statistics at 2023-12-02 00:27:37.
Replicating from STEST.LOGON to stest.logon:
*** Total statistics since 2023-12-02 00:24:44 ***
Total inserts 0.00
Total updates 0.00
Total deletes 2383.00
Total upserts 0.00
Total discards 0.00
Total operations 2383.00