0
点赞
收藏
分享

微信扫一扫

ogg 配置演练

夏天的枫_ 2022-05-31 阅读 47

1、环境介绍

ogg 配置演练_主键

2、安装ogg

2.1、创建安装目录

源端

[root@leo ~]# mkdir -p /u01/app/ogg

[root@leo ~]# chown -R oracle:oinstall /u01/app/ogg

目标端

[root@leo-deng ~]# mkdir -p /u01/app/ogg

[root@leo-deng ~]# chown -R oracle:oinstall /u01/app/ogg

2.2、安装介质

源端

sftp> cd /u01/app/ogg

sftp> lcd F:\installmedium\ogg

sftp> put ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

[oracle@leo ogg]$ tar -vxf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

目标端:

sftp> cd /u01/app/ogg

sftp> lcd F:\installmedium\ogg

sftp> put ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

[oracle@leo-deng ogg]$ tar -vxf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

2.3、环境变量

源端与目标端均添加如下参数

[oracle@leo ~]$cat .bash_profile

export GG_HOME=/u01/app/ogg

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$GG_HOME

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

alias ggsci='cd $GG_HOME;ggsci'

 

[oracle@leo ~]$source .bash_profile

[oracle@leo-deng ~]$source .bash_profile

2.4、源端数据库配置

2.4.1、强制生成日志

SQL> alter database force logging;

 

Database altered.

 

SQL> select force_logging from v$database;

 

FOR

---

YES

2.4.2、开启归档

[oracle@leo ~]$ sqlplus / as sysdba

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/orclsou/arch';

SQL> alter database open;

2.4.3、开启补充日志

SQL> select supplemental_log_data_min from v$database;

 

SUPPLEME

--------

NO

SQL> alter database add supplemental log data;

SQL> alter system switch logfile;

SQL> select supplemental_log_data_min from v$database;

 

SUPPLEME

--------

YES

说明:redo默认情况下只记录数据块改变的信息,其实它还可以记录更详细的信息,这些信息对第三方的容灾软件很重要,所以此处将supplemental log mode模式打开,oracle一般是用rowid来唯一标识一行记录,但goldengate需要主键等其他标识,所以要开附加日志.

2.5、创建用户、表空间及授权

创建goldengate数据库用户以及专属于ogg的表空间

源端:

[oracle@leo ~]$ sqlplus / as sysdba

create tablespace ts_ogg datafile '/u01/app/oracle/oradata/orclsou/ts_ogg.dbf' size 50m autoextend on;

create user ogg identified by oracle default tablespace ts_ogg;

grant resource to ogg;

grant create session, alter session to ogg;

grant select any dictionary to ogg;

grant flashback any table to ogg;

grant alter any table to ogg;

grant select any table to ogg;

grant execute on dbms_flashback to ogg;

目标端:

[oracle@leo-deng ~]$ sqlplus / as sysdba

create tablespace ts_ogg datafile '/u01/app/oracle/oradata/orcldst/ts_ogg.dbf' size 200m autoextend on;

create user ogg identified by oracle default tablespace ts_ogg;

grant resource to ogg;

grant create session, alter session to ogg;

grant select any dictionary to ogg;

grant flashback any table to ogg;

grant alter any table to ogg;

grant select any table to ogg;

grant execute on dbms_flashback to ogg;

grant insert any table to ogg;

grant update any table to ogg;

grant delete any table to ogg;

2.6、准备数据

2.6.1、源端

建立用户并授予基本权限

create user dlj identified by oracle;

grant connect,resource to dlj;

grant select on scott.emp to dlj;

grant select on scott.dept to dlj;

dlj用户创建测试表,并增加主键

SQL> show user

USER is "DLJ"

create table myemp as select * from scott.emp;

create table mydept as select * from scott.dept;

alter table mydept add primary key (deptno);

alter table myemp add primary key (empno);

导出数据,用于目标端

export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

exp dlj/oracle@orclsou file=/home/oracle/dlj.dmp tables=mydept,myemp rows=y log=/home/oracle/exp.log

