【Oracle】Oracle到PostgreSQL的OGG同步配置

前一阵子做的从Oracle实时同步到PostgreSQL,查到的资料很少,后经查询MOS发现有几个OGG的小版本支持Oracle到PostgreSQL的同步,过程整理后跟大家分享一下。

测试环境:
Oracle 11.2.0.4
PostgreSQL:9.3.9
OS:OEL 5.8 x64
OGG:11.2.1.0.30  

1.源端检查以下环境变量

ORACLE_HOME
ORACLE_SID
LD_LIBRARY_PATH

2.检查源端归档情况,如果没有,开启归档

alter system set log_archive_dest='LOCATION=USE_DB_RECOVERY_FILE_DEST' scope=both sid='*';
shutdown immediate
startup mount
alter database archivelog;
alter database open;

3.源库开启附加日志创建goldengate用户并授权

alter database add supplemental log data;

create user goldengate identified by goldengate;

grant dba to goldengate;

4.源端解压ogg软件,并配置以下环境变量加到.bash_profile中。

export PATH=$PATH:/home/oracle/ggs
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/home/oracle/ggs/lib

5.源端create subdirs

GGSCI (test) 1> create subdirs

Creating subdirectories under current directory /home/oracle/ggs

Parameter files                /home/oracle/ggs/dirprm: already exists
Report files                   /home/oracle/ggs/dirrpt: created
Checkpoint files               /home/oracle/ggs/dirchk: created
Process status files           /home/oracle/ggs/dirpcs: created
SQL script files               /home/oracle/ggs/dirsql: created
Database definitions files     /home/oracle/ggs/dirdef: created
Extract data files             /home/oracle/ggs/dirdat: created
Temporary files                /home/oracle/ggs/dirtmp: created
Stdout files                   /home/oracle/ggs/dirout: created

6.源端配置mgr进程

GGSCI (test) 2> edit param mgr

加个简单参数即可

PORT 7809

7.源端启动mgr

GGSCI (test) 3> start mgr

GGSCI (test) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

8.目标端建一个oracle用户,并部署ogg软件

mkdir ggs
cd ggs
tar xvf *.tar
[oracle@edb1 ggs]$ export LD_LIBRARY_PATH=/home/oracle/ggs/lib

9.目标端配置odbc.ini文件

[ODBC Data Sources]

GG_Postgres=DataDirect 9.3 PostgreSQL Wire Protocol

[ODBC]

IANAAppCodePage=106

InstallDir=/home/oracle/ggs

[GG_Postgres]

Driver=/home/oracle/ggs/lib/GGpsql25.so

Description=DataDirect 9.3 PostgreSQL Wire Protocol

Database=badly9db

HostName=edb1.test.com

PortNumber=5432

LogonID=badly9

