Home >Database >Mysql Tutorial >Oracle GoldenGate在异种OS上同种DB之间的数据同步

Oracle GoldenGate在异种OS上同种DB之间的数据同步

WBOY
WBOYOriginal
2016-06-07 16:50:261061browse

Oracle GoldenGate (以下简称OGG)在异种OS上同种DB之间的数据同步。

Oracle GoldenGate (以下简称OGG)在异种OS上同种DB之间的数据同步。

ogg能实现的功能:
 
可以细化到单表同步,符合特定where条件的rows同步,指定column的同步。
 
ogg 的竞争对手:ibm cdc;dell shareplex;dsg;dds等等
 
环境描述:
 源头:windows 2003x64bit, oracle db 11.2.0.3 x64bit
 目的端:SUSE linux ,oracle db 11.2.0.3
 
预先准备:
 1.Microsoft Visual C ++ 2005 SP1 Redistributable Package
  注意点:第一:该c++的package 区分bit数,并且一定要下载sp1版本的package。
          第二:只要是在windows上使用ogg,这个c++的package就一定得装,
            不管db是不是oracle ,sqlserver,不管ogg用于源头数据库还是用于目的端数据库。
 
2.ogg for windows x64bit 下的 oracle db 11.2.0.3 x64bit介质。--p18794252_1121023_MSWIN-x86-64.zip
 3.ogg for linux  x64bit 下的 oracle db 11.2.0.3 x64bit介质。--p18794252_1121023_Linux-x86-64.zip
 
  注意点:
  第一:ogg介质,除了基础版(比如说11.2.1.0.1,最后的这个.1就是基础版本)可以从下载,
  ogg的后续补丁只能从mos上下载。
  第二:ogg的介质区分os类型,db类型,db 版本,db bit数。
  但是对于如下的情况是同一个ogg介质:oracle db 11.2.0.3 x64bit 安装在suse11下和安装在suse 10下。

--------------------------------------------------------------------------------

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

--------------------------------------------------------------------------------
 
实施过程:
 1.上传介质到源头和目的端。
 2.在源头的实施过程:
 2.1 创建goldengate系统用户并授权
  Sql> create tablespace GGTBS datafile 'd:\相关路径\ggtbs01.dbf'size 1024M auextend on;
  Sql> Create user Goldengate default tablespace ggtbs identified by oracle;(目标数据库也创建这一个goldengate用户)
  Sql> grant dba to goldengate;
 2.2 将数据库设置为归档模式--一般的生产库都处于归档模式。
 2.3 打开源端数据库的附加日志
    Sql>alter databse add supplemental log data;
    切换日志使附加日志生效:
    Sql>alter system archive log current;
 2.4 检查源端数据库的附加日志
    Sql>select supplemental_log_data_min from v$database;
    --返回yes表示附加日志已经打开。
 2.5 打开源头数据库的force logging:
    sql> alter database force logging;
 2.6 对 主库 执行检查脚本,确认如下情况是否存在:找出唯一索引的索引列的列定义允许为null的
 
select dic.table_owner, dic.table_name, dic.index_name, di.uniqueness,dic.column_name
 from dba_ind_columns  dic , dba_indexes di,dba_tab_columns dtc
 where dic.table_owner=’自行添加用户’and dtc.OWNER='自行添加用户’
 AND dic.table_owner=di.table_owner and dic.TABLE_NAME=di.table_name
and dic.index_name=di.index_name
 and di.uniqueness='UNIQUE'    and dtc.owner=di.table_owner 
and dtc.TABLE_NAME=di.table_name and dic.column_name=dtc.COLUMN_NAME  and dtc.nullable='Y'
 and dic.TABLE_NAME=dtc.TABLE_NAME
 
--->自行添加用户请用需要同步的user来代替。
 对于查询出来的表和唯一索引名,请修改:要么变为非唯一索引,要么在保留唯一索引的情况下,将列的定义置为not null。
 
2.7 假设将ogg软件放在d:\ggs目录下,cmd界面下进入d:\ggs
    ggsci>create subdirs  -->该命令的作用是在d:\ggs下建立dirprm、dirdat、dirrpt等下级目录。
 2.8 ggsci>edit params ./GLOBALS
    添加如下的字符,之后保存退出
    MGRSERVNAME GGSSERVICE
 2.9 建立ogg的 windows service
  D:\ggs>install addservice autostart
 

2.10 为表添加补充日志
    ggsci>dblogin userid goldengate password oracle
    ggsci> add trandata USER1.*    --->注意:*后别加分号。
    ggsci> add trandata USER2.*    --->注意:*后别加分号。
    ggsci> add trandata USER3.*    --->注意:*后别加分号。   

    确认表的补充日志是否已经添加:
    select table_name from all_tables
    where owner='USER1' and table_name not in (select distinct table_name from dba_log_groups where owner='USER1');
 
2.11 配置DDL复制
 SQL> GRANT EXECUTE ON UTL_FILE TO goldengate;
 ggsci>edit params ./GLOBALS  添加如下的字符,之后保存退出
 GGSCHEMA goldengate
 
cmd下 cd 到d:\ggs目录
 退出所有的oracle session
 sqlplus / as sysdba
 SQL> @marker_setup.sql
 SQL> @ddl_setup.sql
 SQL> @role_setup.sql
 SQL> grant ggs_ggsuser_role to goldengate;
 SQL> @ddl_enable.sql
 
2.12 配置sequence的同步(若是备库是报表查询需求,请忽略此步)
 cmd下 cd 到d:\ggs目录
 sqlplus / as sysdba
 SQL> @sequence.sql
 --->源头执行:SQL> GRANT EXECUTE on goldengate.updateSequence TO goldengate;
 --->目的端执行:SQL> GRANT EXECUTE on goldengate.replicateSequence TO goldengate;
 2.13 源端配置参数文件
 ggsci > edit params mgr
 添加如下参数,之后保存退出。
 port 7809
 autostart extract *
 autorestart extract *, waitminutes 1, retries 60, RESETMINUTES 60
 PURGEOLDEXTRACTS d:\ggs\dirdat\st*, USECHECKPOINTS, MINKEEPHOURS 2
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn