ogg_for_oracle11gr2单项_双向同步部署

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-27 21:40:01

--ogg同步基于表,会忽略目标端view的trigger和view对应的表的dbms_scheduler,若目标端view的关联trigger中有向其他非此视图关联的表操作则会忽略,所以只能同步到view而不能同步到表中

--配置view同步时只需要配view对应的表

--表名test.dep_ogg改变,不需要重新对标add trandata

2.1创建ogg操作系统用户:
useradd -u 1003 -g oinstall -G dba ogg
passwd ogg

--源端开启归档,若归档路径不设置则pump进程启动报错
su - oracle
mkdir archivelog
sqlplus / as sysdba
alter system set log_archive_dest_1='location=/home/oracle/archivelog';
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
alter system switch logfile;
/
archive log list;
exit

2.2修改ogg操作系统用户环境变量,并链接oracle用户环境变量,修改实例名为jvm,配置任意目录登陆

vi /home/ogg/.bash_profile

 

export ORACLE_SID=jvm

export ORACLE_BASE=/home/oracle/app/oracle

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1

export OGG_HOME=/ogg

export PATH=$ORACLE_HOME/bin:/usr/sbin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH:/ogg:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/ogg

alias ggsci='cd $OGG_HOME;$OGG_HOME/ggsci'

 

--运行生效

. /home/ogg/.bash_profile

/*
--参考注意:为了ggsci命令在任何目录下可以执行,可在/home/oracle/.bash_profile设置如下环境变量:
export GG_HOME=/ogg
export PATH=$GG_HOME:$PATH
*/
2.3创建OGG安装目录
--两台服务器都需要做同样的操作。
mkdir /ogg
chown -R ogg:oinstall /ogg
--chmod 770 -R /ogg
--让ogg用户可以访问oracle用户的sqlplus和lsnrctl
chmod 770 /home/oracle

2.4上传ogg介质
--将ogg安装文件上传到2台服务器的ogg操作系统用户的家目录(默认为/home/ogg)
su - ogg
unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /ogg/
--GGSCI (dbdream) 2> DBLOGIN USERID ogg, PASSWORD oracle无权限

2.5登录OGG测试
cd /ogg
--是否成功安装
ldd ggsci
./ggsci
--创建OGG的管理目录
--源端:
./ggsci
create subdirs
--查询管理目录是否创建
show
--目标端:
./ggsci
create subdirs
show
exit

2.6建立OGG表空间,以ogg用户执行
sqlplus / as sysdba
--ORACLE建议使用单独的表空间存放OGG数据,表空间大小50M就可以,但是最好设置数据文件的自动扩展。
create tablespace ogg datafile '/home/oracle/ogg01.dbf' size 50M autoextend on;

2.7创建OGG用户
create user ogg identified by oracle default tablespace ogg;

2.8为OGG用户授权
--OGG用户需要以下权限,也有人为了省事,直接给OGG用户DBA权限。
--不同的需求,OGG用户需要的权限也不一样,上面的权限基本可以支持大多数情况的数据复制,如权限不足,需根据实际需求授权
grant CONNECT,RESOURCE to ogg;
grant ALTER ANY TABLE to ogg;
grant FLASHBACK ANY TABLE to ogg;
grant EXECUTE on DBMS_FLASHBACK to ogg;
grant SELECT ANY DICTIONARY to ogg;
grant SELECT ANY TABLE to ogg;
grant insert any table to ogg;
grant update any table to ogg;
grant delete any table to ogg;

2.9打开数据库的附加日志和force log
alter database force logging;
alter database add SUPPLEMENTAL log data;
--11204以上版本,tde encrypt相关
alter system set enable_goldengate_replication=true;
exec dbms_goldengate_auth.grant_admin_privilege('ogg');
exec dbms_goldengate_auth.grant_admin_privilege(grantee=>'ogg');
select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;

