oracle ogg11 在linux的部署
Oracle GoldenGate 11g(OGG 11)在 Linux 上的部署是一个常见的数据复制和实时同步解决方案。以下是详细的部署步骤,适用于 Oracle GoldenGate 11.2.x 版本在 Linux 系统上的安装与配置。
✅ 一、环境准备
- 操作系统要求
Linux x86-64(如:Red Hat Enterprise Linux 6/7,CentOS 6/7)
用户具有 root 和 oracle 权限
内核参数已优化(可选,但建议) - 软件依赖
Oracle Database 客户端或服务端已安装(版本需兼容 OGG 11)
Oracle Net 配置完成(tnsnames.ora, listener.ora)
Java JRE(某些管理工具需要) - 下载 GoldenGate 软件
从 Oracle 官方支持网站下载:
搜索补丁包:
Patch 17061440 - Oracle GoldenGate 11.2.1.0.x for Oracle 11g on Linux x86-64
文件名类似:p17061440_112100_Linux-x86-64.zip
✅ 二、安装 GoldenGate 软件
- 创建安装目录
sudo mkdir -p /u01/app/oracle/product/ggs11
sudo chown oracle:oinstall /u01/app/oracle/product/ggs11 - 解压软件包
unzip p17061440_112100_Linux-x86-64.zip -d /u01/app/oracle/product/ggs11 - 设置环境变量(oracle 用户)
编辑 ~/.bash_profile 或 /home/oracle/.bashrc:
export GG_HOME=/u01/app/oracle/product/ggs11
export LD_LIBRARY_PATH=$GG_HOME:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$GG_HOME:$PATH
使配置生效:
source ~/.bash_profile
✅ 三、数据库配置(源端和目标端)
- 启用归档模式(仅源端)
SQL> archive log list;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open; - 启用补充日志(Supplemental Logging)
-- 启用数据库级主键/唯一键补充日志
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
-- 验证
SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;
3. 创建 GoldenGate 数据库用户
-- 创建表空间(可选)
CREATE TABLESPACE ggtbs DATAFILE '/u01/app/oracle/oradata/orcl/ggtbs01.dbf' SIZE 100M AUTOEXTEND ON;
-- 创建用户并授权
CREATE USER ggate IDENTIFIED BY ggate DEFAULT TABLESPACE ggtbs TEMPORARY TABLESPACE temp;
GRANT CONNECT, RESOURCE TO ggate;
GRANT SELECT ANY TABLE TO ggate;
GRANT INSERT ANY TABLE TO ggate;
GRANT UPDATE ANY TABLE TO ggate;
GRANT DELETE ANY TABLE TO ggate;
GRANT ALTER ANY TABLE TO ggate;
-- 执行 DDL 支持所需权限(如果使用 DDL 复制)
GRANT EXECUTE ON UTL_FILE TO ggate;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggate');
✅ 四、启动 GoldenGate 并创建子目录
- 进入 GGSCI 命令行
cd $GG_HOME
./ggsci - 创建工作子目录
GGSCI> CREATE SUBDIRS
这将在 $GG_HOME/dir* 下创建必要的目录,如:
dirchk – 检查点文件
dirdat – trail 文件
dirprm – 参数文件
dirrpt – 报告文件
dirsql – SQL 脚本
dirtmp – 临时大事务存储
✅ 五、配置管理进程(MGR)
编辑 MGR 参数:
GGSCI> EDIT PARAM MGR
内容如下:
PORT 7809
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPHOURS 2
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
ACCESSRULE, PROG *, IPADDR *, ALLOW
启动管理进程:
GGSCI> START MGR
GGSCI> INFO MGR
✅ 六、配置抽取进程(Extract)— 源端
- 添加抽取进程
GGSCI> ADD EXTRACT eora_1, TRANLOG, BEGIN NOW - 添加本地 Trail 文件
GGSCI> ADD EXTTRAIL ./dirdat/et, EXTRACT eora_1, MEGABYTES 100 - 编辑 Extract 参数
GGSCI> EDIT PARAM eora_1
示例参数:
EXTRACT eora_1
SETENV (ORACLE_SID = "orcl")
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggate@orcl, PASSWORD ggate
EXTTRAIL ./dirdat/et
TABLE scott.emp;
TABLE scott.dept;
4. 启动 Extract
GGSCI> START EXTRACT eora_1
GGSCI> INFO EXTRACT eora_1
✅ 七、配置投递进程(Pump Extract)— 可选(用于远程传输)
- 添加 Pump 进程
GGSCI> ADD EXTRACT pora_1, EXTTRAILSOURCE ./dirdat/et
GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT pora_1, MEGABYTES 100 - 编辑 Pump 参数
GGSCI> EDIT PARAM pora_1
内容:
EXTRACT pora_1
SETENV (ORACLE_SID = "orcl")
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggate@orcl, PASSWORD ggate
RMTHOST target_host, MGRPORT 7809
RMTTRAIL ./dirdat/rt
PASSTHRU
TABLE scott.emp;
TABLE scott.dept;
3. 启动 Pump
GGSCI> START EXTRACT pora_1
✅ 八、目标端配置 — 配置 Replicat
- 配置目标端 MGR(同上,端口可为 7809)
- 添加 Replicat 进程
GGSCI> ADD REPLICAT rora_1, EXTTRAIL ./dirdat/rt, NODEBUGSYNC - 编辑 Replicat 参数
GGSCI> EDIT PARAM rora_1
内容:
REPLICAT rora_1
SETENV (ORACLE_SID = "orcld")
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggate@orcld, PASSWORD ggate
ASSUMETARGETDEFS
MAP scott.emp, TARGET scott.emp;
MAP scott.dept, TARGET scott.dept;
若结构不同,使用 COLMAP 显式映射字段。
- 启动 Replicat
GGSCI> START REPLICAT rora_1
✅ 九、监控与验证
常用 GGSCI 命令
INFO ALL -- 查看所有进程状态
INFO EXTRACT eora_1 -- 查看抽取状态
INFO REPLICAT rora_1 -- 查看复制状态
VIEW REPORT eora_1 -- 查看报告
LAG EXTRACT eora_1 -- 查看延迟
STATS EXTRACT eora_1, TOTALS -- 统计信息
检查数据库数据一致性
在源端插入测试数据:
INSERT INTO scott.emp (empno, ename) VALUES (9999, 'TEST_OGG');
COMMIT;
查看目标端是否同步。
✅ 十、常见问题排查
问题 解决方案
Extract 报错 ORA-01031 检查用户权限,确保有 SELECT ANY TABLE 和补充日志
Replicat 报错找不到表 检查目标表是否存在,或使用 HANDLECOLLISIONS
延迟高 检查网络、磁盘 I/O、检查点频率
MGR 启动失败 检查端口是否被占用(7809)
✅ 十一、安全建议
使用加密密码(ENCRYPT PASSWORD 命令)
限制 ACCESSRULE 的 IP 访问
定期清理旧的 trail 文件
开启检查点(Checkpoint)
✅ 总结
Oracle GoldenGate 11g 在 Linux 上的部署流程总结如下:
准备操作系统和数据库环境
安装 OGG 软件并配置环境变量
配置数据库补充日志和专用用户
创建子目录,配置 MGR
配置 Extract(本地 + Pump)
在目标端配置 Replicat
启动并监控进程
⚠️ 注意:OGG 11g 已较老,建议升级至 OGG 12c 或 19c 以获得更好的功能支持(如微服务架构、集成模式等)。但在遗留系统中,11g 仍广泛使用。
浙公网安备 33010602011771号