将源端的dmp文件scp到目标端

scp scott.dmp ​​oracle@192.168.133.157:/home/oracle/​​

2.6.2、目标端

创建用户并授予权限

create user dlj identified by oracle;

grant connect,resource to dlj;

导入测试数据

[oracle@leo-deng ~]$ imp dlj/oracle file=/home/oracle/dlj.dmp full=y

验证测试数据

SQL> conn dlj/oracle

Connected.

SQL> select * from tab;

 

TNAME                          TABTYPE  CLUSTERID

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

MYDEPT                         TABLE

MYEMP                          TABLE

 

SQL> select count(*) from mydept;

 

  COUNT(*)

----------

         4

SQL> select count(*) from myemp;

 

  COUNT(*)

----------

        14

3、OGG配置

3.1、源端

说明:必须在ogg的home目录下启动ggsci,这样才能把子目录建在ogg的home目录下,如果不在相应位置建立子目录,在后面编辑参数文件时会报错.

[oracle@leo ogg]$ cd $GG_HOME

[oracle@leo ogg]$ ./ggsci

3.1.1、创建目录

GGSCI (leo) 1> create subdirs​

Creating subdirectories under current directory /ogg​

Parameter files                /ogg/dirprm: created

Report files                   /ogg/dirrpt: created

Checkpoint files               /ogg/dirchk: created

Process status files           /ogg/dirpcs: created

SQL script files               /ogg/dirsql: created

Database definitions files     /ogg/dirdef: created

Extract data files             /ogg/dirdat: created

Temporary files                /ogg/dirtmp: created

Veridata files                 /ogg/dirver: created

Veridata Lock files            /ogg/dirver/lock: created

Veridata Out-Of-Sync files     /ogg/dirver/oos: created

Veridata Out-Of-Sync XML files /ogg/dirver/oosxml: created

Veridata Parameter files       /ogg/dirver/params: created

Veridata Report files          /ogg/dirver/report: created

Veridata Status files          /ogg/dirver/status: created

Veridata Trace files           /ogg/dirver/trace: created

Stdout files                   /ogg/dirout: created

3.1.2、添加端口

GGSCI (leo) 2> edit param mgr

添加

port 7809​

GGSCI (leo) 3> start mgr

Manager started.

GGSCI (leo) 4> info all

Program     Status      Group       Lag           Time Since Chkpt

MANAGER     RUNNING                                          

GGSCI (leo) 6> dblogin userid ogg,password oracle

Successfully logged into database.

GGSCI (leo) 7> add trandata dlj.*

Logging of supplemental redo data enabled for table DLJ.MYDEPT.

Logging of supplemental redo data enabled for table DLJ.MYEMP.

说明:数据库附加日志打开后还需要对每张表执行add trandata吗?

答案是肯定的,如果不执行add trandata,insert同步没有问题(ORACLE数据库),但在同步update或delete时,就会因为丢失主键报同步错误.

不开启表级的最小附加日志,update的redo信息不记录没有进行更新的字段信息,如主键不更新的话主键不记录在redo中,所以会导致同步失败.

3.1.3、抓取进程

extract进程,负责从源端数据表或者日志中捕获数据

GGSCI (leo) 8> add extract exta,tranlog,begin now

EXTRACT added.

添加本地队列ra,exta进程捕捉到的有效数据将写入本地队列

GGSCI (leo) 9> add exttrail ./dirdat/ra,extract exta

EXTTRAIL added.

为exta进程配置参数

GGSCI (leo) 1> edit param exta

添加如下内容:

extract exta

userid ogg,password oracle

setenv NLS_LANG = (AMERICAN_AMERICA.WE8ISO8859P1)

exttrail ./dirdat/ra