2.10运行OGG支持DDL脚本,需要为复制用户创建表空间
/*
--不确定兼容性,先不执行,否则ddl_setup.sql可能会报错而导致无法create user:ORA-04098:trigger 'SYS.GGS_DDL_TRIGGER_BEFORE' is invalid and failed
--如果要让OGG支持DDL操作,源端与目标端都需要运行
--验证ogg用户调用sqlplus时对脚本marker_status.sql的访问权限
sqlplus / as sysdba
@/ogg/marker_setup.sql
@/ogg/ddl_setup.sql
@/ogg/role_setup.sql
@/ogg/ddl_enable.sql

--主库配置ddl参考
主库 执行DDL配置脚本
sqlplus / as sysdba
--oracle11.2.0.4报错:SP2-0310:unable to pen file:"marker_status.sql"
SQL> @/opt/app/OGG/marker_setup.sql
输入OGG管理用户名:ogg

SQL> @/opt/app/OGG/ddl_setup.sql
输入OGG管理用户名:ogg
注意1:此处可能会报错:ORA-04098: trigger 'SYS.GGS_DDL_TRIGGER_BEFORE' is invalid and failed,同时OGG中的很多表和视图无法创建,原因主要由于OGG缺少权限引起,即便有
DBA权限也是不足的(OGG BUG),可以通过如下方法修复:
1)先将触发器关闭,否则执行任何sql都会包ORA-04098的错误
@/opt/app/OGG/ddl_disable.sql
2)赋予ogg对应权限
grant execute on utl_file to ogg;
grant restricted session to ogg;
GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;
3)重新执行ddl_setup.sql

注意2:当主库上有很多应用连接时,执行该sql会出现如下报警:
IMPORTANT: Oracle sessions that used or may use DDL must be disconnected. If you
continue, some of these sessions may cause DDL to fail with ORA-6508.
To proceed, enter yes. To stop installation, enter no.
Enter yes or no:
为了不影响主库,选no,选择一个时间点,停止应用再创建ddl。
如果不创建ddl,需要在主备库的ogg进程参数中添加truncate选项:
gettruncates,参考后面同步进程配置。

SQL> @/opt/app/OGG/role_setup.sql
输入OGG管理用户名:ogg
SQL> GRANT GGS_GGSUSER_ROLE TO OGG;
SQL> @/opt/app/OGG/ddl_enable.sql
*/

2.12 OGG复制流程
--先看下OGG的复制流程,OGG和其他传统复制软件一样,也是通过源端捕获/挖掘ORACLE的日志信息,
--目标端根据源端传送过来的日志信息进行重塑,实现源端-目标端数据同步
--只有commit之后的日志信息才会被Capture进程捕获,未提交的事务OGG不会捕获。
2.13建立测试表,含主键
create user test identified by oracle;
grant dba to test;
create table test.test_ogg(id number primary key,name varchar2(20));
create table test.dep_ogg(depno number primary key,depname varchar2(20));
insert into test.test_ogg values(1,'zyj');
insert into test.dep_ogg values(1,'imp');
commit;

--目标端建立EMP_OGG和DEPT_OGG测试表
create user test identified by oracle;
grant dba to test;
create table test.test_ogg(id number primary key,name varchar2(20));
create table test.dep_ogg(depno number primary key,depname varchar2(20));

2.14源端添加表级TRANDATA
--将哪些用户的哪些表和目标库同步,其实也是添加表级的supplemental log,但是只有上文打开的minimal supplemental log后,这个才生效
cd /ogg
./ggsci
DBLOGIN USERID ogg, PASSWORD oracle
add trandata test.test_ogg
add trandata test.dep_ogg
INFO TRANDATA test.*
--参考
--add trandata schema.tablename,allcols
/*
--把用户凭证加入Credentialstore里
GGSCI >add credentialstore
--把用户凭证加入Credentialstore
GGSCI >alter credentialstore add user ggadm@OGGSource,password goldengate123 alias oggsourceadm
GGSCI > dblogin useridalias oggsourceadm
*/

