一、前提条件
·已创建 MySQL 数据库且开启 ROW 模式的 Binlog 功能。
·创建一个具有 REPLICATION SLAVE、REPLICATION CLIENT 和 SELECT 权限的 MySQL 账号。
二、步骤1:选择日志主题
创建新的日志主题使用现有的日志主题1. 登录 日志服务控制台。2. 在左侧导航栏中,单击概览,进入概览页面。3. 在快速接入中,选择数据导入,单击 MySQL Binlog 数据订阅,进入订阅任务配置流程。4. 在创建日志主题页面,根据你的实际需求,输入日志主题名称,配置日志保存时间等信息,然后点击下一步 。1. 登录 日志服务控制台。2. 在左侧导航栏中,单击日志主题,选择需要投递的日志主题,单击日志主题名称,进入日志主题详情页面。3. 选择采集配置页签,在 MySQL Binlog 订阅配置栏下单击新增,进入订阅任务配置流程。
三、步骤2:配置 MySQL
在配置 MySQL 步骤中,配置如下参数:
| 参数 | 是否必填 | 说明 |
| MySQL 类型 | 是 | 目标订阅的 MySQL 类型,当前支持:腾讯云数据库 MySQL腾讯云 TDSQL-C MySQL自建 MySQL |
| MySQL 实例 | 是 | 若 MySQL 类型为腾讯云数据库 MySQL 或腾讯云 TDSQL-C MySQL,可通过下拉选项选择需要订阅的目标云上 MySQL 实例。注意:当前仅支持选择与日志主题相同地域的云上 MySQL 实例,若需订阅不同地域 MySQL 实例的 Binlog,MySQL 类型请选择自建 MySQL,并通过公网订阅 Binlog。 |
| 访问方式 | 是 | 若 MySQL 类型为自建 MySQL,支持选择通过内网地址或公网地址访问你的 MySQL。 |
| 所属网络 | 是 | 若 MySQL 类型为自建 MySQL,且访问方式为通过内网地址访问,你需指定 MySQL 实例所在的 VPC 网络。注意:仅支持与目标日志主题所在地域相同的 VPC 网络。 |
| 网络服务类型 | 是 | 若 MySQL 类型为自建 MySQL,且访问方式为通过内网地址访问,需指定目标 MySQL 的网络服务类型:若你的 MySQL 需通过 CLB 访问,请选择 CLB。若你的 MySQL 所在服务器可直接访问,请选择 CVM。 |
| 内网/公网访问地址 | 是 | 若 MySQL 类型为自建 MySQL,基于你选择访问方式,填写 MySQL 的内网访问地址或公网访问地址。 |
| MySQL 端口 | 是 | 若 MySQL 类型为自建 MySQL,填写 MySQL 的端口。 |
| 用户名 | 是 | 填写访问 MySQL 的用户名。注意:账号需开启以下权限:REPLICATION SLAVE、REPLICATION CLIENT 和 SELECT。 |
| 密码 | 是 | 填写访问 MySQL 的密码。 |
四、步骤3:配置订阅规则
在配置订阅规则步骤中,配置如下参数:
| 参数 | 是否必填 | 说明 |
| 订阅规则名称 | 是 | 指定当前订阅规则的名称。 |
| 起始位置 | 是 | 指定 Binlog 订阅的起始位置。支持通过以下3种方式定义起始位置:最新位置:从最新位置开始采集 Binlog。指定位置:从指定的位置开始采集 Binlog。指定 GTID:从指定的 GTID(事务 ID)位置开始采集 Binlog。 |
| Binlog 文件名 | 是 | 若起始位置选择为指定位置,需指定 Binlog 的文件名,例如:mysql-bin.000005。 |
| 开始的 Binlog 位置 | 是 | 若起始位置选择为指定位置,需指定在 Binlog 文件中开始采集的位置。例如:需要采集 mysql-bin.000005中的第 N 条日志的起始下标,则指定位置为第 N-1条日志的 position+size(position 是 Binlog 日志在 Binlog 文件中的起始下标,size 是该条 Binlog 日志大小)。若需要从文件的开头进行采集,指定位置为0。注意:请确保填写位置正好为一条 Binlog 日志的起始下标,否则可能导致订阅失败。 |
| 开始的 GTID | 是 | 若起始位置选择为指定 GTID,需指定起始的 GTID(事务 ID)。 |
| 事件类型 | 是 | 需要采集的 Binlog 事件类型,支持以下4种事件类型:DDL:数据定义语言Insert:插入Update:更新Delete:删除 |
| 事件元数据 | 否 | 支持勾选以下6种 Binlog 相关元数据与日志一起上传:log_name:Binlog 文件名position:Binlog 日志在 Binlog 文件中的起始下标size:Binlog 日志大小server_id:Slave IDgtid:事务 IDtask_id:当前订阅任务的 ID注意:DDL 事件的 Binlog 不支持 size 元数据。 |
| 时间戳来源 | 是 | 支持选择以下2种时间作为所采集 Binlog 日志的时间戳:采集时间:Binlog 日志被采集的时间。事件时间:Binlog 日志对应的事件发生时间。 |
| 数据库表白名单 | 否 | 开启后可采集指定数据库以及数据库表,关闭则代表采集所有的数据库以及数据库表。支持配置多个白名单,每个白名单需配置以下信息:数据库名称:需要采集的 Binlog 所关联的数据库名称。数据库表:需要采集的 Binlog 所关联的数据库表名,支持填写多个。注意:DDL 事件的 Binlog 日志采集不受白名单限制。 |
| 数据库黑名单 | 否 | 开启后可忽略不采集指定数据库以及数据库表。支持配置多个黑名单,每个黑名单需配置以下信息:数据库名称:需要忽略不采集的 Binlog 所关联的数据库名称。数据库表:需要忽略不采集的 Binlog 所关联的数据库表名,支持填写多个。注意:DDL 事件的 Binlog 日志采集不受名单限制。 |
| 平铺时间数据 | 否 | 若开启,会将不同的事件拆分为多条日志,并在每条日志中对被操作的字段进行平铺。例如:在数据库操作中执行了两次操作,一次更新 a 和 b 字段,一次更新 d 和 e 字段,则会生成两条日志,分别的值为 a:xxx, old_a:xxx, b:xxx, old_b:xxx 和 d:xxx, old_d:xxx, e:xxx, old_e:xxx。若关闭,会将事件数据以数组+JSON格式集中打包到 old_data 和 data 两个字段中。例如: 在数据库操作中执行了两次操作,一次更新 a 和 b 字段,一次更新 d 和 e 字段,日志值为 old_data:[{a:xxx,b:xxx}, {d:xxx,e:xxx}], data:[{a:xxx,b:xxx}, {d:xxx,e:xxx}]。 |
| 预览 Binlog | 否 | 单击后将从数据库中获取第一条符合订阅类型的 Binlog 日志,展示相应的内容。 |
五、步骤4:索引配置
1. 单击下一步,进入“索引配置”页面。
2. 在“索引配置”页面,设置如下信息。配置详情请参考 索引配置。
注意:检索必须开启索引配置,否则无法检索。
六、步骤5:检索分析
至此,你已完成 MySQL Binlog 订阅的配置,下一步即可开始使用日志的检索与分析,详情请参见 检索分析。
七、固定字段
| 字段 | 描述 |
| db | 数据库名称 |
| table | 表名称 |
| query | query |
| type | 事件类型 |
| after | 当 type 为 insert、update、delete 时,通过 json 包裹所有受到影响的字段以及结果值 |
| before | 当 type 为 update 时,通过 json 包裹所有受影响的字段以及影响产生前的值 |
| errorCode | 当 type 为 DDL 时,展示执行 errorcode |
| executionTime | 当 type 为 DDL 时,展示执行耗时 |
八、元数据字段
注意:说明:
注意:需在 Binlog 订阅规则中指定后才会上传。
| 字段 | 描述 |
| log_name | Binlog 文件名 |
| position | Binlog 日志在 Binlog 文件中的起始下标 |
| size | Binlog 日志大小 |
| server_id | Slave ID |
| gtid | 事务 ID |
| task_id | 订阅规则任务 ID |
九、管理订阅任务
完成 MySQL Binlog 订阅任务配置后,你可在日志主题详情页的采集配置中查看并管理所有已创建的 MySQL Binlog 订阅任务。