Linux下OGG安装部署及初始化配置

一、OGG安装

(1)建ogg安装目录

/u01/goldengate,设置为oracle:oinstall宿主

export OGG_HOME=/u01/goldengate/

   export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/common/sql:$ORACLE_HOME/rdbms/admin

   export TNS_ADMIN=$ORACLE_HOME/network/admin

   export ORA_NLS11=$ORACLE_HOME/nls/data

   export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11:/oracle/app/common/oracle/bin:$ORACLE_HOME/OPatch:$OGG_HOME

(2)解压ogg安装目录安装

源端及客户端都需要安装,加压到任何有权限的位置均可例如,解压到:/u01/goldengate/

安装包名称:191004_fbo_ggs_Linux_x64_shiphome.zip

解压后进入安装目录:/u01/goldengate/fbo_ggs_Linux_x64_shiphome/Disk1

export DISPLAY=192.168.1.1:0.0

./runInstaller

(3)源端数据库开归档、强制归档开启附加日志

归档开比较容易,开附件日志方法:

select SUPPLEMENTAL_LOG_DATA_MIN  from  v$database;

SQL> alter database add supplemental log data ;

SQL> alter system switch logfile;

附加日志的作用:

1. 包括行连接,行迁移转化成sql 语句的一些信息。例如当一个行在数据文件中占据了两个数据块,这时候 我需要对第二个数据块中的某些列进行更新,由于oracle 只记录数据块的变更信息,因此redolog 中只记录了变更块的信息。 那么如果你有一个需求,需要得到变更行的rowid 信息 ,这时候怎么办? rowid 需要得到第一个块的地址信息才行,这时候就需要supplemental log 信息了,他会记录首个数据块的地址和行的slot 信息。
2. 指定列的信息。当把redolog 解析成sql 语句的时候,sql 语句的where 条件拼凑是一个问题,例如如果想用primary key 作为where 条件。但是oracle 只记录了变更数据块的信息,很显然,主键列一般不会变,这时候就可以要求oracle 将主键数据或者一些不变更列的数据 记录到redolog 中,这也是supplemental log;

数据库中创建goldengate用户(源端与目标均需要安装)

CREATE USER goldengate   IDENTIFIED BY goldengate DEFAULT TABLESPACE USERS ;

GRANT CONNECT TO g goldengate   oldengate;

GRANT ALTER ANY  TABLE TO goldengate;

GRANT ALTER SESSION TO goldengate;

GRANT CREATE SESSION TO goldengate;

GRANT FLASHBACK ANY TABLE TO goldengate;

GRANT SELECT ANY DICTIONARY TO goldengate;

GRANT SELECT ANY TABLE TO goldengate;

GRANT RESOURCE TO goldengate;

GRANT drop ANY TABLE TO goldengate;

grant create any table to goldengate;

grant insert any table to goldengate;

grant update any table to goldengate;

grant delete any table to goldengate;

grant unlimited tablespace to goldengate;

源端:create tablespace tbs_ogg datafile '+DATA' size 100m autoextend on;

目标端:create tablespace tbs_ogg datafile '/u01/oggbasedata/OGGTEST/tbs_ogg01.dbf' size 100m autoextend on;

alter user goldengate   default tablespace tbs_ogg;

OGG初始化

(1)目标端与源端数据库 运行OGG 支持 DDL 脚本 

这些脚本都ogg安装的默认路径下

SQL> conn / as sysdba

SQL> @ marker_setup.sql

SQL> @marker_setup.sql               

Marker setup script

You will be prompted for the name of a schema for the Oracle GoldenGate database objects.

NOTE: The schema must be created prior to running this script.

NOTE: Stop all DDL replication before starting this installation.

Enter Oracle GoldenGate schema name:goldengate  

Marker setup table script complete, running verification script...

Please enter the name of a schema for the GoldenGate database objects:

Setting schema name to GOLDENGATE

MARKER TABLE

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

OK

MARKER SEQUENCE

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

OK

Script complete.

SQL>

SQL> @ddl_setup.sql

SQL> @role_setup.sql

SQL> @ddl_enable.sql

(2)其他完善措施(目标

期中,触发器及DML的job,有必要关闭。

1 禁用目标端归档禁用是为了提高效率,但不建议禁用)

2 为了避免可能发生的导入错误,禁用目标端数据库的外键和check约束。

  select 'alter table ' || owner || '.' || table_name ||

           ' disable constraint ' || constraint_name

      from dba_constraints

     where constraint_type in ('R', 'C')

       and owner in ('TEST_OGG');

3 为了避免生成重复数据,禁用目标端数据库触发器。