2.15配置MGR管理进程
--当extract进程异常终止时会自动启动,每2分钟尝试重新启动所有的extract进程,一共尝试5次
--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 2
--源端:
EDIT PARAMS MGR

PORT 7809
DYNAMICPORTLIST 7840-7850
PURGEOLDEXTRACTS /ogg/dirdat, USECHECKPOINTS
AUTOSTART EXTRACT *

--目标端: 可以添加 DYNAMICPORTLIST 7840-7850
EDIT PARAMS MGR

PORT 7809
DYNAMICPORTLIST 7840-7850
PURGEOLDEXTRACTS /ogg/dirdat, USECHECKPOINTS
AUTOSTART REPLICAT *

--参数说明:
PORT 7809:OGG管理进程监控端口。
PURGEOLDEXTRACTS:清除不需要的trail文件。
/ogg/dirdat:trail文件存放位置。
USECHECKPOINTS:使用检查点队列。

--置完MGR管理进程后,就可以启动MGR管理进程(源端和目标端都需要启动)。
start mgr
info mgr

2.16配置初始化数据进程
ADD EXTRACT EINI_1, SOURCEISTABLE
INFO EXTRACT *, TASKS
EDIT PARAMS EINI_1

EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
RMTHOST 192.168.92.101, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE test.test_ogg;
TABLE test.dep_ogg;

--参数介绍:
EXTRACT EINI_1:说明这是EXTRACT进程,名字是EINI_1
SETENV:环境变量,一定要设置和数据库字符集一样,否则可能会乱码
USERID:数据库OGG用户
PASSWORD:数据库用户OGG的密码
RMTHOST:目标端地址,如果在/etc/hosts文件里已经设置解析,可以写主机名
MGRPORT:目标端MGR管理进程监听的端口
RMTTASK REPLICAT:目标端REPLICAT应用进程的组和名字
TABLE:源端要初始化数据的表的名字 编辑好捕获进程EINI_1后,还需要在目标端配置REPLICAT应用进程,名字要和源端的捕获进程EINI_1里面RMTTASK REPLICAT参数配置的一样,也就是还需要在目标端配置RMTTASK REPLICAT RINI_1。

2.17配置目标端初始化REPLICAT进程
--目标端:
--HANDLECOLLISIONS 配置dml
ADD REPLICAT RINI_1,SPECIALRUN
EDIT PARAMS RINI_1

REPLICAT RINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ASSUMETARGETDEFS
HANDLECOLLISIONS
USERID ogg, PASSWORD oracle
DISCARDFILE /ogg/dirrpt/RINIaa.dsc, PURGE
MAP test.test_ogg, TARGET test.test_ogg;
MAP test.dep_ogg, TARGET test.dep_ogg;

--参数介绍:
REPLICAT RINI_1:说明这是REPLICAT应用进程,名字叫RINI_1
SETENV:语言变量,同捕获进程EINI_1
ASSUMETARGETDEFS:告诉OGG目标端和源端需要同步的表的结构完全一致,不需要OGG去检查表的结构,包括表名、字段名、字段类型、字段长度等,如果目标端和源端同步的表的结构不一样,需要使用SOURCEDEFS参数,详见OGG官方文档。
USERID、PASSWORD:同捕获进程EINI_1参数介绍
DISCARDFILE:错误信息存放位置及命名规则
MAP:源端捕获的表的名字
TARGET:目标端同步的表的名字,可以不在同一SCHEMA。

2.18初始化数据
--启动源端的捕获进程,而目标端的应用进程RINI_1,不需要手动去启动
START EXTRACT EINI_1
VIEW REPORT EINI_1

