Synball
TurboDX系列产品复制同步增量CDC功能源端数据库所需配置Oracle数据库CDC日志增量捕获功能,需要对源数据库做以下配置:(一)Oracle非容器数据库(Oracle 10g、Oracle 11g、Oracle 12c-21c[非容器化部署])1. 数据库系统管理员需要配置至少三个redo log日志文件,每个数据文件至少500M,以便日志文件能够保留更长时间不被循环覆盖。 正式生产部署环境下,建议开启归档模式提高可靠性,并至少保留10天以上归档数据文件。2. 数据库系统管理员登录 启用最小补充日志,SQL命令: alter database add supplemental log data;(Oracle CDC逻辑复制的每张表需要开启该表主键补全日志或者库级主键补全日志) (1) 启用库级主键补充日志,SQL命令: alter database add supplemental log data (Primary key) columns; (启用库级主键补充日志,对所有表生效) ,或者 (2)只针对需要同步的表,开启该表的主键补充日志,SQL命令:altertable tableb_name add supplemental log data(primary key) columns;循环执行多次: alter system switch logfile; 确保select * from v$log 里的所有日志文件都刷新过一遍,每次执行这个SQL后,等待10秒。3. 建oracle用户,并赋予数据库用户读取数据库日志权限,赋权SQL命令如下: GRANT SELECT_CATALOG_ROLE TO [用户名]; GRANT EXECUTE_CATALOG_ROLE TO [用户名];GRANT CREATE SESSION TO [用户名]; GRANT SELECT ANY TRANSACTION TO [用户名];GRANT CONNECT TO [用户名];GRANT LOGMINING TO [用户名];--此条权限仅对于 Oracle 12c/18c/19c 需要授权完,可以用第三方工具或运行sql进行权限检查:select * from dba_sys_privs where GRANTEE=[用户名]如用户权限不是default role,可执行:ALTER USER [用户名] DEFAULT ROLE ALL; 4.如有对表空间的需求,如USERS,也授权下。ALTER USER [用户名] QUOTA UNLIMITED ON "USERS";5. 赋予数据库用户需要交换的数据库表的读权限,SQL命令 grant select on [schema名].[表名] to [用户名];6.如需使用元数据目录和元数据分析模块,需授予连接用户analyze?any权限:grant?analyze?any?to?[用户名];?7. 在正式部署环境下需要开启归档模式,步骤如下:以数据库系统管理员sys as sysdba登录SQL> shutdown immediate; 关闭数据库SQL> startup mount; 启动数据库到mount状态SQL> alter database archivelog; 启动归档模式SQL> alter database open;启动数据库SQL>alter system switch logfile;切换日志文件SQL> archive log list;检查归档日志是否开启(二)Oracle容器数据库(Oracle 12c-21c[容器化部署])1. 数据库系统管理员需要配置至少三个redo log日志文件,每个数据文件至少500M,以便日志文件能够保留更长时间不被循环覆盖。 正式生产部署环境下,建议开启归档模式提高可靠性,并至少保留10天以上归档数据文件。2. 数据库系统管理员登录 启用最小补充日志,SQL命令: alter database add supplemental log data;(Oracle CDC逻辑复制的每张表需要开启该表主键补全日志或者库级主键补全日志) (1) 启用库级主键补充日志,SQL命令: alter database add supplemental log data (Primary key) columns; (启用库级主键补充日志,对所有表生效) 或者 (2)只针对需要同步的表,开启该表的主键补充日志,SQL命令:altertable tableb_name add supplemental log data(primary key) columns;循环执行多次: alter system switch logfile; 确保select * from v$log 里的所有日志文件都刷新过一遍,每次执行这个SQL后,等待10秒。3. 建oracle用户,必须是CDB的公共用户(common user),要求这个用户不能设置有任何VPD规则,并赋予数据库用户读取数据库日志权限,赋权SQL命令如下: GRANT SELECT_CATALOG_ROLE TO [用户名] CONTAINER=ALL; GRANT EXECUTE_CATALOG_ROLE TO [用户名] CONTAINER=ALL;GRANT CREATE SESSION TO [用户名] CONTAINER=ALL; GRANT SELECT ANY TRANSACTION TO [用户名] CONTAINER=ALL;GRANT CONNECT TO [用户名] CONTAINER=ALL;GRANT LOGMINING TO [用户名] CONTAINER=ALL; GRANT ALTER SESSION TO[用户名] CONTAINER=ALL;GRANT SET CONTAINER TO [用户名] CONTAINER=ALL;授权完,可以用第三方工具或运行sql进行权限检查:select * from dba_sys_privs where GRANTEE=[用户名]如用户权限不是default role,可执行:ALTER USER [用户名] DEFAULT ROLE ALL; 4.如有对表空间的需求,如USERS,也授权下。ALTER USER [用户名] QUOTA UNLIMITED ON "USERS";5. 赋予数据库用户需要交换的数据库表的读权限,SQL命令 grant select on [schema名].[表名] to [用户名];6.如需使用元数据目录和元数据分析模块,需授予连接用户analyze?any权限:grant?analyze?any?to?[用户名];?7. 在正式部署环境下需要开启归档模式,步骤如下:以数据库系统管理员sys as sysdba登录SQL> shutdown immediate; 关闭数据库SQL> startup mount; 启动数据库到mount状态SQL> alter database archivelog; 启动归档模式SQL> alter database open;启动数据库SQL>alter system switch logfile;切换日志文件SQL> archive log list;检查归档日志是否开启MySQL数据库CDC日志增量捕获功能,需要对源数据库做以下配置 : (MySql 5.x 以上版本)1. 增量捕获功能需要修改 MySQL配置文件 linux为f或windows为my.ini,添加内容如下,然后重启数据库[mysqld]log-bin = mysql-bin #添加这一行binlog-format = ROW #选择row模式server_id = 1 #配置mysql replication需要定义#GTID支持(5.6及以上版本添加如下三个参数) (单机无需开启gtid)gtid_mode=onenforce_gtid_consistency=1log_slave_updates=12. 赋予数据库用户binlog权限,SQL语句如下:grant REPLICATION SLAVE ON *.* TO '用户名' ;grant REPLICATION CLIENT ON *.* TO '用户名' ;MariaDB数据库日志增量捕获功能,需要对源数据库做以下配置:(MariaDB 5.x 以上版本)1. 增量捕获功能需要修改 MariaDB配置文件 例如: 在配置文件 /etc/f.d/f 添加内容如下,然后重启数据库[mysqld] log-bin = mysql-bin #添加这一行 binlog-format = ROW #选择row模式 server_id = 1 #配置mysql replaction需要定义 binlog_annotate_row_events = true #开启记录annotate事件2. 赋予数据库用户binlog权限,SQL语句如下:grant REPLICATION SLAVE ON *.* TO '用户名' ;grant REPLICATION CLIENT ON *.* TO '用户名' ;SQLServer数据库CDC增量捕获功能,需要对源数据库做以下配置: (SqlServer 2008(含)以后的企业版)1. 启动 “SQL Server 代理” 服务2. 数据库系统管理员登录,启动对应的库的增量捕获功能,SQL命令:EXEC [库名].SYS.SP_CDC_ENABLE_DB3. 赋予数据库用户对应库的owner的权限use [库名]EXEC sp_grantdbaccess '用户名'EXEC sp_addrolemember 'db_owner', '用户名'设置保留触发增量数据的时间,超过时间的数据被将自动清除,SQL命令:显示原有配置时间(单位分钟) EXEC sp_cdc_help_jobs更改数据保留时间(单位分钟),例如要保留3天,就是 4320分钟,把下面第二条语句里的@retention=4320 EXEC sys.sp_cdc_add_job @job_type = N'cleanup' EXEC sys.sp_cdc_change_job @job_type = N'cleanup', @retention=4320 重启一下作业,以使设置生效 先停用作业 EXEC sys.sp_cdc_stop_job N'cleanup' 再启用作业 EXEC sys.sp_cdc_start_job N'cleanup' 如果sql重启作业不成功,可以到SQL Server Management Studio去右键对应的作业禁用再启用就可以了4. 重启库CDC,命令如下:EXEC [库名].SYS.SP_CDC_DISABLE_DBEXEC [库名].SYS.SP_CDC_ENABLE_DBPostgreSQL (Kingbase、openGauss、Gbase8c)数据库CDC日志增量捕获功能,需要对源数据库做以下配置:(PostgreSQL 9.4以上版本)1. 增量捕获功能需要修改 PostgreSQL配置文件 例如: 1) 在配置文件data/postgresql.conf 修改listen_addresses = '*' #这个设置了允许监听地址,如果要指定IP, 必须包含TurboDX所在机器的IP。max_connections = 100 #这个设置了数据库最大连接数,每个任务至少使用两个以上的连接,所以配置尽可能大一点。wal_level = logical #CDC只支持logical模式max_wal_senders = 10 # 这个设置了可以最多有几个流复制连接,差不多有几个任务,就设置几个,至少大于等于1.wal_keep_segments = 512 #设置流复制保留的最多的xlog数目wal_sender_timeout = 0 #设置流复制主机发送数据的超时时间,0表示禁用。max_replication_slots = 10 #这个设置了可以最多有几个流复制槽,跟max_wal_senders一样,差不多有几个任务,就设置几个,至少大于等于1.其他参数详见: HYPERLINK " 2) 在配置文件data/pg_hba.conf 修改 注意下面的配置必须指定或包含TurboDX所在机器的IP,示例如下:# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:host all all 192.168.1.8/24 trust# replication privilege.host replication all 192.168.1.8/24 trust详见: HYPERLINK ". CDC连接用户必须有LOGIN和REPLICATION权限更改用户权限语句示例如:ALTER USER '用户名' LOGIN REPLICATION;3. 补全日志,如果想获得完整的数据或防止无主键时无法识别删除事件,需要补全日志。语句示例:ALTER TABLE '表名' REPLICA IDENTITY FULL;Informix(GBase8s、xigemaDB)数据库CDC日志增量捕获功能,需要对源数据库做以下配置:(Informix 11以上版本)1. 创建Informix CDC库 在informix dbaccess工具中以用户 informix 身份从 $INFORMIXDIR/etc 目录运行脚本syscdcv1.sql2. 抓取的数据库需要开启日志模式创建时指定数据库日志模式: CREATE DATABASE database-name [WITH {[BUFFERED] LOG | LOG MODE ANSI}] 其中WITH LOG建立非缓冲日志模式数据库,WITH BUFFERED LOG为建立缓冲日志模式数据库。3. CDC连接用户对syscdcv1 库需要DBA权限,对监控的库需要CONNECT权限database‘数据库名’;grantCONNECTTO?CDC用户;databasesyscdcv1;grantdbaTO CDC用户;Select?*?from?sysusers?可以查询用户权限 对已有数据库可通过select * from sysmaster:informix.sysdatabases查看日志模式,如果需要修改数据库日志模式,请参考informix/Gbase8s的ontape或ondblog改变日志模式的使用方法。DM达梦数据库CDC日志增量捕获功能,需要对源数据库做以下配置:(DM7、DM8版本)1. 需要开启达梦数据库为归档模式,正式生产部署环境下建议至少保留10天以上归档数据文件。2. 数据库系统管理员sysdba登录alter database mount;alter database add archivelog 'DEST=F:\dmdbms\archivelog,TYPE=local,FILE_SIZE=128,space_limit=1024';-- DEST为归档文件保存目录,space_limit为归档文件空间限制,单位MB。alter database archivelog; --将数据库设为归档模式alter database open;select arch_mode from v$database; --查询是否开启成功。SP_CREATE_SYSTEM_PACKAGES (1);--调用系统过程创建系统包。3. 开启记录物理逻辑日志功能配置环境(1)修改dm.ini中的参数,如下:ARCH_INI = 1RLOG_APPEND_LOGIC = 1CKPT_INTERVAL = 10注意:CKPT_INTERVAL参数会影响数据库日志归档刷新及性能,在生产环境请咨询数据库管理员(2)重启数据库服务4. 赋予用户读取数据库日志权限,SQL命令grant SELECT ANY TABLE to "XXX"; -- XXX为数据库连接用户名TurboDX v5.0以上版本支持IBM DB2 和SAP Hana CDC,请咨询公司了解详细配置要求对目标端数据库的用户,需要赋予对表select、insert、update、delete权限,以及创建表的权限TurboDX所支持的源和目标数据库类型列表: 支持的源数据库类型(采用传统的触发器、时间戳、标识位等增量读取模式)支持的源数据库类型(全量及日志解析CDC增量读取模式)支持的目标数据库类型1OracleOracleOracle2OracleRACOracleRAC、Oracle ADG备库OracleRAC3MySQLMySQLMySQL4SQL ServerSQL ServerSQL Server5PostgreSQLPostgreSQLPostgreSQLInformixInformixInformixDB2 for LUWDB2 for LUWDB2 for LUW6达梦DM达梦DM达梦DM7KingbaseKingbaseKingbase8GBase8sGBase8sGBase8sGBase8cGBase8cGBase8c9GaussDBGaussDBGaussDB10GaussDWS (Gauss200)TiDBTiDB11GBase8aOceanbaseOceanbase12数据文件(txt, csv, excel, json, xml)(解析入库)TDSQLTDSQLMongoDBMongoDBMongoDB14HiveRedisGaussDWS (Gauss200)15GreenplumGoldenDBGBase8a16DorisUXDBArgoDB17StarrocksHighGoGreenplum18ClickhouseKafkaDoris19SAP Hana Starrocks20HighGo Clickhouse21UXDB Hive22 HBase23 Elasticsearch24 Redis25SequioaDB26GoldenDBHashDataKafka注:传统增量读取是指采用触发器、标识位、时间戳等传统方式获取增量数据;CDC增量读取是指采用分析数据库日志(如Oracle redo日志、MySQL binlog日志等)的方式获取增量数据。 Kafka ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.