select 'alter trigger ' || owner || '.' || trigger_name || 'disable '

      from dba_triggers

     where owner in TEST_OGG);

4 为了避免生成重复数据,禁用目标端数据库有DML操作的JOB。

select * from dba_jobs where SCHEMA_USER='TEST_OGG';

alter system set JOB_QUEUE_PROCESSES=0;

---disable scheduler job

select job_name, owner, program_name, program_owner, state, enabled

  from dba_scheduler_jobs

 where owner not in ('SYS', 'SYSTEM');

exec dbms_scheduler.disable('MGMT_CONFIG_JOB');

初始化目标端数据

初始化有三种方式,OGG初始化,expd、rman方式,可以根据需要选择,这里介绍使用OGG初始化数据方法

(1)源端导出用户数据结构

SQL> create or replace directory expdp_dir as '/home/oracle/expd';

SQL> grant read,write on directory expdp_dir to public;

expdp TEST_OGG/TEST_OGG schemas=TEST_OGG directory=expdp_dir CONTENT=METADATA_ONLY dumpfile= TEST_metadata.dmp logfile= TEST_metadata.log cluster=N;

impdp TEST_OGG/TEST_OGG DIRECTORY=expdp_dir DUMPFILE= TEST_metadata.dmp logfile=impdp_metadata.log 

remap_schema=cjc:chen remap_tablespace=cjctbs:chentbs

配置管理进程

(2)源端\目标端创建子目录

创建子目录(源与目标均需要执行):

GGSCI (eoms01) 1> create subdirs

Creating subdirectories under current directory /u01/goldengate/ggsoft

Parameter file                 /u01/goldengate/ggsoft/dirprm: created.

Report file                    /u01/goldengate/ggsoft/dirrpt: created.

Checkpoint file                /u01/goldengate/ggsoft/dirchk: created.

Process status files           /u01/goldengate/ggsoft/dirpcs: created.

SQL script files               /u01/goldengate/ggsoft/dirsql: created.

Database definitions files     /u01/goldengate/ggsoft/dirdef: created.

Extract data files             /u01/goldengate/ggsoft/dirdat: created.

Temporary files                /u01/goldengate/ggsoft/dirtmp: created.

Credential store files         /u01/goldengate/ggsoft/dircrd: created.

Masterkey wallet files         /u01/goldengate/ggsoft/dirwlt: created.

    

(3)源端编辑管理进程:edit param mgr

PORT 7809

DYNAMICPORTLIST 7809-8000

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/,usecheckpoints, minkeepdays 3

ACCESSRULE, PROG *, IPADDR 192.168.*.*, ALLOW

GGSCI>start mgr

GGSCI>info all  --查看进程状态

如果进程MANAGER状态显示为RUNNING则表示主进程已在运行。至此软件安装完成。

(4)源端编辑抽取队列edit param einit_01

GGSCI> edit param einit_01

EXTRACT einit_01

SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

userid goldengate,password goldengate

RMTHOST 192.168.1.133, MGRPORT 7809

RMTTASK REPLICAT, GROUP rinit_01

TABLE TEST_OGG.mytest;

TABLE TEST_OGG.mytest2;

注意, GROUP rinit_01对应目标端的REPLICAT rinit_01,启动einit_01会将目标端的rinit_01进程自动启动.

GGSCI (eoms01) 1> dblogin userid goldengate,password goldengate

add extract einit_01,sourceistable

register extract einit_01 database

如果是多租户数据库,采用下面的方法:

register extract einit_01 database container(pdbname)

5目标端编辑管理进程:edit param mgr

GGSCI (eomsdr) 10> edit param mgr

PORT 7809

DYNAMICPORTLIST 7810-8000

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/,usecheckpoints, minkeepdays 3

ACCESSRULE, PROG *, IPADDR 192.168.*.*, ALLOW

~

目标端编辑初始应用队列edit param rinit_01

GGSCI (eomsdr) 1> edit param rinit_01

REPLICAT rinit_01

userid goldengate,password goldengate

DISCARDFILE ./dirrpt/RINIT01.dsc, PURGE

Gettruncates

MAP TEST_OGG.mytest, TARGET TEST_OGG.mytest;

MAP TEST_OGG.mytest2, TARGET TEST_OGG.mytest2;

添加组:

GGSCI (eomsdr) 1> add replicat rinit_01,specialrun

(6)启动同步

源端:

 start extract einit_01

启动后开始同步,注意看$ OGG_HOME/ggserr.log

启动einit_01组的目标端进程会自动启动,开始全量数据抽取及加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值