--如果日志的最后部分出现ERROR,就需要去检查OGG的安装目录下的ggserr.log日志,这个日志相当于数据库的告警日志。
Output to RINI_1:
From Table SCOTT.EMP_OGG:
# inserts: 14
# updates: 0
# deletes: 0
# discards: 0
From Table SCOTT.DEPT_OGG:
# inserts: 4
# updates: 0
# deletes: 0
# discards: 0
REDO Log Statistics
Bytes parsed 0
Bytes output 3056

2.19验证初始化数据
--登录目标端数据库,查看初始化是否成功。
select * from test.emp_ogg;
select * from test.dep_ogg;

--初始化之后,上文提到的初始化进程(EINI_1、RINI_1)自动停止,因为通常情况下初始化数据工作只会做一次。可以通过INFO命令查看进程的状态
--源端:
INFO EXTRACT EINI_1

--目标端:
INFO REPLICAT RINI_1

2.20源端和目标端配置OGG的检查点
--此步骤不是必须的,但是为了让OGG网络中断、服务器宕机、掉电等在突发情况也能正确断点续传
--源端和目标端都需配置。
/*
--For DDL :
GGSCHEMA ggadm
*/
EDIT PARAMS ./GLOBALS

CHECKPOINTTABLE ogg.ggschkpt

--需要使用OGG用户登录数据库,创建检查点表ogg.ggschkpt,此时需要退出OGG,重新登录,否则可能会遇到下面的错误。
GGSCI (stream) 4> ADD CHECKPOINTTABLE
ERROR: Missing checkpoint table specification.

--退出OGG,重新登录,并使用OGG用户登录数据库,源端和目标端都需要执行。
exit
./ggsci
DBLOGIN USERID ogg, PASSWORD oracle
--只需要执行ADD CHECKPOINTTABLE命令,OGG会自动在ORACLE的OGG用户下创建检查点,源端和目标端都需要执行。
ADD CHECKPOINTTABLE
--若需要删除检查点表
--delete checkpointtable

--此时用OGG登录数据库,就可以看到OGG创建的检查点表
conn ogg/oracle
select * from tab;

/*
--若用expdp初始化数据
su - oracle
mkdir -p /home/oracle/dumpdir
sqlplus / as sysdba
create or replace directory dump as '/home/oracle/dumpdir';
grant read,write on directory dump to public;

--初始化数据(source)
select current_scn from v$database;
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;

--使用exp或expdp导出数据,对于导出用户需要具备DBMS_FLASHBACK包的执行权限
GRANT EXECUTE ON DBMS_FLASHBACK TO test;

exp system/oracle@orcl file=test_SBDC_4ZBR2HA47OTD67UM.dmp log=test_SBDC_4ZBR2HA47OTD67UM.log tables=test.SBDC_4ZBR2HA47OTD67UM feedback=1000 flashback_scn=1102175
scp test_SBDC_4ZBR2HA47OTD67UM.dmp oracle@192.168.92.101:/home/oracle
--delete from test.SBDC_4ZBR2HA47OTD67UM;
--commit;
imp system/oracle@orcl file=test_SBDC_4ZBR2HA47OTD67UM.dmp log=test_SBDC_4ZBR2HA47OTD67UM.log tables=test.SBDC_4ZBR2HA47OTD67UM data_only=y feedback=1000

--或者用expdp
expdp \'system/oracle@orcl\' directory=dump dumpfile=SBDC_4ZBR2HA47OTD67UM_1.dmp tables=test.SBDC_4ZBR2HA47OTD67UM flashback_scn=1102175
scp /home/oracle/dumpdir/SBDC_4ZBR2HA47OTD67UM_1.dmp oracle@192.168.92.101:/home/oracle/dumpdir
--delete from test.SBDC_4ZBR2HA47OTD67UM;
--commit;
impdp \'system/oracle@orcl\' directory=dump dumpfile=SBDC_4ZBR2HA47OTD67UM_1.dmp tables=test.SBDC_4ZBR2HA47OTD67UM content=data_only
*/

