Oracle12Cogg配置

给你一囗甜甜゛ 提交于 2020-08-19 20:50:04

                    Oracle12C ogg配置

配置 OGG 安装目录的共享:

这里的共享就是把 OGG 安装到一个共享的设备上,把该目录同时挂到不同节点的相同位置上,这样当 

一个节点挂了之后,可以在另一个节点启动和维护 OGG。 

所以我们上面在配置的时候,才会同时在 个节点操作,并且参数名称也一致。 如果不考虑这种冗余 

的方案,可以直接在其中一个节点上操作,不用搞的这么麻烦。 

我们这里就在一个节点操作,不搞那么复杂了,这里仅说明一下。 

上面的配置完成之后,就和我们单实例操作类似了。 不过在参数配置这块会有细微区别。  

 

--此处安装的是Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO 可以去oracle官网下载

--目标和原库都要配置

SQL> alter system set enable_goldengate_replication=true;

 

 

Source系统设置

 

解压缩ogg安装包

# su - oracle

解压缩ogg安装包

unzip fbo_ggs_Linux_x64_shiphome.zip

cd fbo_ggs_Linux_x64_shiphome/Disk1/

./runInstaller

 

在bash_profile中添加OGG_HOME

export OGG_HOME=$ORACLE_BASE/ogg

export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME

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

alias ggsci='rlwrap /u01/app/oracle/ogg/ggsci'

 

 

开启数据库级别日志补充

SYS@devdb1 >ALTER DATABASE FORCE LOGGING;

SYS@devdb1 >ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

SYS@devdb1 >ALTER SYSTEM ARCHIVE LOG CURRENT;

 

System altered.

SYS@devdb1 >col open_mode for a10

SYS@devdb1 >SELECT name,open_mode,force_logging,supplemental_log_data_min FROM v$database;

 

创建测试用户

SYS@devdb1 >conn new_jk/XH1Q2W3E4R@PDBJK

SNOW@devdb1 >CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR2(10));

 

12c source库需要在root容器中创建OGG管理用户(12c使用intergated extract 需要在cdb创建管理用户)

conn / as sysdba

SQL> conn / as sysdba

Connected.

SQL> create user C##GGADMIN identified by ggadmin;

 

User created.

 

SQL> exec dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');

 

PL/SQL procedure successfully completed.

 

SQL> grant dba to c##ggadmin container=all;

 

Grant succeeded.

 

SQL> connect c##ggadmin/ggadmin

Connected.

 

设置全局参数

ogg global

GGSCI> EDIT PARAMS ./GLOBALS

GGSCHEMA c##ggadmin

 

Target系统设置

解压缩ogg安装包

unzip fbo_ggs_Linux_x64_shiphome.zip

cd fbo_ggs_Linux_x64_shiphome/Disk1/

./runInstaller

 

在bash_profile中添加OGG_HOME

vi /home/oracle/.bash_profile

export OGG_HOME=$ORACLE_BASE/ogg

export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME

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

alias ggsci='rlwrap /u01/app/oracle/ogg/ggsci'

 

 

创建测试用户

alter session set container=pdb1;

conn jktmp/jktmp1@jktmp

create table t1 (id int primary key, name varchar2(20));

 

12c target库需要在pdb 中创建OGG管理用户及其表空间

conn / as sysdba

alter session set container=pdb1;

CREATE TABLESPACE goldengate DATAFILE '/data/oradata/jktmp/goldengate01.dbf' SIZE 100m AUTOEXTEND ON;

 

CREATE USER oggadmin IDENTIFIED BY oggadmin DEFAULT TABLESPACE goldengate;

GRANT dba TO oggadmin;

 

设置全局参数

GGSCI> EDIT PARAMS ./GLOBALS

GGSCHEMA oggadmin

 

 

Source系统设置

配置管理进程

GGSCI> EDIT PARAM MGR

PORT 7809

AUTOSTART EXTRACT *

AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 10

 

开启表级别日志补充需要加上PDB,追加对象为用户pdbjk.new_jk下所有表

DBLOGIN USERID c##ggadmin,PASSWORD ggadmin

ADD SCHEMATRANDATA pdbjk.new_jk

ADD TRANDATA pdbjk.new_jk.*

 

创建初级集成提取组ex1,源端是双节点RAC

ADD EXTRACT ex1,integrated TRANLOG,BEGIN NOW

 