dynamicresolution  /* 优化参数,动态分析表结构

gettruncates   /*抓取truncate table操作

Table dlj.*;

3.1.4、投递进程

源端数据库配置投递过程

GGSCI (leo) 2> add extract dp1,exttrailsource ./dirdat/ra

EXTRACT added.​

GGSCI (leo) 3> edit param dp1

添加如下:

extract dp1

userid ogg,password oracle

setenv (NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1)

passthru

rmthost 192.168.133.157,mgrport 7809

rmttrail ./dirdat/ra

table dlj.*;​

GGSCI (leo) 4> add rmttrail ./dirdat/ra,extract dp1

RMTTRAIL added.​

GGSCI (leo) 5> info all​

Program     Status      Group       Lag           Time Since Chkpt​

MANAGER     RUNNING                                          

EXTRACT     STOPPED     DP1         00:00:00      00:03:48   

EXTRACT     STOPPED     EXTA        00:00:00      00:38:22    ​

GGSCI (leo) 6> start dp1​

Sending START request to MANAGER ...

EXTRACT DP1 starting​

GGSCI (leo) 7> start exta​

Sending START request to MANAGER ...

EXTRACT EXTA starting​

GGSCI (leo) 8> info all​

Program     Status      Group       Lag           Time Since Chkpt​

MANAGER     RUNNING                                          

EXTRACT     RUNNING     DP1         00:00:00      00:04:26   

EXTRACT     RUNNING     EXTA        00:38:56      00:00:04    

3.2、目标端

[oracle@leo-deng ~]$ cd $GG_HOME

[oracle@leo-deng ogg]$ ./ggsci

3.2.1、创建目录

GGSCI (leo-deng) 1> create subdirs

GGSCI (leo-deng) 2> edit param mgr

添加如下

port 7809

GGSCI (leo-deng) 3> start mgr​

Manager started.

GGSCI (leo-deng) 4> edit params ./globals

添加如下

checkpointtable ogg.checkpoint​

GGSCI (leo-deng) 5> dblogin userid ogg,password oracle

Successfully logged into database.​

GGSCI (leo-deng) 6> add checkpointtable ogg.checkpoint​

Successfully created checkpoint table OGG.CHECKPOINT.

3.2.2、复制进程

GGSCI (leo-deng) 8> add replicat repa,exttrail ./dirdat/ra,checkpointtable ogg.checkpoint

REPLICAT added.​

GGSCI (leo-deng) 9> edit param repa

添加如下:

replicat repa

setenv (NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252)

userid ogg,password oracle

numfiles 500

grouptransops 10000

handlecollisions

assumetargetdefs

allownoopupdates

dynamicresolution

discardfile ./dirrpt/repsa_discard.txt, append, megabytes 10

map dlj.*, target dlj.*;

说明:逗号与target之间需用空格隔开, ogg.checkpoint中的ogg为之前创建的用户.

GGSCI (leo-deng) 10> info all​

Program     Status      Group       Lag           Time Since Chkpt​

MANAGER     RUNNING                                          

REPLICAT    STOPPED     REPA        00:00:00      00:03:25    ​

GGSCI (leo-deng) 11> start repa​

Sending START request to MANAGER ...

REPLICAT REPA starting​

GGSCI (leo-deng) 17> info all​

Program     Status      Group       Lag           Time Since Chkpt​

MANAGER     RUNNING                                          

REPLICAT    RUNNING     REPA        00:00:00      00:00:02  

4、验证数据

源端中向mydept表中插入一条数据

SQL> select * from mydept;

 

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON

 

SQL> insert into mydept values (50,'IT','ChongQing');

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> select * from mydept;

 

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON

        50 IT             ChongQing

 

SQL> show user

USER is "DLJ"

目标端验证

SQL> select * from mydept;

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON

        50 IT             ChongQing

ogg基本配置完成.

总结:配置过程包括操作系统层面前期准备、源端目标端数据库配置、源端中mgr/extract/pump进程配置、目标端中mgr/replicat进程配置.配置过程要保持数据库开启状态,否则ggsci中用户不能登录.

参照网址:​​http://t.zoukankan.com/NextAction-p-7366666.html​​

举报

相关推荐

0 条评论