Oracle GoldenGate故障排查与解决方案

需积分: 9 3 下载量 122 浏览量 更新于2024-09-14 收藏 75KB DOC 举报
"Oracle GoldenGate故障解决方法汇总" Oracle GoldenGate是一种实时数据复制工具,用于在不同的数据库之间实现数据的持续同步。它在处理数据库间的变更数据捕获和传输时,可能会遇到各种故障。以下是对一些常见故障及其解决方法的详细分析: 1. 用户不存在问题: 当GoldenGate在目标端尝试执行DDL操作(如ALTER USER)时,如果发现用户不存在,将抛出错误`ORA-01918`。为了解决这个问题: - 方法1:如果不需要同步该用户,可以在目标数据库上删除映射到该用户的映射规则,如`MAP KINGSTAR.*, TARGET CRMKINGSTAR.*;`,然后重启GoldenGate进程。 - 方法2:手动在目标数据库上创建缺失的用户,确保所有必要的权限和配置都正确设置,然后重启GoldenGate进程。 2. 表不存在问题: 当GoldenGate尝试访问目标数据库上不存在的表时,会报错`Table does not exist in target database.`。解决方式包括: - 方法1:如果不需要同步该表,可以在GoldenGate的映射规则中排除该表,例如添加`MAPEXCLUDE OLAP.TB_FT_OFSTK_CLIENT_BY_DAY`,然后重启进程。 - 方法2:在目标数据库上手工创建该表,并确保其结构与源数据库一致。在异构数据库环境下,可能还需生成并应用表结构定义文件。 3. 数据库索引失效问题: 当GoldenGate在处理索引时,若遇到索引不可用(`ORA-01502: index 'APCAXHT.PK_SID' or partition of such index is in unusable state`),可能会影响数据同步。解决步骤如下: - 首先,需要在目标数据库上检查并修复该索引。这通常涉及使用`ALTER INDEX REBUILD`或`ALTER INDEX ONLINE REBUILD`命令来重建索引,如果涉及分区,可能需要对每个分区进行操作。 - 修复后,确保GoldenGate进程能够正常运行,无其他关联错误。 以上故障解决方法需要结合GoldenGate的日志进行分析,找出问题的根源。在日常运维中,定期检查GoldenGate的运行状态,及时发现并处理这些问题至关重要。同时,建议进行定期备份和配置管理,以便在出现故障时能快速恢复到正常状态。此外,理解Oracle GoldenGate的配置和工作原理,以及熟悉Oracle数据库的基本操作,将有助于更高效地排查和解决这些问题。
2010-10-31 上传
第1章 GoldenGate概述 5 1.1 GoldenGate技术原理 5 1.2 GoldenGate可靠的复制 8 1.3 GoldenGate支持操作系统和数据库类型 8 第2章 安装GoldenGate 9 2.1 安装GoldenGate环境 9 2.2 分别在源数据库,目标数据库安装GoldenGate 9 2.2.1 下载GoldenGate 9 2.2.2 解压 10 2.2.3 安装GoldenGate 10 2.2.4 同时在目标数据库安装GoldenGate 11 第3章 把源数据库的数据同步到目标数据库中 11 3.1 设置ORACLE_HOME,ORACLE_SID环境变量 11 3.2 在源数据库ora01上打开归档日志及其辅助日志 12 3.3 在源数据库,目标数据库创建GoldenGate GLOBALS参数文件 13 3.3.1 在源数据库创建 13 3.3.2 创建Goldengate manager服务 13 3.3.3 在目标数据库安装上面步骤创建manager 14 3.4 在源数据库,目标数据库配置mgr,启动manager进程 14 3.4.1 配置manager服务的mgr配置文件 14 3.4.2 启动mgr 15 3.4.3 同样在目标数据库配置mgr文件 15 3.5 测试把源数据库数据同步到目标数据库数据库上 16 3.5.1 在源数据库创建test01数据库用户 16 3.5.2 执行GoldenGate的测试脚本,创建表 16 3.5.3 插入数据脚本 17 3.5.4 在goldengate中用oracle用户登陆数据库 17 3.5.5 增加需要传输的用户表 18 3.5.6 在目标数据库创建用户及其表结构 18 3.6 用goldengate中的direct load方式导入数据到目标数据库的test02用户表上 19 3.6.1 在源数据库配置一个extract进程 eini01 19 3.6.2 在目标数据库端配置一个replicat进程 19 3.6.3 在源数据库执行初始化过程 20 3.6.4 验证目标数据库端的test02用户表数据是否和源数据库一样 20 第4章 把源数据库的修改数据同步到目标数据库中 21 4.1 在源数据库配置一个EXTRACT进程及配置其文件 21 4.1.1 配置EXTRACT文件 21 4.1.2 在GGSCI.exe增加一个EXTRACT进程 22 4.2 配置data pump 23 4.2.1 在源数据库端添加一个pump进程 23 4.2.2 在源数据库的ggsci中增加extract进程 24 4.2.3 在源数据库执行RMTTRAIL 24 4.3 启动data pump capture process 24 4.4 在目标数据库端配置change delivery 26 4.5 在目标数据库中创建goldengate专属用户及其表 26 4.6 在目标数据库配置replicat进程 27 4.6.1 在ggsci增加一个replicat进程 27 4.6.2 编辑配置replicat文件 27 4.7 启动replicat进程 28 4.8 测试检查同步结果 28 4.8.1 在源数据库执行插入数据 28 第5章 把源数据库的DDL(表结构)修改同步到目标数据库中 32 5.1 在源数据库端关闭数据库的回收站 32 5.2 编辑源数据库参数文件GLOBALS 32 5.3 在源数据库创建goldengate01用户,并创建goldengate所需要的表 33 5.4 检查源数据库上的表是否安装好 35 5.5 修改源数据库配置extract文件 35 5.6 重新启动extract进程 36 5.7 验证源数据库是否可以同步表结构到目标数据库中 36 第6章 配置源数据库、目标数据库的双向数据传输 36 6.1 关闭目标数据库回收站,打开数据库辅助日志 37 6.2 在源数据库端添加checkpoint表,实现一致性 37 6.3 在源数据库增加一个replicat进程 38 6.4 在源数据库创建一个checkpoint表 38 6.5 编辑配置replicat进程 39 6.6 在目标数据库端配置GLOBALS文件 39 6.7 在目标数据库安装goldengate用户需要的表 39 6.8 在目标数据库配置一个extract进程 40 6.9 在目标数据库端配置一个pump进程 40 6.10 在源数据库端启动replicat进程 42 6.11 在目标数据库中启动extract、replicat的进程 42 6.12 目标数据库可以把数据、表结构的修过同步到源数据库服务器上 42 第7章 备注: 44 7.1 Oracle官网的下载地址 44 7.2 GoldenGate的GLOBALS配置文件内容 44 7.3 GoldenGate的eiex01配置文件内容 44 7.4 GoldenGate的epmp01配置文件内容 44 7.5 GoldenGate的rora01配置文件内容 45 7.6 GoldenGate的eiexbb配置文件内容 45 7.7 GoldenGate的epmpbb配置文件内容 45 7.8 GoldenGate的rorabb配置文件内容 45 7.9 更改GoldenGate的复制时间点 46 7.10 查看GoldenGate命令格式 46 7.11 查看manager,extract,replicat是否运行 47 7.12 查看goldengate进程的错误 48