ZCBUS安装环境需求
- ZCBUS安装环境需求
- 一、硬件环境要求
- 系统运行环境,最低配置要求建议:
- 系统运行高可用环境,要求建议:
- 二、生产环境
- ORACLE数据库环境
- ORACLE数据库要求
- ORACLE 11.2.0.4以及以上版本【No Agentd模式】
- ORACLE 11.2.0.4以下版本【No Agentd模式】
- GOLGEN GATE软件兼容模式【AGENTD模式】
- DATAGUARD容灾端日志分析
- LOGMINER配置
- MYSQL数据库环境
- MYSQL主库环境
- MYSQL从库环境
- GTID模式:
- SQLSERVER数据库环境
- 在线模式
- 离线模式
- POSTGRESQL数据库环境
- 修改参数
- 创建数据库用户
- 赋权限
- SYBASE数据库环境
- DB2数据库环境
- 客户端安装
- 编目tcp/ip节点
- 编目数据库实例
- 数据库远程连接
- 开启归档模式
- 离线备份数据库
- 用户权限
- 开启data capture changes属性
一、硬件环境要求
系统运行环境,最低配置要求建议:
主机 | CPU 4核、16GB内存、存储不少于50GB |
---|---|
操作系统 | CENTOS 7 |
网络 | 数据交换服务器,需要和需要共享数据的数据库、大数据平台之间,网络设备畅通。如果存在网络不畅通情况下,必须通过前置机畅通,通过前置机跳转实现数据交换服务。 |
数据缓存周期 | 默认30天 |
数据交换体量 | 1000张表以内的数据交换 5条以内复制链路 |
系统运行高可用环境,要求建议:
主机 | 3台服务器,组成MYSQL/WEB服务/ZS数据交换服务 MYSQL之间实现主备高可用同步 WEB部署在两个节点实现数据负载均衡 ZS数据交换服务 8核16GB内存500GB存储 3台KAFKA集群提供数据交换服务 负责数据缓存服务,以及数据交换存储基础服务 ,存储数据量大约为实际共享数据的50-70%,其中全量和增量为1:1配置 |
---|---|
操作系统 | CENTOS 7(兼容arm内核操作系统) |
网络 | 数据交换服务器,需要和需要共享数据的数据库、大数据平台之间,网络设备畅通。如果存在网络不畅通情况下,必须通过前置机畅通,通过前置机跳转实现数据交换服务。 |
数据缓存周期 | 默认30天 |
数据交换体量 | 5000-10000张表以内的数据交换 10-30条复制链路 |
二、生产环境
ORACLE数据库环境
ORACLE数据库要求
- ORACLE版本列表
oracle9i/10g/11g/12c/18c/19c/20c版本
操作系统不限
数据复制基本要求:- 数据库必须处于归档模式
- 打开附加日志
- 对于数据共享环境:打开附加日志,如果数据库压力不大,建议打开全库全列补充日志,如果数据库压力较大,针对需要复制的表打开附加日志,【建议打开全列附加日志】。
- 对于点对点数据传输环境:必须打开最小附加日志,以及主键、唯一键附加日志级别,建议打开全列附加日志。
ORACLE 11.2.0.4以及以上版本【No Agentd模式】
使用XSTREAM模式实现增量数据捕获,支持在线模式和DOWNSTREAM模式,增量数据从生产数据库,或者第三方节点获取增量数据,对生产压力较小。ORACLE 11.2.0.4以下版本【No Agentd模式】
使用LOGMNR模式实现增量数据捕获,支持ORACLE9i-ORACLE11.2.0.3所有版本,增量数据从数据库准实时获取出来,对生产压力较小GOLGEN GATE软件兼容模式【AGENTD模式】
兼容GoldenGate数据捕获模式,前端为GoldenGate数据获取增量数据,适用于业务量超大模式,一般建议使用OGG做分析,后端开始将增量数据介入到ZCBUS数据交换管理平台中来。DATAGUARD容灾端日志分析
需要再生产建立相应用户,赋予权限参考ZCBUS提供的《ZCBUS_ORACLE_LOGMNR_V01.SQL》脚本LOGMINER配置
a)检查LOGMINER是否配置set line 120 col owner for a30 col object_name for a30 select owner,object_name,object_type from all_objects t where object_type = 'PACKAGE' and object_name in ('DBMS_LOGMNR','DBMS_LOGMNR_D','DBMS_LOGMNR_SESSION') and owner='SYS';
select owner,object_name,object_type from all_objects t where object_type = 'SYNONYM' and object_name in ('DBMS_LOGMNR','DBMS_LOGMNR_D') and owner='PUBLIC';
set line 150 col owner for a30 col GRANTEE for a30 col TABLE_NAME for a30 col PRIVILEGE for a30 select GRANTEE,owner,TABLE_NAME,PRIVILEGE from dba_tab_privs where GRANTEE ='EXECUTE_CATALOG_ROLE' and TABLE_NAME in ('DBMS_LOGMNR','DBMS_LOGMNR_D','DBMS_LOGMNR_SESSION') and owner='SYS' and PRIVILEGE='EXECUTE';
b)LOGMINER配置
依次执行以下脚本:
注:Oracle12c经典安装中只有前两个,但并不影响使用sqlplus / as sysdba @$ORACLE_HOME/rdbms/admin/dbmslm.sql @$ORACLE_HOME/rdbms/admin/dbmslmd.sql @$ORACLE_HOME/rdbms/admin/dbmslms.sql
c)LOGMINER权限grant create session to 用户名; grant resource to 用户名; grant select any table to 用户名; grant select any dictionary to 用户名; grant select on sys.user$ to 用户名; grant select on sys.col$ to 用户名; grant select on sys.obj$ to 用户名; grant select_catalog_role to 用户名; grant EXECUTE_CATALOG_ROLE to 用户名; grant execute on dbms_logmnr_d to 用户名; grant execute on dbms_logmnr to 用户名; grant execute on dbms_flashback to 用户名; grant flashback any table to 用户名; grant LOGMINING to 用户名;(12c版本以上执行)
MYSQL数据库环境
MYSQL主库环境
MYSQL将用户对数据库更新的操作以二进制格式保存到 Binary Log日志文件中
MYSQL主库环境,需要有查询需要复制表权限,查询数据字典权限,以及复制权限即可
MYSQL从库环境
MYSQL将用户对数据库更新的操作以二进制格式保存到 Binary Log日志文件,以及log-slave-updates=1
MYSQL从库可写情况,需要有查询需要复制表权限,查询数据字典权限,以及复制权限即可.
MYSQL从库只读情况,需要再生产配置数据库账号,具有上述权限,会自动复制到从库中.
GTID模式:
gtid_mode=on
enforce_gtid_consistency=on
SQLSERVER数据库环境
分为在线模式,离线模式两种
在线模式
需要SYSADMIN权限,在生产创建各别辅助脚本,脚本内容参考ZCBUS提供的《ZCBUS_SQLSERVER_AUX_ONLINE_V01.SQL》
离线模式
1、在生产使用SA/SYSADMIN用户连接,使用“ZCBUS初始化工具”进行SQLSERVER配置
2、在生产建立查询账号,赋予相应权限,即可实现提供数据复制服务基础
POSTGRESQL数据库环境
修改参数
a)修改postgresql.conf文件
#逻辑级别日志
wal_level = logical
#设置日志保留个数,设置太少了,日志量太大了日志自动删除后,容易读不到日志
wal_keep_segments = 10
#如果需要远程读日志,需要设置,至少为1,就接受1个读日志线程
max_wal_senders = 10
b)如果远程读日志,需要设置读日志的权限,修改pg_hba.conf
host replication all 0.0.0.0/32 ident
c)重启数据库
创建数据库用户
create user 用户名 with password '密码';
赋权限
grant select,trigger, connect, execute,usage on database 数据库名 to用户名;
在生产创建各别辅助脚本,脚本内容参考ZCBUS提供的《ZCBUS_POSTGRESQL_AUX_ONLINE_V01.SQL》
SYBASE数据库环境
需要提供SA或者相应权限账户,即可实现数据复制
DB2数据库环境
客户端安装
a)db2inst1用户创建
useradd db2inst1
passwd db2inst1
b)介质包解压
tar -xvf v9.7_linuxx64_server.tar
c) 客户端安装
cd server
./db2_install
指定安装目录,默认路径是/opt/ibm/db2/V9.7,需要修改路径输入yes:
指定安装客户端程序,输入CLIENT:
d) 实例创建
cd /opt/ibm/db2/V9.7/instance
./db2icrt db2inst1
编目tcp/ip节点
su - db2inst1
db2 "catalog tcpip node /*db2node 节点名*/ remote /*10.108.48.205 IP地址*/ server /*50000 端口号*/"
注:其中节点名、IP地址和端口为可变参数,是指要连接的数据库所在的服务器IP和端口(db2 get dbm cfg|grep SVCENAME,可使用此命令再db2数据库服务器上查询具体IP和端口)
编目数据库实例
db2 "catalog database /*test 数据库实例名*/ as /*test 数据库映射名*/ at node /*db2node 节点名*/"
注:其中数据库实例名和数据库映射名名为可变参数,节点名为上一步指定的名称
数据库远程连接
db2 connect to /*test 数据库映射名*/ user /*username 连接用户名*/" using /*123456 密码*/"
注:数据库映射名为上一步指定的名称
开启归档模式
a)检查数据库是否是归档模式
db2 connect to 数据库名
db2 get db cfg for 数据库名| grep LOG
如果下面参数值为OFF,则源端日志为循环日志。
First log archive method (LOGARCHMETH1) = OFF
Second log archive method (LOGARCHMETH2) = OFF
b)修改日志模式为归档模式
创建相关路径:
mkdir -p LOGARCHMETH1路径
mkdir -p LOGARCHMETH2路径
mkdir -p OVERFLOWLOGPATH路径
db2开启归档日志:
db2 update db cfg for 数据库名 using LOGARCHMETH1 disk:LOGARCHMETH1路径
db2 update db cfg for 数据库名 using LOGARCHMETH2 disk:LOGARCHMETH2路径
db2 update db cfg for 数据库名 using OVERFLOWLOGPATH OVERFLOWLOGPATH路径
离线备份数据库
db2 backup database test to 备份日志路径
注:备份时如果如下报错,说明有连接在连着这个库,可以执行强制断开所有连接,db2 force application all,如下:
[db2inst1@zcbusdbs arch]$ db2 backup database test to /data/db2/database/arch/backup
SQL1035N The database is currently in use. SQLSTATE=57019
[db2inst1@zcbusdbs arch]$ db2 force application all
DB20000I The FORCE APPLICATION command completed successfully.
DB21024I This command is asynchronous and may not be effective immediately.
[db2inst1@zcbusdbs arch]$ db2 backup database test to /data/db2/database/arch/backup
Backup successful. The timestamp for this backup image is : 20210219010613
用户权限
db2 grant dbadm,connect,dataaccess on database to user 用户名
开启data capture changes属性
注:程序会自动为发布的表添加data capture changes属性,这样表的操作才能记录到日志里,程序才能分析到。
查询表是否有data capture changes权限:
SELECT DATACAPTURE FROM SYSCAT.TABLES WHERE TABSCHEMA ='SCHEMA名' AND TABNAME='表名' AND TYPE='T'
手动开启:
Alter table SCHEMA名.表名 data capture changes