2.21源端配置捕获进程
--现在已经可以配置数据同步了,下面在源端配置捕获进程。
--参数介绍:
--以上参数基本都在上文提过,这里不在重复,说下EXTTRAIL参数,EXTTRAIL参数是TRAIL队列文件存放的路径和命名格式,
--TRAIL文件可以理解为存放捕获进程捕获的日志文件。此时还需要将捕获进程EORA_1添加到OGG
--keycols若不制定则默认为所有列,仍可支持无主键的表update同步
--table IJX130355.T_BESNS_INTEGRAL_RG, keycols (LOGDATE,STUDENT_ID);
EDIT PARAMS EORA_1

EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
EXTTRAIL /ogg/dirdat/aa
TABLE test.test_ogg;
TABLE test.dep_ogg;

--捕获进程从启动起开始捕获,捕获数据保存到TRAIL文件,及TRAIL文件的路径、命名格式,MEGABYTES为单个TRAIL文件最大大小。
ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
ADD EXTTRAIL /ogg/dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
START EXTRACT EORA_1
INFO EXTRACT EORA_1
--查询exttrail
info EXTTRAIL *

2.22源端配置PUMP传输进程
--此步骤也是非必须的,如果不配置传输进程,OGG会通过EXTRACT进程传输TRAIL队列文件,但是和检查点队列一样,为了保证断点续传ORACLE建议配置PUMP传输进程。
EDIT PARAMS PORA_1

EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
PASSTHRU
RMTHOST 192.168.92.101, MGRPORT 7809
RMTTRAIL /ogg/dirdat/pa
TABLE test.test_ogg;
TABLE test.dep_ogg;

--添加PUMP进程PORA_1到OGG,并指定本地的TRAIL文件。
ADD EXTRACT PORA_1, EXTTRAILSOURCE /ogg/dirdat/aa
INFO EXTRACT PORA_1
--为PUMP进程PORA_1指定将本地TRAIL文件传输到目标端后保存成目标端TRAIL文件的名字。
ADD RMTTRAIL /ogg/dirdat/pa, EXTRACT PORA_1, MEGABYTES 5
START EXTRACT PORA_1
INFO EXTRACT PORA_1
--此时在目标端/ogg/dirdat/目录下,就会看到由源端PUMP进程PORA_1传输过来的TRAIL文件。
SQL> ho ls -l /ogg/dirdat
pa000000

DBLOGIN USERID ogg, PASSWORD oracle
VIEW REPORT EORA_1
VIEW REPORT PORA_1

2.23目标端配置同步进程RORA_1。若报错表test.SYS_EXPORT_不存在,则添加 mapexclude test.SYS_EXPORT_*;
--后缀afterscn 不停止业务
--HANDLECOLLISIONS 配置dml同步
--ADD REPLICAT RORA_1, SPECIALRUN
--add replicat rotomy,exttrail ./dirdat/rm,checkpointtable test.chkpt
--不需要追加checkpointtable ogg.CHECKTABLE,默认用前面创建的checkpointtable
--参考 DISCARDFILE /ogg/dirrpt/RORA_aa.DSC,append,需要指定exttrail,增量复制不能用只运行一次而停止的初始化复制进程specialrun
add replicat RORA_1,exttrail /ogg/dirdat/pa
EDIT PARAMS RORA_1

REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE /ogg/dirrpt/RORA_aa.DSC, append
MAP test.test_ogg, TARGET test.test_ogg;
MAP test.dep_ogg, TARGET test.dep_ogg;

--目标端编辑同步进程RORA_1后,就可以启动RORA_1进程。
START REPLICAT RORA_1
--alter replicat repfull, extseqno 1, extrba 0
--alter replicat RORA_1, extrba 0

