数据库准备
创建用户
容器模式
创建数据库用户
create tablespace zctbs datafile '数据文件路径/zctbs.dbf' size 100m reuse autoextend on maxsize unlimited;
create user zcbus_user identified by zcbus_passwd default tablespace zctbs quota unlimited on zctbs;
权限
grant create session to zcbus_user;
grant resource to zcbus_user;
grant select any table to zcbus_user;
grant select any dictionary to zcbus_user;
grant select on sys.user$ to zcbus_user;
grant select on sys.col$ to zcbus_user;
grant select on sys.obj$ to zcbus_user;
grant select_catalog_role to zcbus_user;
注:12C的CDB模式zcbus_user要以c##开头
非容器模式
需要创建CDB用户/PDB用户两种
CDB用于分析日志
创建cdb用户(web配置页面中集群管理的db_type,db_name,host,user,password等信息添加cdb信息)
sqlplus sys/password@host:port/SID as sysdba
create user C##zcbus_user identified by zcbus_user;
alter user c##zcbus_user quota 100m users;
grant create seesion to c##zcbus_user CONTAINER=ALL;
grant resource to c##zcbus_user CONTAINER=ALL;
grant select any table to c##zcbus_user CONTAINER=ALL;
grant select any dictionary to c##zcbus_user CONTAINER=ALL;
grant select on sys.user$ to c##zcbus_user CONTAINER=ALL;
grant select on sys.col$ to c##zcbus_user CONTAINER=ALL;
grant select on sys.obj$ to c##zcbus_user CONTAINER=ALL;
grant select_catalog_role to c##zcbus_user CONTAINER=ALL;
PDB用户PDB中数据导出
--创建pdb用户(web配置页面中集群管理的source_db_name,source_host,source_user,source_passwd填写pdb信息)
Alter session set container=pdb01;
create user zcbus_user identified by zcbus_passwd default tablespace zctbs quota unlimited on zctbs;
grant create session to zcbus_user;
grant resource to zcbus_user;
grant select any table to zcbus_user;
grant select any dictionary to zcbus_user;
grant select on sys.user$ to zcbus_user;
grant select on sys.col$ to zcbus_user;
grant select on sys.obj$ to zcbus_user;
grant select_catalog_role to zcbus_user;
grant flashback any table to zcbus_user;
grant lock any table to zcbus_user;
grant select_catalog_role to zcbus_user;
发布服务配置
- 数据库配置
sqlplus / as sysdba
alter system set enable_goldengate_replication=true;
alter system set open_cursors = 3000;
begin
dbms_xstream_auth.grant_admin_privilege(
grantee => 'zcbus_user',
privilege_type => 'capture',
grant_select_privileges => true);
end;
/
#enable_gg_xstream_for_streams
begin
dbms_xstream_adm.enable_gg_xstream_for_streams(true);
end;
12C及以上 CDB模式配置:
begin
dbms_xstream_auth.grant_admin_privilege(
grantee => 'c##zcbus_user',
privilege_type => 'capture',
grant_select_privileges => true,
container => 'all');
end;
/
b)开启补充加日志
sqlplus / as sysdba
alter table 数据库名.表名 add supplemental log data(all) columns; 表级别
alter database add supplemental log data; 库级别最小日志
###根据实际情况选择添加附加日志级别
alter database add supplemental log data(all) columns; 库级别
c)使用创建用户连接进行数据参数配置
sqlplus zcbus_user/zcbus_passwd
注:12C的CDB模式zcbus_user要以c##开头【CDB用户】
d)创建xout服务【创建服务的时候,需要所有的PDB处于OPEN状态才可以(可以视情况临时开启所有关闭的PDB)】
declare
tables dbms_utility.uncl_array;
schemas dbms_utility.uncl_array;
begin
tables(1) :='zcbus_user.tab1';
schemas(1) := null;
dbms_xstream_adm.create_outbound(
server_name => 'xout',
table_names => tables,
schema_names => schemas);
end;
/
调整优化参数
declare
cursor c_cap is select capture_name from dba_capture;
begin
for c in c_cap loop
dbms_capture_adm.set_parameter(capture_name=>c.capture_name,
parameter=>'inline_lob_optimization',value=>'Y');
dbms_capture_adm.alter_capture(capture_name=>c.capture_name,
checkpoint_retention_time=>1/24);
end loop;
end;
/
- 至少添加一个表,用户名,表名可以不存在【保证服务正常】
ZCBUS准备
- 添加发布节点
- 资源管理-发布节点
添加发布节点,选择运行容器位置
配置发布数据库配置信息【ORACLE】即可
序号 | 变量名 | 默认值 | 是否隐藏函数 | 描述 |
---|---|---|---|---|
1 | db_type | oracle | 不隐藏 | 源数据库类型 |
2 | logmnr_mode | 0 | 不隐藏 | 支持XSTREAM/LOGMNR两种模式,设为1时,用logmnr模式分析日志,默认为0,XSTREAMS【11.2.0.4以上版本】 |
3 | logmnr_scn_range | 20000 | 不隐藏 | logmnr分析模式时,一轮日志分析的最大scn范围,默认为20000;XSTREAM模式可忽略 |
4 | logmnr_scn_back | 10 | 不隐藏 | logmnr分析模式时,在线日志回退scn分析数,默认为10;XSTREAM模式可忽略 |
5 | server_name | xout | 不隐藏 | Oracle捕获服务名,XSTREAM模式中,数据库获取增量数据的服务名,在LOGMNR中可忽略 |
6 | db_name | oracle12c | 不隐藏 | 捕获数据库登录服务名 |
7 | host | 172.17.58.145 | 不隐藏 | 数据库IP地址 |
8 | port | 1521 | 不隐藏 | 数据库端口号 |
9 | user | zcbus | 不隐藏 | 捕获数据库用户名 |
10 | password | zcbus | 不隐藏 | 捕获数据库密码 |
11 | source_db_type | oracle | 不隐藏 | 源数据库的类型,用于全量发布 |
12 | source_db_name | oracle12c | 不隐藏 | 源端数据库名 |
13 | source_host | 172.17.58.145 | 不隐藏 | 源端主机IP地址 |
14 | source_port | 1521 | 不隐藏 | 源端数据库端口 |
15 | source_user | zcbus | 不隐藏 | 源端用户名 |
16 | source_password | zcbus | 不隐藏 | 源端密码 |
17 | read_log_from_remote | 1 | 不隐藏 | 1为远程读日志 |
18 | real_export_buffer | 0 | 不隐藏 | 定时导出每个线程使用的最大内存,单位(M),最小50M |
19 | real_export_by_where | 0 | 不隐藏 | 设置为1时,实时发布时采用定时导出的模式 |
20 | real_export_threads | 1 | 不隐藏 | 定时导出使用的线程数,默认为4 |
21 | real_send_queues | 0 | 不隐藏 | 实时发送队列 |
22 | single_message_max_len | 209715200 | 不隐藏 | 单条消息的最大长度,单条消息超过此长度时,会被拆分成多条消息,单位(BYTE),默认为10485760(10M),最小为5242880(5M),如果设置值比message_max_len小,则调整为和message_max_len一致,-1为无限制 |
26 | parallel_query_count | 4 | 不隐藏 | 数据库查询并行度 |
27 | file_multiblock_read_count | 256 | 不隐藏 | Oracle一次读取的块的数量 |
28 | full_sync_threads | 4 | 不隐藏 | 全量并发线程数 |
29 | max_packet_len | 5242880 | 不隐藏 | 发送到kafka的最大包长度(BYTE) |
30 | full_publish_interval | 0 | 不隐藏 | 全量发送每个包的间隔(毫秒),0为不限制,测试版本每秒钟发送1个包,正式版100毫秒发送一个包,可以设置为不限制 |
31 | log_extract_interval | 2000 | 不隐藏 | 增量每轮分析日志的时间间隔(毫秒),注册版默认为2000(2秒),可修改,最小为50,试用版固定每轮日志分析时间间隔为10秒 |
32 | message_max_len | 0 | 不隐藏 | 发送到kafka的最大消息长度(BYTE),默认为5242880(5M),最小10240(10K) |
33 | full_sync_buffer | 100 | 不隐藏 | 全量导出的Buffer |
35 | land_to_file | 0 | 不隐藏 | 是否落地缓存,1:是 0:否 |
36 | land_file_reserve_cont | 0 | 不隐藏 | 文件发送到kafka之后,保留暂时不删除的文件个数,默认为0,发送成功之后马上删除文件 |
37 | auto_add_table_real_rule | 1 | 不隐藏 | 设置为1是,实时进程启动或者设置实时刷新标志为1时,bus_push_sync_tb表里自动添加实时streams规则,默认为1 |
38 | to_single_byte | 1 | 不隐藏 | 设置为1时,全量发布select查询时,varchar2类型字段加to_single_byte转换,默认为0,在某些特殊情况下,全量导出报错。 ORA-29275: partial multibyte character |
39 | message_encrypt | 0 | 不隐藏 | 发送到kafka的消息是否加密,默认为0不加密,1为加密 |
40 | parallelism | 0 | 不隐藏 | CAPTURE进程的并发数,设置大于等于1的时候生效 |
41 | write_alert_log | 0 | 不隐藏 | CAPTURE进程是否写alert日志,0为不写日志,1为写日志 |
42 | nls_lang | 0 | 不隐藏 | Oracle客户端连接时的环境变量,默认为AMERICAN_AMERICA.AL32UTF8 |
文档更新时间: 2021-07-23 05:07 作者:阿力