Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Oracle goldengate搭建ogg大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
主库:
1.检查是否开启归档
SELEct log_mode from gv$database;
archive log List;    ----注意归档路径需要是共享路径

2.检查是否开启force logging及补充日志
SELEct force_logging,supplemental_log_data_min,supplemental_log_data_all,flashback_on from v$database;
开启:
alter database force logging;
alter database add supplemental log data;
alter system archive log current;

3.对主库检查,ogg不允许:唯一索引的索引列的列定义允许为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;
不应该返回行,如果返回了,修改:要么变为非唯一索引,要么在保留唯一索引的情况下,将列的定义置为 not null。

4.创建ogg用户,并授权
create user goldengate IDentifIEd by goldengate default tablespace users;
grant dba to goldengate;
ALTER SYstem SET ENABLE_GolDENGATE_ReplicatION = TRUE ScopE=BOTH;

5.设置环境变量(Oracle用户)
PATH=$OracLE_HOME/bin:$PATH:$HOME/bin:/ggs
export LD_LIBRARY_PATH=/ggs:$OracLE_HOME/lib

6.检查是否有nologing方式的表(ogg不支持nologing方式创建的表)
SELEct owner,table_name,logging from dba_tables where logging='NO' AND owner='用户名';
修改为logging的表的语法:alter table 表名 logging;
注意:在ext进程的参数文件里添加 dboptions allownologging可以让ext进程继续运行,但是会导致数据丢失。

7.两个节点上传ogg介质并解压,授权/ggs目录给Oracle
chown Oracle:dba /ggs -R
su - Oracle
cd /ggs
unzip p22575475_1121032_linux-x86-64.zip
tar xvf fbo_ggs_linux_x64_ora11g_64bit.tar

8.源端数据库添加表的补充日志
进入ogg安装路径:
cd /ggs
ggsci
dblogin userID goldengate password goldengate
create subdirs
add trandata lm.testogg

9.配置DDL复制
使用goldengate作为存储DDL objects的用户
给goldengate授权:
GRANT EXECUTE ON UTL_file TO goldengate;

10.配置GLOBALS文件
ggsci
edit param ./GLOBALS中加入:
GGscheR_637_11845@A goldengate

11.如果是10g需要停用 recyclebin,11g就不需要了

12.数据库执行:
退出所有的Oracle连接后执行:
cd /ggs
sqlplus / as sysdba
@marker_setup.sql
@ddl_setup.sql
Please move GolDENGATE to its own tablespace
 @role_setup.sql
grant ggs_ggsuser_role to goldengate;
 @ddl_enable.sql

13.如果是有灾备演练的需求,需要配置sequence同步
cd /ggs   --ogg安装目录
sqlplus / as sysdba
@sequence.sql
GRANT EXECUTE on goldengate.updateSequence TO goldengate;

14.源端配置参数文件
su - grID
vi $OracLE_HOME/network/admin/listener.ora
SID_List_ListENER =
(SID_List =
 (SID_DESC =
  (GLOBAL_dbname = +ASM)
  (OracLE_HOME=/u01/app/11.2.0/grID)
  (SID_name = +ASM1)
 )
)


su - Oracle
cd $OracLE_HOME/network/admin
vi tnsnames.ora
ASM =
 (DESCRIPTION =
    (ADDRESS = (PROTOCol = TCp)(HOST = 186.168.100.3)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDicATED)
      (service_name = +ASM)
      (SID_name = +ASM1)
    )
  )


MGR:
ggsci
 edit params mgr
======================================
port 7809
-- DYNAMICPORTList 7830-7835
autostart extract *
autorestart extract *,waitminutes 1,retrIEs 60,resetminutES 60
PURGEolDEXTRACTS /ggs/dirdat/sd*,USEchecKPOINTS,MINKEEPHOURS 2
======================================
EXT:
add extract extfull,tranlog,threads 2,begin Now       ----主库为rac两个节点,如果是单机,不需要threads
edit param extfull
=================================================
extract extfull
setenv ( NLS_LANG = " AMERICAN_AMERICA.ZHS16GBK " )
TRANlogoPTIONS ASMUSER SYS@ASM,ASMpassworD Oracle
THREAdopTIONS MAXCOMMITPROPAGATIONDELAY 80000 IolATENCY 160000

DBOPTIONS ALLOWUNUSEDcolumN

userID goldengate,password goldengate

ddl include mapped

ddloptions addtrandata RETRYOP MAXRETRIES 1000 RETRYDELAY 10,REPORT

WARNLONGTRANS 1h,checKINTERVAL 5m
--每5分钟检测一次,对运行时间超过1小时的长事务,gg会记入抽取进程.rpt和ggserr.log,此参数为抽取进程的参数。

extTrail /ggs/dirdat/sd
gettruncates
dynamicresolution

