暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OGGMA for oracle 19.1.0.4安装配置

原创 落雷惊虹 2021-06-13
2434

前言

Oracle GoldenGate Microservice Architecture(以下简称为OGG MA) 12.3推出的架构。该架构基于Rest API,通过web就可以完成ogg的配置和监控。传统架构的ogg监控需要安装ogg monitor agent,配置起来也非常麻烦。

一、环境介绍

本环境数据库使用oracle 19.11,启用多租户特性,建立了两个pdb,pdb1作为源端,pdb2作为目标端。

OGG使用19.1.0.4版本。

二、安装OGGMA

创建ogg使用的目录

[root@ogg-ora19c ~]# mkdir /ogg [root@ogg-ora19c ~]# cd /ogg [root@ogg-ora19c ~]# mkdir oggma ogginst

oggma用于存放可执行文件

ogginst存放OGGMA的服务管理器(Service Manager)和部署(Deployment)文件。之所以这样是方便以后OGGMA跨版本升级,将可执行文件安装到其他目录,然后指向原有的部署即可。

将所有者更改为oracle

[root@ogg-ora19c ~]#chown oracle:oinstall /ogg [root@ogg-ora19c ~]#chmod -R 775 /ogg

解压安装文件

[oracle@ogg-ora19c ~]$unzip 191004_fbo_ggs_Linux_x64_services_shiphome.zip

安装OGGMA

[oracle@ogg-ora19c ~]$ cd fbo_ggs_Linux_x64_services_shiphome/Disk1/ [oracle@ogg-ora19c Disk1]$ ls install response runInstaller stage [oracle@ogg-ora19c Disk1]$ ./runInstaller 正在启动 Oracle Universal Installer... 检查临时空间: 必须大于 120 MB。 实际为 77296 MB 通过 检查交换空间: 必须大于 150 MB。 实际为 17199 MB 通过 检查监视器: 监视器配置至少必须显示 256 种颜色。 实际为 16777216 通过 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2021-05-10_10-03-29PM. 请稍候...

1.png
2.png
3.png
4.png
5.png

三、配置OGGMA服务

使用OGGCA配置服务管理器和部署

[oracle@ogg-ora19c Disk1]$ cd /ogg/oggma/bin [oracle@ogg-ora19c bin]$ ./oggca.sh

6.png
7.png
8.png
9.png
10.png
11.png
12.png
13.png
14.png
15.png
16.png
17.png

新开一个root的窗口,执行该脚本

[root@ogg-ora19c ~]# /ogg/ogginst/sm/bin/registerServiceManager.sh Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. ---------------------------------------------------- Oracle GoldenGate Install As Service Script OGG_HOME=/ogg/oggma OGG_CONF_HOME=/ogg/ogginst/sm/etc/conf OGG_VAR_HOME=/ogg/ogginst/sm/var OGG_USER=oracle Running OracleGoldenGateInstall.sh... Created symlink from /etc/systemd/system/multi-user.target.wants/OracleGoldenGate.service to /etc/systemd/system/OracleGoldenGate.service.

18.png

OGGMA配置完成,现在打开浏览器就可以访问OGGMA了。

四、配置oracle数据库

4.1 配置TNS

无论源端还是目标端,都建议为cdb和pdb都建立单独的tns, 在ogg配置里连接使用TNS

vi $ORACLE_HOME/network/admin/tnsnames.ora CDB = ( DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ogg-ora19c.moon.com) (PORT=1521) ) (CONNECT_DATA= (SERVICE_NAME=orcl) ) ) PDB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ogg-ora19c)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1) ) ) PDB2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ogg-ora19c)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb2) ) )

4.2 开启数据库对golengate的支持

sqlplus / as sysdba SQL>ALTER SYSTEM SET enable_goldengate_replication = TRUE;

该步骤需要分别在源端和目标端执行,由于这里pdb1和pdb2在一个cdb,直接在cdb执行一次即可。

4.3 源端配置数据库

4.3.1配置归档模式

如果数据库不是归档模式,需要将数据库设置为归档模式。源端必须开启归档模式,目标端可以不用归档模式。

先关闭数据库

$sqlplus / as sysdba SQL>shutdown immediate

启动数据库到mount

$sqlplus / as sysdba SQL>startup mount

修改数据库为归档模式

SQL>alter database archivelog;

创建一个目录用于存放归档路径

# mkdir /arch # chown oracle:oinstall /arch # chmod 775 /arch

设置数据库的归档参数

SQL>ALTER SYSTEM SET log_archive_dest_1 = 'location=/arch';

启动数据库到open

SQL>alter database open;

4.3.2 开启FORCE LOGGING

数据库启用force logging

SQL>ALTER DATABASE FORCE LOGGING;

4.3.3在cdb添加附加日志

sqlplus / as sysdba SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

4.3.4在pdb添加附加日志

sqlplus / as sysdba SQL>alter session set container=pdb1; SQL>ALTER PLUGGABLE DATABASE ADD SUPPLEMENTAL LOG DATA;

4.3.5创建OGG用户

先为ogg用户创建表空间,这里用的多租户,将用户建成通用用户,需要在cdb和每个pdb里创建ogg表空间

cdb:

CREATE TABLESPACE OGG DATAFILE '/u01/app/oracle/oradata/OGG/ogg.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING DEFAULT NO INMEMORY ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

PDB1:

CREATE TABLESPACE OGG DATAFILE '/u01/app/oracle/oradata/OGG/pdb1/ogg.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING DEFAULT NO INMEMORY ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

PDB2:

CREATE TABLESPACE OGG DATAFILE '/u01/app/oracle/oradata/OGG/pdb2/ogg.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING DEFAULT NO INMEMORY ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

创建用户