为初级提取组ex1指定本地trail文件(extract文件量比较大的话,需要足够的磁盘

ADD EXTTRAIL /u01/app/oracle/ogg/dirdat/ex, EXTRACT ex1 MEGABYTES 5

注册extract ex1

REGISTER EXTRACT ex1 DATABASE CONTAINER (pdbjk)

 

--配置初级提取组参数文件 enable ddl replicate (ddl include all)

 

GGSCI> EDIT PARAMS ex1

 

EXTRACT ex1

SETENV(ORACLE_SID='sidjk1')

USERID c##ggadmin,PASSWORD ggadmin

EXTTRAIL /u01/app/oracle/ogg/dirdat/ex

--ddl include all

--ddloptions report

TABLE pdbjk.new_jk.*;

 

创建投递组dp1,设置本地trail文件

ADD EXTRACT dp1 EXTTRAILSOURCE /u01/app/oracle/ogg/dirdat/ex

 

为投递进组dp1设置target端trail文件地址

ADD RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, EXTRACT dp1

 

配置投递组dp1参数文件

GGSCI> EDIT PARAMS dp1

 

EXTRACT dp1

SETENV(ORACLE_SID='sidjk1')

USERID c##ggadmin,PASSWORD ggadmin

RMTHOST 10.180.100.9, MGRPORT 7809

RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt

TABLE pdbjk.new_jk.*;

 

Target系统

配置管理进程

GGSCI> EDIT PARAM MGR

PORT 7809

AUTOSTART REPLICAT *

AUTORESTART REPLICAT *, WAITMINUTES 2, RETRIES 5

 

创建检查点表

DBLOGIN USERID oggadmin@jktmp,PASSWORD oggadmin

ADD CHECKPOINTTABLE oggadmin.checkpointtable

 

在全局环境中添加检查点表   

EDIT PARAMS ./GLOBALS

GGSCHEMA oggadmin

CHECKPOINTTABLE oggadmin.checkpointtable

 

 

创建复制组rt1,设置读取trail文件路径以及检查点表加上PDB

ADD REPLICAT rt1, EXTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, checkpointtable pdb1.oggadmin.checkpointtable

 

为复制组rt1配置参数文件初始化的时候加上HANDLECOLLISIONS,初始化之后去掉

 

GGSCL> EDIT PARAM rt1

 

REPLICAT rt1

SETENV (ORACLE_SID='xhtmp')

USERID oggadmin@jktmp, PASSWORD oggadmin

HANDLECOLLISIONS

ASSUMETARGETDEFS

ddloptions report

DISCARDFILE /u01/app/oracle/ogg/discards.dsc, append, megabytes 1024 

TABLEEXCLUDE pdbjk.new_jk.SYS_EXPORT_SCHEMA*

MAP pdbjk.new_jk.*, TARGET jktmp.*;

 

测试环节

启动source管理进程

GGSCI (node1.localdomain) 1> START MGR

 

启动target管理进程

GGSCI (oggtarget) 1> START MGR

 

启动source提取进程

GGSCI (node1.localdomain) 2> START EX1

 

启动source投递进程

GGSCI (node1.localdomain) 3> START DP1

 

 

--初始化数据导出的时候指定flashback_scn

SELECT current_scn FROM v$database

 

expdp new_jk/XH1Q2W3E4R@pdbjk directory=dump_dir dumpfile=new_jk20160526.dump logfile=new_jk20160526.log encryption_password=12qw3edc flashback_scn=7851588331 compression=all

 

impdp jktmp/jktmp@jktmp DIRECTORY=dump_dir include=table dumpfile=new_jk20160526.dump logfile=new_jk20160526.log remap_schema=new_jk:jktmp remap_tablespace=new_jk:jktmp,idx_newjk:jktmp,sit_jk:jktmp,JK_MIGR:jktmp encryption_password=12qw3edc TABLE_EXISTS_ACTION=truncate

 

启动target复制进程

GGSCI (oggtarget) 2>  start replicat rt1,aftercsn 7863029544

 

确认source进程状态

GGSCI (node1.localdomain) 4> INFO ALL

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

EXTRACT     RUNNING     DP1         00:00:00      00:00:08

EXTRACT     RUNNING     EX1         00:00:00      00:00:03

 

确认target进程状态

GGSCI (oggtarget) 3> INFO ALL

 

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

 

MANAGER     RUNNING

REPLICAT    RUNNING     RT1         00:00:00      00:00:02

 

源端节点node1插入数据

SNOW@devdb1 >insert into t1 values(1,'SNOW');

SNOW@devdb1 >commit;

 

源端节点node2插入数据

SNOW@devdb2 >insert into t1 values(2,'LILY');

SNOW@devdb2 >commit;

 

复制端验证

SNOW@oggtarget >select * from t1;

 

        ID NAME

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

         1 SNOW

         2 LILY

 

实验结束。 

 

Oracle GoldenGate是一个轻量级软件,在Oracle数据库上安装配置是一种松耦合的状态,这点非常理想。无论是在单实例环境还是多实例的RAC环境只需要做少量的配置就可以生效,软件的启动和关闭也不需要数据库做任何设置。从安装的角度来说,比DataGuard要轻便的多。DataGuard是一种“侵入式”配置。需要修改Oracle本身的配置文件。


---转载于http://blog.csdn.net/cloudsnowe/article/details/51613364---


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