INFO REPLICAT RORA_1
--ERROR OGG-00446 Invalid data source -1 in checkpoint file /u01/app/ogg/dirchk/RORA_1.cpr.
DBLOGIN USERID ogg, PASSWORD ogg
VIEW REPORT RORA_1
--若报错无检查表,则创建
--ERROR OGG-00446 Checkpoint table ogg.CHECKTABLE does not exist.Please create the table or recreate the RORA_1 group using the correct table.
ADD CHECKPOINTTABLE ogg.CHECKTABLE

--查询进程状态
status pora_1
--查询进程传输数据信息
stats pora_1
--source process
INFO EXTRACT EORA_1
INFO EXTRACT PORA_1
VIEW REPORT EORA_1
VIEW REPORT PORA_1

info extract E1, showch
info extract E1, detail

--常用维护命令
alter EXTRACT EXT_TC etrollover
--ETROLLOVER needed to convert 6 digit checkpoint to 9 digits as well as GG version 12.2
alter ext E1 etrollover
info extract E1, detail
info extract E1, showch
alter ext P1, extseqno xx , extrba 0
--查询错误日志
tail -f ggserr.log

3. 验证OGG复制
--测试DML和DDL
insert into test.test_ogg select 2,'n1' from dual;
commit;

insert into test.test_ogg select 3,'n3' from dual;
commit;

update test.test_ogg set name='n2' where id=2;
commit;

delete from test.test_ogg t where id=2;
commit;

select * from test.test_ogg;

--
insert into test.dep_ogg select 2,'d1' from dual;
commit;

insert into test.dep_ogg select 3,'d3' from dual;
commit;

update test.dep_ogg set DEPNAME='d2' where depno=2;
commit;

delete from test.dep_ogg t where depno=2;
commit;

select * from test.dep_ogg;

------------------------------------------------------------------------------------------------
OGG配置文件—MANAGER
一、PORT
对于需要与远程进程要求动态服务的交互管理进程,使用PORT参数去指定一个TCP/IP端口号,常用于初始化加载复制或者采集进程。也可以使用默认的端口。请保证这些端口没有受到防火墙等设备的阻挡
port 7809

二、DYNAMICPORTLIST
使用DYNAMICPORTLIST参数去指定一个可用端口列表,它可使用于以下本地OGG进程对于与远程OGG进程通信的绑定。
采集器(Collector):与远程抽取进程通信进行获取输入数据。
复制器(Replicat):与远程抽取进程通信获取数据在初始化载入任务时。
过时抽取(Passive Extract):与远程收集器通信
GGSCI:输入远程命令
指定足够端口去容纳进程数的扩张不需要停止和重启管理器去将它们添加到列表里。你可以指定一个私有的端口,范围端口或者两者都可以。
<port>一端口号可以被分配的。最大的端口条目数是5000。
#指定多个端口,使用一个,分隔,比如:
dynamicportlist 7830,7833
#指定范围端口,使用-去分离第一个和最后一个端口。在-前后不要隔开它们。比如
dynamicportlist 7830-7835
#指定一范围端口加上一个独立端口,放置一个,在范围和独占端口之间,比如:
dynamicportlist 7830-7835,7839

三、AUTOSTART
当管理器启动时使用AUTOSTART参数去启动一些或多个抽取和复制进程。AUTOSTART确保没有进程组会被忽略并且在启动时候同步激活的。
你可以使用多个AUTOSTART语句在同个参数文件。在PASSIVE模式对于抽取组使用此参数,在位于并相关EXTRACT GROUP相关的目标系统的管理器。OGG将发送启动命令到源系统,如果AUTOSTART是在本地应用对于一PASSIVE EXTRACT组,它将被忽略的。
如果管理器遇到违反规定的事务导致重启,它将不会重启EXTRACT。而是将记录一个警告日志并通知你。这个日志使用 SEND EXTRACT的ETROLLOVER选项,这样它跳过导致错误的事务提高了日志的跟踪能力。
默认选项:NOT AUTOSTART
EXTRACT:抽取进程
REPLICAT:复制器进程
ER (Extract and Replicat):以上两者
一组名或者通配符指向的多个组。当通配符使用时,OGG重启指定进程类型的所有组,这些组在本地系统上满足通通符的匹配。但这些不能在PASSIVE模式下。