NOCOMPRESSupdatES

NOCOMPRESSdeletES

--tableexclude 'Cims.cncdata';
--DDLERROR _SKIPDDL 738310

table Lm.testogg;

--sequence CHARIsma_DEMO.*;
===============================================

15.添加trial文件,每个50M
add extTrail  /ggs/dirdat/sd,extract extfull,MEGABYTES 50

16.添加传输进程
add extract dpfull extTrailsource /ggs/dirdat/sd

17.创建远程队列文件并将其指定给传输进程
add rmtTrail /ggs/dirdat/td,extract dpfull,MEGABYTES 50

18.配置传输进程参数
edit param dpfull
==================================
extract dpfull
passthru
rmthost 186.168.100.22,mgrport 7809
rmtTrail /ggs/dirdat/td
gettruncates

table Lm.testogg;
--sequence Cims.*;
===================================

19.从源端去一次scn号   
SELEct current_scn from v$database;       --

20.按照上面查询出的scn导出数据
expdp  sys/****** directory=  dumpfile=%U.dmp logfile=.log scheR_637_11845@as=  parallel= flashBACk_scn=scn

21.启动mgr及抓取传输进程


备库:
1.创建ogg用户并授权
create user goldengatet IDentifIEd by goldengatet default tablespace tbs_ogg;
grant dba to goldengatet;
exec DBMS_streams_auth.grant_admin_privilege(grantee => 'GolDENGATET',grant_privileges => truE);
ALTER SYstem SET ENABLE_GolDENGATE_ReplicatION = TRUE ScopE=BOTH;

2.配置环境变量(Oracle用户下)
export LD_LIBRARY_PATH=/ggs:$OracLE_HOME/lib
export PATH=$HVR_HOME/bin:$PATH:$OracLE_HOME/bin:$PATH:$HOME/bin:/ggs

3.两个节点上传ogg介质并解压,授权/ggs目录给Oracle
chown Oracle:dba /ggs -R
su - Oracle
cd /ggs
unzip p22575475_1121032_linux-x86-64.zip
tar xvf fbo_ggs_linux_x64_ora11g_64bit.tar

4.创建ogg相关路径
进入ogg安装路径:
cd /ggs
ggsci
dblogin userID goldengatet password goldengatet
create subdirs

5.如果配置sequence,需要
cd /ggs   --ogg安装目录
sqlplus / as sysdba
@sequence.sql
GRANT EXECUTE on goldengatet.ReplicateSequence TO goldengatet;

6.配置参数文件
MGR:
edit param mgr
======================================
port 7809
autostart Replicat *
autorestart Replicat *,resetminutES 60
PURGEolDEXTRACTS /ggs/dirdat/td*,MINKEEPHOURS 2
======================================

7.添加checkpoint表
dblogin userID goldengate,password goldengate
ADD checKPOINTtable goldengate.ckptfull

8.添加目标端应用进程
add Replicat repfull,extTrail /ggs/dirdat/td,checKPOINTtable goldengate.ckptfull
 
9.修改目标端应用进程参数
 edit params repfull
====================================================
Replicat repfull
setenv ( NLS_LANG =  "AMERICAN_AMERICA.ZHS16GBK" )

assuMetargetdefs

userID goldengate,password goldengate

DBOPTIONS DEFERREFCONST,SUPPREsstrigGERS
gettruncates
ALLOWNOOPupdatES
ddl include mapped

discardfile ./dirrpt/repfull.dsc,append,megabytes 5000

--DDLERROR 30568,IGnorE
--REPERROR 1403,disCARD
--mapexclude Cims.TJ_QY_NZ3_SUB;
map lm.testogg,target lm.testogg;
========================================
启动目标端应用进程前需要确认的事情:
第一,    在rep参数文件中有参数DEFERREFCONST禁用级联删除
第二,    在rep参数文件中有参数SUPPREsstrigGERS 在rep进程运行时抑制目的端数据库的触发器生效。
注意:SUPPREsstrigGERS此参数仅仅对10.2.0.5 及以后,11.2.0.2及以后的Oracle 数据库版本才有效,所以,若是目的端数据库是10.2.0.4,还需要在目的端数据库中手工禁用触发器(用plsql dev就可以禁用)
第三,    Impdp已经导入完成

11.导入数据
impdp sys/aaa directory=dumpfile=.dmp tables=    exclude=statistics

12.收集统计信息
exec DBMS_stats.gather_table_stats(OWNname => ‘LM’,TABname => ‘TESTOGG’,CASCADE => TRUE);

11.启动应用进程
start mgr
start repfull,aftercsn scn               ---源端取到的scn

大佬总结

以上是大佬教程为你收集整理的Oracle goldengate搭建ogg全部内容,希望文章能够帮你解决Oracle goldengate搭建ogg所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: