上一节中我们已经完成了OGG软件的安装,管理服务的创建,MAWeb管理界面也正常,接下来就开始正式进入数据同步的配置流程。
要了解上节内容:【ORACLE】OGG-微服务架构初探1(环境安装)_慢工也能出细活的博客-CSDN博客
这步是可选的,也可以直接使用数据库已有的管理员账号,作为最佳实践,推荐在所有数据库上创建统一的OGG对象。
这些操作包括以下内容:
su - oracle
# 创建归档目录(可选)
# mkdir /home/oracle/ora_PROD_archive
sqlplus / as sysdba
# 查看归档是否开启
archieve log list
# Automatic archival Enabled 是为开启,否则执行下面的开启归档脚本
-- 开启补充日志
SHUTDOWN IMMEDIATE
STARTUP MOUNT
-- 开启归档(可选)
-- ALTER SYSTEM SET log_archive_dest='/home/oracle/ora_PROD_archive';
-- ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE OPEN;
--获取数据文件目录(可选)
--select name from v$datafile;
--1. 创建ogg用户专用表空间(ggts),主要要打开闪回功能
CREATE TABLESPACE ggts DATAFILE '/u01/app/oracle/oradata/PROD/ggts01.dbf' SIZE 10M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED
LOGGING
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
--2. 创建ogg用户(gguser)
CREATE USER gguser IDENTIFIED BY Cloud_4u DEFAULT TABLESPACE ggts
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
--3. 给gguser授权
GRANT RESOURCE,CONNECT ,SELECT_CATALOG_ROLE ,dba TO gguser;
ALTER USER gguser DEFAULT ROLE ALL;
GRANT CREATE SESSION TO gguser;
GRANT ALTER SESSION TO gguser;
GRANT SELECT ANY TRANSACTION TO gguser;
GRANT SELECT ANY DICTIONARY TO gguser;
GRANT FLASHBACK ANY TABLE TO gguser;
GRANT SELECT ANY TABLE TO gguser;
GRANT UNLIMITED TABLESPACE TO gguser;
-- ggts表空间配额不限制
ALTER USER gguser QUOTA UNLIMITED ON ggts;
-- 闪回对象操作权限
GRANT EXECUTE ON SYS.DBMS_FLASHBACK TO gguser;
GRANT FLASHBACK ON SYS.USER_SOURCE TO gguser;
--4. ogg管理员权限
exec dbms_goldengate_auth.grant_admin_privilege('gguser');
alter system set streams_pool_size='100M' scope=both;
在所有节点上完成上述脚本操作后,ogg所需的基础环境就准备好了。接下来可以开始分别在源库和目标库上配置OGG的各种服务。
用浏览器打开http://host201:7859,ggadmin/Cloud_4u
主页面上可以查看微服务的各种状态及其详细信息,也可以操作微服务的状态变更 ,其中以下4个是OGG微服务架构的核心服务
管理服务(Admin server): 用于创建用户、添加附加日志、创建抽取和投递进程,类似在ggsci命令下添加附加日志、extract、replicat进程
分发服务(Distribution server):用于创建传输进程,类似于以前的pump进程
接收方服务(Receiver server):用于监控接收进程,类似于以前的server collector进程
性能度量服务(Performance metrics server):性能监控,这个里面信息非常多,例如ADMINSRVR包括进程性能,线程性能以及进程状态与配置,非常详细与直观。
点击【管理服务】的端口号,进入当前部署的管理页面
点击左侧【提取】旁边的“+”按钮,开始配置数据来源数据库的信息
关于参数的具体用法说明阅读参考文献,这里只列出几个必要的参数
进程名称:exprod
提示:自定义不超过8位字符
开始时间:现在
线索名称:ex
提示:自定义非字母开头的2个字符,本次演示用ex作为Trail文件的开头。
身份证明:域 oraclerds 别名 prod201
提示:可以在这里创建一个新的证明,其中用户ID必须写成xx@ip:1521/服务名的形式。身份证明域可以自定义,别名也可以自定义,填写完成后提交,下面两个下拉框就能看到这个身份证明。
参数文件配置
把下列信息添加到参数文件中
-- Extract组名
EXTRACT exproduseridalias prod201 domain demo
DDL INCLUDE MAPPED
EXTTRAIL ex
CACHEMGR CACHESIZE 128M
TRANLOGOPTIONS INTEGRATEDPARAMS(max_sga_size 500,parallelism 1)
TRANLOGOPTIONS ENABLE_AUTO_CAPTURE-- 需要捕获的表,每个表一行,全部列出,包含schema名
TABLE HR.*;
或经典版的配置
-- Extract组名
EXTRACT exprod
-- 客户端的编码,如果oracle字符串编码不是UTF8会转为UTF8
SETENV (NLS_LANG="AMERICAN_AMERICA.UTF8")
-- 连接Oracle服务器的信息,最好OGG与Oracle安装在同一台机器上
USERID gguser@host201:1521/prod, PASSWORD Cloud_4u
-- discard文件,出错时可查看详细信息
DISCARDFILE /u02/oggdata/smprod/dirrpt/exprod.dsc, APPEND, MEGABYTES 100
-- Trail文件路径,会生成多个Trail文件,文件名为前缀ex+文件编号
EXTTRAIL /u02/oggdata/smprod/dirdat/ex
--支持truncate
GETTRUNCATES
GETUPDATEBEFORES
-- 捕获delete、update不使用压缩方式
NOCOMPRESSDELETES FETCHMISSINGCOLUMNS
NOCOMPRESSDELETES
NOCOMPRESSUPDATES
WARNLONGTRANS 1H, CHECKINTERVAL 10M
-- 需要捕获的表,每个表一行,全部列出,包含schema名
TABLE HR.*;
有关提取参数文件中的参数知识库:Summary of Oracle GoldenGate Parameters
su - oracle
$OGG_HOME/bin/adminclient
# 连接到web管理中的manager服务,服务名就是前面配的msprod,用户米ggadmin/Cloud_4u
CONNECT http://host201:7859 deployment msprod as ggadmin password Cloud_4u
DBLOGIN USERIDALIAS prod201 DOMAIN demo
附命令行语句
# 可选,关闭manager
# GGSCI > stop manager
# 查看服务配置
# view params mgr
# 查看服务运行日志
# view report mgr
# 可选:删除Extract组:
# GGSCI >DELETE EXTRACT exprod
# 可选:取消注册Extract组:
# GGSCI >unregister extract exprod database
# 可选,删除Trail文件:
# GGSCI >DELETE EXTTRAIL /u01/app/ogg21/dirdat/ex
# rm /u01/app/ogg21/dirdat/ex*
# 停止服务
# GGSCI >stop extract exprod
#查看状态:
# GGSCI >info exprod
# GGSCI >stats exprod
# GGSCI >status exprod
点击右边的复制+
进程名称:reprod2
身份证明域/别名:prod2ora/prod2201
检查点表:gguser.chkp1
更多参数可以阅读联机文档。
表单主要输入:
进程名称:reprod2
身份证明域:prod2ora
身份证明别名:prod2201
用户ID:(目标库的连接字符串) gguser@host201:1522/prod2
密码:gguser的口令 Cloud_4u
线索名称:ex
检查点表:gguser.CHKP1
提示:检查点表需要在配置页面增加参考步骤如下:
点击左上角“三”,在出现在左侧的功能栏选择【配置】后进入本页面。
找到刚才配置的复制用的身份证明prod2ora,点击图中标记2的位置连接到目标库,如果能连接则会出现下面的配置页面
输入检查点表名称,注意要带模式名,提交。这个表会在复制服务启动后自动创建。
还可以在这里添加TRANDATA信息和脉动信息,如图所示
参数文件,输入以下内容
replicat reprod2
--SETENV (ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1)
--SETENV (ORACLE_SID=PROD2)
USERID gguser@host201:1522/prod2, PASSWORD Cloud_4u
STATOPTIONS, RESETREPORTSTATS
REPORTCOUNT EVERY 1 MINUTES, RATE
REPORT AT 00:00
REPORTROLLOVER ON SUNDAY
DISCARDFILE /u02/oggdata/smprod/dirrpt/reprod2.dsc,APPEND,MEGABYTES 100
ASSUMETARGETDEFS
DBOPTIONS NOSUPPRESSTRIGGERS
-- dynamicresolution
MAP hr.*, target hr.*,colmap(usedefaults);
或者(为证实可用)
REPLICAT reprod2
USERIDALIAS prod2201, DOMAIN prod2oraSTATOPTIONS, RESETREPORTSTATS
REPORTCOUNT EVERY 1 MINUTES, RATE
REPORT AT 00:00
REPORTROLLOVER ON SUNDAY
DISCARDFILE /u02/oggdata/smprod/dirrpt/reprod2.dsc,APPEND,MEGABYTES 100
ASSUMETARGETDEFS
DBOPTIONS NOSUPPRESSTRIGGERS
MAP hr.*, TARGET hr.*;
点击创建,先不运行。
在目标库上执行(微服务目前试下来不需要手工创建)
su - oracle
$OGG_HOME/bin/adminclient
# 连接到web管理中的manager服务,服务名就是前面配的msprod,用户米ggadmin/Cloud_4u
CONNECT http://host201:7859 deployment msprod as ggadmin password Cloud_4u
DBLOGIN USERIDALIAS prod2201 DOMAIN prod2ora
# 可选,如果前面在身份配置的页面已经配过了,这里就不用执行了
#add checkpointtable GGUSER.CHKP1
在源库上执行数据库修改,再检查一下目标库,如果结果成功同步,则说明搭建成功。
OGG微服务ORALCE单向同步的架构搭建步骤比较简单,通过4步就可以搭建起来
双向同步怎么配置呢?一个简单的办法就是把上面的配置过程,源库和目标库反过来配置一遍即可。大家可以自己尝试一下。