千家信息网

RAC下怎样进行OGG 配置

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关RAC下怎样进行OGG 配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。RAC下OGG 配置(仅传输DML操
千家信息网最后更新 2025年12月03日RAC下怎样进行OGG 配置

本篇文章给大家分享的是有关RAC下怎样进行OGG 配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

RACOGG 配置(仅传输DML操作)

1. 【源端和目标端】创建ACFS文件系统,在共享存储创建ogg软件安装目录,上传文件并解压缩ogg软件

cd /ogg

tar -xvf /soft/fbo...

添加oracle环境变量LD_LIBRARY_PATH

vi ~/.bash_profile

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

安装:

./ggsci

create subdirs

--完成ogg 安装

2.【源端】检查是否开启归档

SQL> select name,log_mode,supplemental_log_data_min from v$database;

NAME LOG_MODE SUPPLEME

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

MMDB NOARCHIVELOG NO

a.开启归档

SHUTDOWN IMMEDIATE --关闭数据库:

STARTUP MOUNT --启动到Mount状态

ALTER DATABASE ARCHIVE LOG; --开启归档

ALTER DATABASE OPEN --打开数据库

ARCHIVE LOG LIST --检查归档状态,确认归档位置是否合适

b.打开最小附加日志

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; --打开最小附加日志

ALTER SYSTEM SWITCH LOGFILE --切换日志使生效

c.打开OGG特性

SHOW PARAMETER GOLDENGATE

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

3.【源端目标端】确定所有待同步的表必须有主键或唯一索引

COL OWNER FOR A20

COL TABLENAME FOR A30

SELECT OWNER,TABLE_NAME,CONSTRAINT_TYPE,INVALID FROM DBA_CONSTRAINTS WHERE OWNER='SCOTT' AND CONSTRAINT_TYPE IN ('P','U'); --查询用户下哪些表有主键

4. OGG用户创建:

_________________________________________________________________

【源端】:

CREATE USER ggadmin IDENTIFIED BY ggadmin123, DEFAULT TABLESPACE USERS ;

GRANT CONNECT TO ggadmin;

GRANT CREATE SESSION TO ggadmin;

GRANT ALTER SESSION TO ggadmin;

GRANT RESOURCE TO ggadmin;

GRANT SELECT ANY DICTIONARY TO ggadmin;

GRANT SELECT ANY TABLE TO ggadmin;

GRANT FLASHBACK ANY TABLE TO ggadmin;

GRANT ALTER ANY TABLE TO ggadmin;

GRANT DBA TO ggadmin;

【目标端】:

建立OGG数据库用户

? 通过sql将数据写入数据库

? OGG目标数据库用户权限

CREATE USER ggadmin IDENTIFIED BY ggadmin123, DEFAULT TABLESPACE USERS ;

GRANT ALTER SESSION TO ggadmin;

GRANT CREATE SESSION TO ggadmin;

GRANT CONNECT TO ggadmin;

GRANT RESOURCE TO ggadmin;

GRANT SELECT ANY DICTIONARY TO ggadmin;

GRANT SELECT ANY TABLE TO ggadmin;

GRANT FLASHBACK ANY TABLE TO ggadmin;

GRANT INSERT ANY TABLE TO ggadmin;

GRANT UPDATE ANY TABLE TO ggadmin;

GRANT DELETE ANY TABLE TO ggadmin;

GRANT DBA TO ggadmin;

5.【源端配置】:

5.1 mgr 配置

./ggsci

GGSCI> edit param mgr

PORT 7809 //监听端口PORT

DYNAMICPORTLIST 7810-7900 //动态监听端口PORT,监听端口失败时使用

--AUTOSTART ER * //开启管理进程后,自动启动所有的EXTRACTREPLICAT进程

AUTORESTART ER *,RETRIES 5,WAITMINUTES 3,RESETMINUTES 60 //自动重启异常中止的进程,重试5次,每次等2分钟,一小时后重试

STARTUPVALIDATIONDELAY 5 //启动时延迟5秒校验

PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 3 //自动清理使用过的trail队列,最少保留3

LAGREPORTHOURS 1 //每一小时检查延迟

LAGINFOMINUTES 30 //延迟30分钟记录信息到error log

LAGCRITICALMINUTES 45 //50分钟记录警告到error log

GGSCI> START MGR //打开管理进程

GGSCI> INFO ALL //验证已打开

5.2 添加抽取进程及队列文件

GGSCI> ADD EXTRACT ex_jtwx1, tranlog, begin nowthread 2

GGSCI> ADD EXTTRAIL ./dirdat/la,EXT ex_jtwx1, MEGABYTES 100

GGSCI> ADD EXTRACT dp_jtwx1, EXTTRAILSOURCE ./dirdat/la

GGSCI> ADD RMTTRAIL /ogg/dirdat/ra, EXT dp_jtwx1, MEGABYTES 100

5.3 配置抽取进程参数

extract 抽取进程参数配置:

./ggsci

GGSCI> edit param ex_jtwx1

EXTRACT ex_jtwx1

--[环境变量,非必须]

--SETENV( ORACLE_SID=xxx )

--SETENV( ORACLE_HOME=xxx )

--SETENV( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )

USERID ggadmin, PASSWORD ggadmin123,

TRANLOGOPTIONS DBLOGREADER, DBLOGREADER BUFSIZE 4194304, BUFSIZE 4194304

FETCHOPTIONS FETCHPKUPDATECOLS

NOCOMPRESSDELETES

EXTTRAIL ./dirdat/la

DYNAMICRESOLUTION //动态解析表结构

--TRANLOGOPTIONS CONVERTUCS2CLOBS //抽取CLOB必须加上

--GETTRUNCATES //捕获truncate操作,默认不捕获

--[待传输的表]

table myschema.maytable1;

table myschema.maytable2;

table myschema.*;

--TABLE hq.acct, COLS (col1, col3); --只复制1,3

--TABLE hq.acct, where (id=1 and name=2); --过滤,只复制满足条件记录

--TABLE hq.acct, COLSEXCEPT (col4); --复制除了第4

datapump传输进程参数配置:

GGSCI>edit param dp_jtwx1

extract dp_jtwx1

setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )

passthru //passthru表示本进程是一个传输进程data pump,无需跟数据库交互,只需要搬运数据即可

--REPORT AT 01:59 //配置在特定时间报告传输状态

--reportrollover at 02:00 //指定每日在特定时间生成一个新的报告

rmthost 10.128.59.52,mgrport 7809, compress //传输进程需要知道目标端的主机端口信息

rmttrail /ogg/dirdat/ra

Dynamicresolution

numfiles 8000

table myschema.mytable1;

table myschema.mytable2;

TABLE hq.acct; //注意此时不用再过滤cols了。

5.4 添加表级附加日志

GGSCI> DBLOGIN USERID ggadmin, PASSWORD ggadmin123,

GGSCI> LIST TABLES SCOTT.*

GGSCI> ADD TRANDATA scott.emp

GGSCI> ADD TRANDATA scott.dept

....

SQL>alter table user.table add supplemental log group ggs_table_1 (PK or UK) always;

SQL>

GGSCI> START * --启动抽取进程和传输进程

GGSCI> INFO ALL --检查是否正常启动

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

【备注1

GGSCI> VIEW REPORT ex_jtwx1 --排错常用方法1

GGSCI> sh tail -10 ggserr.log --排错常用方法2

6.【目标端配置】

6.1 配置GLOBALS参数

GGSCI> EDIT PARAM ./GLOBALS

GGSCHEMA ggadmin

CHECKPOINTTABLE ggadmin.checkpointtable

6.2 创建检查点记录表

GGSCI> DBLOGIN USERID ggadmin, PASSWORD ggadmin123,

GGSCI> ADD CHECKPOINTTABLE ggadmin.checkpointtable

6.3 配置投递进程

GGSCI> ADD REP rp_jtwx1, EXTTRAIL ./dirdat/ra, CHECKPOINTTABLE ggadmin.checkpointtable

GGSCI> EDIT PARAM rp_jtwx1

REPLICAT rp_jtwx1

--环境变量,非必须

--SETENV( ORACLE_SID=ogg2 )

--SETENV( ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 )

--SETENV( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )

USERID ggadmin, PASSWORD ggadmin

--REPORT AT 01:59 //配置在特定时间报告复制状态

--REPORTROLLOVER AT 02:00 //指定每日在特定时间生成一个新的报告

REPERROR default,discard //配置如果出现错误后的处理模式,这里abend表示出现错误即进程终止,等待客户修正后恢复;也可以设置为discard,此时会将错误数据写到下面参数定义的文件中,但是继续处理,进程不退出

INSERTALLRECORDS

DISCARDFILE ./dirrpt/rp_jtwx1.dsc,append, megabytes 200 //定义出错后写错误信息的目标文件,为查错提供帮助。 Append表示在尾部添加, purge表示每次生成一个新的disard文件; megabyte表示最大允许大小,如果超过了此大小则进程也会终止。

ASSUMETARGETDEFS //表示源和目标表的结构相同,即相同数据库类型、表的字段定义相同

DYNAMICRESOLUTION //动态解析表的结构,加快启动速度

--HANDLECOLLISIONS //冲突数据处理,主要在初始化时候用到

--GETTRUNCATES //同步truncate 操作

MAP scott.emp, TARGET scott.emp;

MAP scott.dept, TARGET scott.dept1 , COLMAP (usedefaults , committime = @GETENV ("GGHEADER", "COMMITTIMESTAMP"));

--//定义源表和目标表的映射, colmap里面定义列映射,如果是两端表的列全部相同则不用colmap

--userdefaults表示,没有列在后面的列全部按照缺省规则(列名相同的对应)进行映射,而列在后面的如committime则赋给GoldenGate的一个自有变量,这里是指提交时间。

GGSCI> START REP rp_jtwx1 //启动投递进程

GGSCI> INFO ALL //检查状态

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

【备注2

GGSCI> help --查看可用命令

GGSCI> help add exttrail --查看添加队列文件命令使用方法

GGSCI> send rp_jtwx1,status --查看数据同步进度

GGSCI> stats rp_jtwx1 --查看投递进程处理数据量统计

【场景一】主键不一致

目标端: MAP src.s_tab, TARGET tar.t_tab, KEYCOLS ( s_tab_pk_col );

或源端: Add trandata src.s_tab, cols ( t_tab_pk_col),nokey

【场景二】数据过滤

源端: TABLE demo_src.people, FILTER (age > 50);

age需为主键才能过滤,或者Add trandata demo_src.people, cols (age)强制为该列加入附加日志

【场景三】数据初始化

通过导入加载初始数据后

源端: ALTER ex_jtwx1,begin 2010-03-21 08:00:00 (保证归档存在)

或目标端: ALTER REPLICAT rp_jtwx1, EXTSEQNO 53EXTRBA 0

【场景四】数据冲突处理

replicat使用handlecollisions(必须有主键或者唯一索引)

以上就是RAC下怎样进行OGG 配置,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0