没有合适的资源?快使用搜索试试~ 我知道了~
OGG实现Oracle与MySQL同构及异构数据库同步配置详解:环境搭建、参数配置与错误解析
需积分: 0 1 下载量 64 浏览量
2025-04-22
21:12:00
上传
评论
收藏 620KB PDF 举报
温馨提示
内容概要:本文详细介绍了Oracle GoldenGate (OGG) 在同构(ORACLE-ORACLE)和异构(ORACLE-MYSQL)数据库间的同步配置及常见错误解析。具体步骤包括:安装OGG软件、配置环境变量、创建相关用户、开启必要的数据库参数(如归档模式、强制日志等)、初始化测试数据、配置DML同步(含单向和双向复制)、配置DDL同步、以及处理异构数据库间的数据同步。针对异构数据库同步,特别强调了MySQL的安装配置、结构转换文件(defgen)的生成、初始化数据抽取、抽取组和复制组的配置,以及遇到的各种问题及其解决方案。 适合人群:具有一定的数据库管理经验,尤其是熟悉Oracle和MySQL数据库的管理员或开发人员,以及负责数据同步和迁移工作的技术人员。 使用场景及目标:①需要在Oracle数据库之间或Oracle与MySQL之间进行实时数据同步的企业环境;②希望通过OGG实现高效、稳定的数据复制,确保数据一致性;③解决OGG配置过程中可能出现的各种技术难题,如环境配置、权限设置、网络连接等问题。 其他说明:本文不仅提供了详细的配置步骤,还针对实际操作中可能遇到的问题给出了具体的解决方法。建议读者在配置过程中仔细阅读每个步骤,并根据自身环境进行适当调整。对于初次接触OGG或MySQL的用户,可能会遇到较多挑战,但通过不断尝试和查阅相关资料,可以逐步掌握OGG的使用技巧。
资源推荐
资源详情
资源评论












格式:rar 资源大小:297.9KB








格式:zip 资源大小:118.2MB








格式:rar 资源大小:93.9MB



OGG同构(ORACLE-ORACLE)、异构(ORACLE-
MYSQL)同步配置
环境:11.2.0.3(已安装数据库实例)+OEL5.7
192.168.1.55 zlm sid:zlm11g
192.168.1.60 zlm2 sid:zlm11g
一、安装软件,配置环境,创建相关用户
1.1 下载介质并安装OGG软件
从官方网址下载最新版OGG FOR ORACLE 11g ON LINUX X86-64软件:
http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html?ssSourceSiteI
d=ocomen
Oracle GoldenGate V11.2.1.0.1 for Oracle 11g on Linux x86-64 (86 MB)
介质名称:ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
1.2 把OGG软件包复制到源端oracle主目录,创建安装目录gg11后2次解压到gg11
[oracle@zlm ~]$ ls
ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@zlm ~]$ cd $OACLE_BASE
[oracle@zlm oracle]$ mkdir gg11
[oracle@zlm oracle]$ cd gg11
[oracle@zlm gg11]$ unzip /home/oracle/ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@zlm gg11]$ ll
total 223764
-rw-rw-r-- 1 oracle oinstall 228556800 Apr 23 2012 fbo_ggs_Linux_x64_ora11g_64bit.tar
-rwxrwxrwx 1 oracle oinstall 220546 May 2 2012 OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
-rwxrwxrwx 1 oracle oinstall 93696 May 2 2012 Oracle GoldenGate 11.2.1.0.1 README.doc
-rwxrwxrwx 1 oracle oinstall 24390 May 2 2012 Oracle GoldenGate 11.2.1.0.1 README.txt
[oracle@zlm gg11]$ tar xvof fbo_ggs_Linux_x64_ora11g_64bit.tar
1.3 修改环境变量文件.bash_profile,加入OGG的环境变量
export GGHOME=$ORACLE_BASE/gg11
export PATH=$ORACLE_BASE/gg11:$ORACLE_HOME/bin:/usr/bin/:$PATH
[oracle@zlm gg11]$ . ~/.bash_profile
[oracle@zlm gg11]$ ggsci
ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such
file or directory
由于没有设置LD_LIBRARY_PATH环境变量,所以无法执行ggsci,添加export
LD_LIBLARY_PATH=$ORACLE_BASE/gg11:$ORACLE_HOME/lib:$ORACLE_HOME/bin
到环境变量.bash_profile并source,或者创建一个link文件:
[oracle@zlm gg11]$ ln -s /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so -
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz10.so

1.4 创建OGG专用目录subdirs
GGSCI (zlm) 1> create subdirs
Creating subdirectories under current directory /u01/app/oracle/gg11
Parameter files /u01/app/oracle/gg11/dirprm: already exists
Report files /u01/app/oracle/gg11/dirrpt: created
Checkpoint files /u01/app/oracle/gg11/dirchk: created
Process status files /u01/app/oracle/gg11/dirpcs: created
SQL script files /u01/app/oracle/gg11/dirsql: created
Database definitions files /u01/app/oracle/gg11/dirdef: created
Extract data files /u01/app/oracle/gg11/dirdat: created
Temporary files /u01/app/oracle/gg11/dirtmp: created
Stdout files /u01/app/oracle/gg11/dirout: created
1.5 开启归档模式、强制日志、附加日志
查看v$database看这3个参数是否已开启,使用OGG必须是开启状态
SQL> select LOG_MODE, SUPPLEMENTAL_LOG_DATA_MIN,FORCE_LOGGING from
v$database;
LOG_MODE SUPPLEME FOR
------------ -------- ---
ARCHIVELOG YES YES
各参数开启方法:
--archivelog
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
--force logging
SQL> alter database force logging;
--supplemental log data
SQL> alter database add supplemental log data;
1.6 关闭数据库的recyclebin(10gDDL必须,11gDDL可选)
SQL> alter system set recyclebin=off scope=spfile; --同步DDL要求关闭10g中的回收站特性
1.7 创建复制用户ogg并授予权限
SQL> create user ogg identified by ogg default tablespace users temporary tablespace temp;
SQL> grant connect,resource,unlimited tablespace to ogg;
1.8 创建测试用户sender并授予权限
SQL> create user sender identified by sender default tablespace users temporary tablespace temp;
SQL> grant connect,resource,unlimited tablespace to sender;

1.9 配置复制的DDL支持(必须SYSDBA登录执行)
SQL> grant execute on utl_file to ogg;
SQL> @$GGHOME/marker_setup.sql; --建立一个DDL标记表
SQL> @$GGHOME/ddl_setup.sql; --INITIALSETUP选项运行ddl_setup.sql
将在数据库中创建捕获DDL语句的Trigger等必要组件(注意,执行时必须断开GGSCI连接,
否则报错)
SQL> @$GGHOME/role_setup.sql; --建立GGS_GGSUSER_ROLE角色
SQL> grant GGS_GGSUSER_ROLE to ogg; --授予给extract group参数中定义的userid用户
SQL> @$GGHOME/ddl_enable.sql; --enable ddl捕获触发器
注意:下面2个SQL脚本只是为了提高DDL复制性能,不是必须的
SQL> @?/rdbms/admin/dbmspool --创建DBMS_SHARED_POOL包
SQL> @ddl_pin --
通过dbms_shared_pool.keep存储过程将DDLReplication相关的对象keep在共享池中,以保证
这些对象不要reload,提升性能
1.10 目标端重复配置以上1.1-1.9全部内容,至此,ORACLE-ORACLE环境搭建完毕
二、用EXPDP/IMPDP初始化测试数据(仅限ORACLE-ORACLE)
2.1 创建EXPDP/IMPDP使用的directory及其对应的本地目录
SQL> set lin 200 pages 999
SQL> col owner for a5
SQL> col directory_name for a25
SQL> col directory_path for a75
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ------------------------- ----------------------------------------------------------------------
SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/zlm11g/zlm11g/trace
SYS SUBDIR
/u01/app/oracle/product/11.2.0/db_1/demo/schema/order_entry//2002/Sep
SYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/order_entry/
SYS BACKUP /u01/backup
SYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/log/
SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/product_media/
SYS XMLDIR /u01/app/oracle/product/11.2.0/db_1/rdbms/xml
SYS DATA_FILE_DIR
/u01/app/oracle/product/11.2.0/db_1/demo/schema/sales_history/
SYS DATA_PUMP_DIR /u01/app/oracle/admin/zlm11g/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db_1/ccr/state
SQL> create directory expdump as '/u01/expdp';
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH

----- ------------------------- ----------------------------------------------------------------------
SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/zlm11g/zlm11g/trace
SYS EXPDUMP /u01/expdp
SYS SUBDIR
/u01/app/oracle/product/11.2.0/db_1/demo/schema/order_entry//2002/Sep
SYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/order_entry/
SYS BACKUP /u01/backup
SYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/log/
SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/product_media/
SYS XMLDIR /u01/app/oracle/product/11.2.0/db_1/rdbms/xml
SYS DATA_FILE_DIR
/u01/app/oracle/product/11.2.0/db_1/demo/schema/sales_history/
SYS DATA_PUMP_DIR /u01/app/oracle/admin/zlm11g/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db_1/ccr/state
[oracle@zlm gg11]$ cd /u01/
[oracle@zlm u01]$ ls
app backup
[oracle@zlm u01]$ mkdir /u01/expdp
[oracle@zlm u01]$ ll
total 16
drwxr-xr-x 4 oracle oinstall 4096 Jul 13 03:12 app
drwxrwxr-x 2 oracle oinstall 4096 Jul 21 20:26 backup
drwxr-xr-x 2 oracle oinstall 4096 Aug 28 22:11 expdp
2.2 登录sender用户并创建测试表test
SQL> conn sender/sender
Connected.
SQL> begin
2 for i in 1..3 loop
3 insert into test values(i);
4 end loop;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> select * from test1;
ID
----------
1
2
3

2.3 赋予sender读写directory的权限,执行expdp导出测试表test
SQL> grant read,write on directory expdump to sender;
SQL> !
[oracle@zlm ~]$ expdp sender/sender directory=expdump dumpfile=test.dmp logfile=test.log
tables=test
[oracle@zlm ~]$ cd /u01/expdp
[oracle@zlm expdp]$ ls
test.dmp test.log
2.4 在目标端创建directory及相应的本地路径,复制dump文件到目标端
SQL> create directory impdump as ‘/u01/impdp’;
--target
[oracle@zlm2 gg11]$ mkdir /u01/impdp
[oracle@zlm2 gg11]$ ls /u01
app backup impdp
--source
[oracle@zlm expdp]$ scp test.* zlm2:/u01/impdp
oracle@zlm2's password:
test.dmp 100% 92KB 92.0KB/s 00:00
test.log 100% 1011 1.0KB/s 00:00
2.5 目标端赋予recerver用户权限,执行impdp导入测试表test
SQL> grant read,write on directory impdump to sender;
SQL> !
[oracle@zlm2 ~]$ impdp sender/sender directory=impdump dumpfile=test.dmp tables=test
注意:expdp/impdp必须是在同一个schema下的object,否则不能执行成功,logfile可以无
SQL> conn sender/sender
Connected.
SQL> select * from test;
ID
----------
1
2
3
此时完成test表的初始化同步,注意:如果非ORACLE-
ORACLE方式同步,则只能使用OGG推荐的方式,即配置initial
extract来初始化数据,具体可以参考我之前的一篇blog:
OGG配置DML单向复制一例及错误分析
http://blog.csdn.net/aaron8219/article/details/10275431
三、不使用PUMP抽取进程的DML同步参数配置(ORACLE-ORACLE)
3.1 单向复制
剩余27页未读,继续阅读
资源评论



CodeGolang
- 粉丝: 182
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 适用于目标检测与图像分割任务的数据增强方法探讨
- 合同管理系统的设计与实现.doc
- 寻找旅游+互联网新蓝海.ppt
- 某新型高效混凝土防冻剂性能及施工质量控制介绍(规定温度-5℃).doc
- 电网调控运行大数据存储与处理技术研究.docx
- 我国物联网产业协同发展机制及系统协同度评价研究.docx
- 电气工程处应急管理规定.docx
- 沟渠分项工质量平定表.doc
- 水利工程水下结构质量安全评估智慧系统数据库建设.docx
- 04钢筋手工电弧焊接工程.doc
- 网络预约出租汽车驾驶员证申请表.doc
- 商住楼租赁合同(示范文本).doc
- PLC交通灯大学本科方案设计书[1].doc
- 武汉某体育中心钢骨柱制作安装方案.doc
- 4.判断一个数是否是质数.docx
- 七修类稿-明-郎锳-卷15.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