四、AUTORESTART
语法:AUTORESTART EXTRACT *, RETRIES <x>, WAITMINUTES <y>, RESETMINUTES <z>
RETRIES:尝试次数
WAITMINUTES:每次间隔时间长度
RESETMINUTES:多长时间后清零

五、PURGEOLDEXTRACTS
定期清理trail文件设置
语法:PURGEOLDEXTRACTS <path to the trail file>, USECHECKPOINTS, MINKEEPHOURS <"x" hours> MINKEEPFILES <"y" number of files>

六、REPORT & INFO & CRITICAL
表示MGR进程每隔 x 小时/分钟,检查EXTRACT的延迟情况
LAGREPORTHOURS/LAGREPORTMINUTES <x>
如果超过了 y 小时/分钟,就把延迟作为信息记录到错误日志中
LAGINFOHOURS/LAGINFOMINUTES <y>
如果延迟超过了z 小时/分钟,则把它作为警告写到错误日志中
LAGCRITICALHOURS/LAGCRITICALMINUTES <z>

-----------------------------------------------------------------------------------------------------------------------------------------
--配置双向复制

--原目标端开启归档,添加抽取进程EORA_2,传输进程PORA_2
sqlplus / as sysdba
startup mount
alter database archivelog;
alter database open;
archive log list
exit

--添加trandata
cd /ogg
ggsci
add trandata test.*

EDIT PARAMS EORA_2

EXTRACT EORA_2
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD ogg
tranlogoptions excludeuser ogg
EXTTRAIL /ogg/dirdat/ab
TABLE test.test_ogg;
TABLE test.dep_ogg;

--添加trail文件,文件名前缀不能超过2个字符
ADD EXTRACT EORA_2, TRANLOG, BEGIN NOW
ADD EXTTRAIL /ogg/dirdat/ab, EXTRACT EORA_2, MEGABYTES 5
START EXTRACT EORA_2
INFO EXTRACT EORA_2

EDIT PARAMS PORA_2

EXTRACT PORA_2
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
PASSTHRU
RMTHOST 192.168.92.100, MGRPORT 7809
RMTTRAIL /ogg/dirdat/pb
TABLE test.test_ogg;
TABLE test.dep_ogg;

--添加PUMP进程PORA_1到OGG,并指定本地的TRAIL文件。
ADD EXTRACT PORA_2, EXTTRAILSOURCE /ogg/dirdat/ab
INFO EXTRACT PORA_2
--为PUMP进程PORA_1指定将本地TRAIL文件传输到目标端后保存成目标端TRAIL文件的名字。
ADD RMTTRAIL /ogg/dirdat/pb, EXTRACT PORA_2, MEGABYTES 5
START EXTRACT PORA_2
INFO EXTRACT PORA_2

-----------------
--原源端修改抽取进程EORA_1,添加复制进程RORA_2
--修改eora_1 添加tranlogoptions excludeuser ogg
EDIT PARAMS EORA_1

EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
tranlogoptions excludeuser ogg
EXTTRAIL /ogg/dirdat/aa
TABLE test.sbdc_4zbr2ha47otd67um;
TABLE test.test_ogg;

add replicat RORA_2,exttrail /ogg/dirdat/pb
EDIT PARAMS RORA_2

REPLICAT RORA_2
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE /ogg/dirrpt/RORA_2.DSC, append
MAP test.sbdc_4zbr2ha47otd67um, TARGET test.sbdc_4zbr2ha47otd67um;
MAP test.test_ogg, TARGET test.test_ogg;

--目标端编辑同步进程RORA_1后,就可以启动RORA_1进程。
START REPLICAT RORA_2
info all

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!