CREATE USER c##ogg IDENTIFIED BY AAAbbb123 DEFAULT TABLESPACE ogg;

给OGG用户授权

EXEC dbms_goldengate_auth.grant_admin_privilege('C##OGG','*', grant_optional_privileges=>'*',container=>'all');

给OGG用户授权DBA权限

GRANT DBA TO C##OGG container=all;

4.3.6 创建测试用户

在pdb1里创建一个测试用户。

先创建表空间

sqlplus / as sysdba SQL>alter session set container=pdb1; SQL>CREATE TABLESPACE test DATAFILE '/u01/app/oracle/oradata/OGG/pdb1/test01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING DEFAULT NO INMEMORY EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

创建用户

SQL>CREATE USER haifeng IDENTIFIED BY test1234 DEFAULT TABLESPACE test;

给测试用户授权

SQL>GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO haifeng;

4.3.7创建测试数据

创建测试表

sqlplus haifeng/test1234@pdb1 SQL> --建表 CREATE TABLE HAIFENG.T1 ( id NUMBER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999999999999999999999999999 CACHE 20 CYCLE ORDER KEEP), name VARCHAR2(500) ); --主键 ALTER TABLE HAIFENG.T1 ADD ( CONSTRAINT T1_PK PRIMARY KEY (id) ENABLE VALIDATE);

写入测试数据

SQL>insert into haifeng.t1(name) select object_name from dba_objects; SQL>commit;

4.4 目标端配置数据库

4.4.1 创建OGG用户

目标端上也需要创建OGG使用的用户。由于本例使用的是多租户,建的是通用用户,所以PDB2里已经有C##OGG用户,这一步可以省略。如果源端和目标端不在一个数据库或者cdb需要单独建用户。建用户的过程同4.3.5节。

4.4.2 创建测试用户

目标端创建测试的用户

先创建表空间

CREATE TABLESPACE test DATAFILE '/u01/app/oracle/oradata/OGG/pdb2/test01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING DEFAULT NO INMEMORY EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

创建用户

CREATE USER haifeng IDENTIFIED BY test1234 DEFAULT TABLESPACE test;

给用户授权

GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO haifeng;

数据库配置完成,下面开始配置OGG的进程

五、配置OGG进程

5.1 创建Credentials

源端和目标端都需要创建Credentials,将用户名、密码写入到Credentials中,OGG各进程使用别名,防止密码泄露。

使用浏览器登录Administration Server,上文安装时候配置的端口是7810,所以URL是http://主机IP:7810
image20210609223445399.png
image20210609223601707.png
image20210609223739373.png
image20210609223837846.png

image20210609224029939.png

为pdb1和pdb2也创建别名。
image20210609224345925.png

5.2 源端添加schematrandata

image20210609225230968.png

image20210609225308974.png

image20210609225422198.png

image20210609225448682.png

5.3 源端添加抽取进程

源端登录Administration Server

image20210612141256266.png

image20210612141407788.png

image20210612141507629.png

image20210612142334459.png

image20210612142115895.png

extract E_TEST useridalias oggcdb domain OracleGoldenGate SETENV (NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8") SETENV (ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1") EXTTRAIL lt DDL include mapped TABLEEXCLUDE pdb1.haifeng.SYS_EXPORT_SCHEMA*; BR BROFF TABLE pdb1.haifeng.*;

image20210612142529738.png

5.4 源端添加投递进程

登录Distribution Server

image20210612142755008.png

image20210612143701149.png

image20210612143647071.png

5.5 目标端添加检查表

目标端登录Administration Server

image20210612144210983.png

image20210612144316907.png

image20210612144344854.png

image20210612144407356.png

5.6 目标端添加应用进程

目标端登录Administration Server

msedge_MZpcCJZHHG.png
image20210612144035815.png

msedge_DEOUbUuRDY.png
msedge_oKEHAN9nQe.png
msedge_UOroCDcTE3.png

应用进程建好之后,不用马上启动。将源端数据初始化过来之后,再启动。

六、数据初始化

使用rman或者数据泵将源端的数据复制到目标端,这里使用的是数据泵。

6.1 创建目录

操作系统创建目录

# mkdir /datadump # chown oracle:oinstall /datadump/

源端数据库创建目录

SQL> alter session set container=pdb1; SQL> create directory datadump as '/datadump';

目标端创建目录

SQL> alter session set container=pdb2; SQL> create directory datadump as '/datadump';

6.2 源端导出数据

查询当前SCN

SQL> select current_scn from v$database; CURRENT_SCN ----------- 3390813

基于当前SCN,导出数据

expdp system@pdb1 dumpfile=datadump:haifeng.dmp logfile=datadump:haifeng.log schemas=haifeng flashback_scn=3390813

将导出的dmp通过ftp或者sftp上传到目标端,这里省略这一步骤。

6.3 目标端导入数据

impdp system@pdb2 dumpfile=datadump:haifeng.dmp logfile=datadump:haifeng.log table_exists_action=replace

修改目标端OGG启动SCN,开启同步
image20210613114325864.png

image20210613114403951.png

image20210613114514329.png

七、测试OGG

源端插入一条数据

sqlplus /nolog @ >conn haifeng/test1234@pdb1 已连接。 HAIFENG @ pdb1>insert into t1(name) values('Haifeng cao'); 已创建 1 行。 HAIFENG @ pdb1>commit; 提交完成。 HAIFENG @ pdb1>select * from t1 where name='Haifeng cao'; ID NAME ---------- ---------------------------------------- 25466 Haifeng cao

目标端查看数据

@ >conn haifeng/test1234@pdb2 已连接。 HAIFENG @ pdb2>col name for a40 HAIFENG @ pdb2>select * from t1 where name='Haifeng cao'; ID NAME ---------- ---------------------------------------- 25466 Haifeng cao
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论