<think>好的,我现在需要帮助用户了解如何使用OGGOracle数据库实时同步数据,特别是配置教程和最佳实践。首先,我需要回忆一下OGG的基本概念和配置步骤。OGGOracle GoldenGate的缩写,主要用于实时数据复制和同步。用户可能想将数据从Oracle同步到另一个数据库,比如PostgreSQL,如引用[1]提到的。 接下来,我应该按照配置流程来组织回答。首先,确保源和目标数据库满足要求,比如版本兼容性、归档模式和补充日志,这些在引用[4]中提到了强制日志和表的logging属性。然后,安装OGG软件,分别在源和目标端进行。创建必要的用户和权限,可能需要引用[2]中的注册extract的命令。 配置管理进程是重要的一步,包括源端的Extract进程、传输进程和目标端的Replicat进程。需要给出示例参数文件,如EXTRACT、PUMP和REPLICAT的配置,使用正确的语法,如EXTRACT EXT_KAF1,这对应引用[2]中的注册命令。同时,路径和端口号需要用户根据实际情况修改。 启动进程和监控部分,需要指导用户如何启动各个进程,并使用info命令检查状态。验证数据同步时,可以建议用户插入测试数据并检查目标端,确保同步成功。最佳实践部分,需要强调日志管理、网络稳定性、定期监控和性能优化,这些都是引用[4]中提到的要点,比如检查表的logging属性和确认nologging操作。 最后,生成相关问题,可能涉及冲突处理、数据过滤、高可用方案以及与其他工具的对比,这些是用户可能进一步关心的问题。同时,确保引用正确,每个引用标识对应到用户提供的参考资料,比如引用[1]到[4]。 需要注意的是,用户提供的引用中有一些不相关的内容,比如快速排序的Python代码,但用户的问题是关于OGG同步的,所以应忽略无关部分。同时,确保所有技术术语和步骤描述准确,避免错误。例如,补充日志必须开启,否则OGG无法捕获数据变更。另外,参数文件中的主机名和端口需要替换为用户实际使用的值,避免直接复制示例中的内容导致配置失败。 可能还需要提醒用户关于字符集兼容性、时间戳格式等问题,这些在异构数据库同步中常见。但用户的问题可能更关注基础配置,所以先覆盖主要步骤,细节可以在相关问题中展开。总之,回答需要结构清晰,步骤明确,引用正确,并给出进一步的问题引导用户深入探索。</think>### 使用OGG实时同步Oracle数据的配置教程 #### 1. **环境准备** - **源端(Oracle)要求**: - 开启归档模式:`ALTER DATABASE ARCHIVELOG;` - 启用补充日志:`ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;` - 确保需要同步的表开启`LOGGING`属性(若仅同步部分表)[^4]。 - **目标端(如PostgreSQL)要求**: - 安装兼容的OGG版本,配置数据库连接参数。 - 创建与源表结构一致的目标表(OGG支持自动映射,但建议手动验证)。 #### 2. **OGG软件安装** - **源端安装**: ```bash # 解压安装包并运行安装程序 ./ggsci CREATE SUBDIRS ``` - **目标端安装**: 类似源端步骤,确保`ggsci`命令行工具可用。 #### 3. **配置用户权限** - 在Oracle中创建OGG管理用户并授权: ```sql CREATE USER ogg_admin IDENTIFIED BY password; GRANT CONNECT, RESOURCE, DBA TO ogg_admin; GRANT EXECUTE ON UTL_FILE TO ogg_admin; ``` #### 4. **配置管理进程** - **源端配置Extract进程**: ```bash GGSCI> ADD EXTRACT EXT_KAF1, TRANLOG, BEGIN NOW GGSCI> ADD EXTTRAIL /ogg/dirdat/ka, EXTRACT EXT_KAF1 ``` 编辑参数文件`dirprm/EXT_KAF1.prm`: ```properties EXTRACT EXT_KAF1 USERID ogg_admin, PASSWORD password EXTTRAIL /ogg/dirdat/ka TABLE schema_name.table_name; ``` - **配置传输进程(Pump)**: ```bash GGSCI> ADD EXTRACT PUMP_KAF1, EXTTRAILSOURCE /ogg/dirdat/ka GGSCI> ADD RMTTRAIL /ogg/rmttrail/ka, EXTRACT PUMP_KAF1 ``` 参数文件`PUMP_KAF1.prm`: ```properties EXTRACT PUMP_KAF1 RMTHOST target_host, PORT 7809 RMTTRAIL /ogg/rmttrail/ka TABLE schema_name.table_name; ``` - **目标端配置Replicat进程**: ```bash GGSCI> ADD REPLICAT REP_KAF1, EXTTRAIL /ogg/rmttrail/ka ``` 参数文件`REP_KAF1.prm`: ```properties REPLICAT REP_KAF1 TARGETDB pg_db, USERID pg_user, PASSWORD pg_pwd MAP schema_name.table_name, TARGET schema_name.table_name; ``` #### 5. **启动进程与验证** - **启动源端进程**: ```bash GGSCI> START EXTRACT EXT_KAF1 GGSCI> START EXTRACT PUMP_KAF1 ``` - **启动目标端进程**: ```bash GGSCI> START REPLICAT REP_KAF1 ``` - **验证同步**: - 在Oracle插入测试数据: ```sql INSERT INTO table_name VALUES (...); COMMIT; ``` - 在目标端查询是否同步成功。 #### 6. **最佳实践** - **日志管理**: - 定期清理过时的Trail文件,避免磁盘空间不足。 - 使用`ALTER EXTRACT EXT_KAF1, ROLLOVER`强制切换Trail文件。 - **网络优化**: - 使用压缩传输参数(如`COMPRESS`)减少带宽占用。 - **容灾设计**: - 配置Checkpoint表:`ADD CHECKPOINTTABLE ogg_admin.checkpoint_table;` --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值