oracle ogg11 在linux的部署

Oracle GoldenGate 11g(OGG 11)在 Linux 上的部署是一个常见的数据复制和实时同步解决方案。以下是详细的部署步骤,适用于 Oracle GoldenGate 11.2.x 版本在 Linux 系统上的安装与配置。

✅ 一、环境准备

  1. 操作系统要求
    Linux x86-64(如:Red Hat Enterprise Linux 6/7,CentOS 6/7)
    用户具有 root 和 oracle 权限
    内核参数已优化(可选,但建议)
  2. 软件依赖
    Oracle Database 客户端或服务端已安装(版本需兼容 OGG 11)
    Oracle Net 配置完成(tnsnames.ora, listener.ora)
    Java JRE(某些管理工具需要)
  3. 下载 GoldenGate 软件
    从 Oracle 官方支持网站下载:

https://support.oracle.com

搜索补丁包:

Patch 17061440 - Oracle GoldenGate 11.2.1.0.x for Oracle 11g on Linux x86-64
文件名类似:p17061440_112100_Linux-x86-64.zip
✅ 二、安装 GoldenGate 软件

  1. 创建安装目录
    sudo mkdir -p /u01/app/oracle/product/ggs11
    sudo chown oracle:oinstall /u01/app/oracle/product/ggs11
  2. 解压软件包
    unzip p17061440_112100_Linux-x86-64.zip -d /u01/app/oracle/product/ggs11
  3. 设置环境变量(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
✅ 三、数据库配置(源端和目标端)

  1. 启用归档模式(仅源端)
    SQL> archive log list;
    SQL> shutdown immediate;
    SQL> startup mount;
    SQL> alter database archivelog;
    SQL> alter database open;
  2. 启用补充日志(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 并创建子目录

  1. 进入 GGSCI 命令行
    cd $GG_HOME
    ./ggsci
  2. 创建工作子目录
    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)— 源端

  1. 添加抽取进程
    GGSCI> ADD EXTRACT eora_1, TRANLOG, BEGIN NOW
  2. 添加本地 Trail 文件
    GGSCI> ADD EXTTRAIL ./dirdat/et, EXTRACT eora_1, MEGABYTES 100
  3. 编辑 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)— 可选(用于远程传输)

  1. 添加 Pump 进程
    GGSCI> ADD EXTRACT pora_1, EXTTRAILSOURCE ./dirdat/et
    GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT pora_1, MEGABYTES 100
  2. 编辑 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

  1. 配置目标端 MGR(同上,端口可为 7809)
  2. 添加 Replicat 进程
    GGSCI> ADD REPLICAT rora_1, EXTTRAIL ./dirdat/rt, NODEBUGSYNC
  3. 编辑 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 显式映射字段。

  1. 启动 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 仍广泛使用。

posted @ 2026-02-09 14:21  wzusun  阅读(11)  评论(0)    收藏  举报