fixed md preview
This commit is contained in:
parent
2a05fbc3be
commit
6f023f175d
|
@ -1,19 +1,28 @@
|
|||
# 基本架构
|
||||
- **obproxy**: ob 代理服务,sql 和 binlog 都将通过 obproxy 作为统一入口来访问 ob,其中的 binlog 包含了 binlog 相关的命令(如:show binlog events;)、binlog replication(即binlog复制协议)
|
||||
|
||||
- **obproxy**: ob 代理服务,sql 和 binlog 都将通过 obproxy 作为统一入口来访问 ob,其中的 binlog 包含了 binlog 相关的命令(如:show
|
||||
binlog events;)、binlog replication(即binlog复制协议)
|
||||
- **oblogproxy**: ob 日志代理服务,提供了 mysql binlog 的兼容能力(包含了 binlog 相关命令和 binlog replication)
|
||||
- **bc**: oblogproxy 中 binlog converter 子进程,通过 libobcdc 拉取和解析 clog,转换为 binlog 文件
|
||||
- **bd**: oblogproxy 中 binlog dumper 子进程,对下游(canal or flinkcdc or ...) binlog dump 请求提供 binlog events 订阅服务
|
||||
- **bcm**: oblogproxy 中 bc 进程的管理模块
|
||||
- **bdm**: oblogproxy 中 bd 进程的管理模块
|
||||
|
||||
binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时,则提供兼容原生 mysql binlog 的服务,包含相关sql、binlog文件生成及binlog dump服务
|
||||
binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时,则提供兼容原生 mysql binlog
|
||||
的服务,包含相关sql、binlog文件生成及binlog dump服务
|
||||
|
||||
![binlog.png](./binlog.png)
|
||||
|
||||
## bc
|
||||
|
||||
![bc.png](./bc.png)
|
||||
|
||||
## bd
|
||||
|
||||
![bd.png](./bd.png)
|
||||
|
||||
# 版本要求
|
||||
|
||||
> **observer版本:>= 4.2.1**
|
||||
> **obproxy版本: >= 4.2.1**
|
||||
|
||||
|
@ -28,11 +37,15 @@ binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时
|
|||
- **ob针对enum、set所实现的拓展语义不支持,比如set定义数支持超过64个、支持重复、enum支持插入未定义数据(比如'')等**
|
||||
- **varchar(65536)定义不支持**
|
||||
- **不支持gis类型**
|
||||
|
||||
# 功能说明
|
||||
|
||||
## 支持范围
|
||||
|
||||
### mysql binlog 相关命令
|
||||
| ** 命令 ** | 是否支持 |
|
||||
| --- | --- |
|
||||
|
||||
| **命令** | 是否支持 |
|
||||
|---------------------------------------------------------------------------------------|----------------------------------|
|
||||
| [show master status](https://dev.mysql.com/doc/refman/5.7/en/show-master-status.html) | 支持 |
|
||||
| [show binary logs](https://dev.mysql.com/doc/refman/5.7/en/show-binary-logs.html) | 支持 |
|
||||
| [show binlog events](https://dev.mysql.com/doc/refman/5.7/en/show-binlog-events.html) | 支持 |
|
||||
|
@ -41,15 +54,17 @@ binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时
|
|||
| show binlog server | 支持 |
|
||||
|
||||
### mysql binlog replication 协议
|
||||
|
||||
| 协议 | **是否支持** |
|
||||
| --- | --- |
|
||||
|------------------------------------------------------------------------------------------|----------|
|
||||
| [com_binlog _dump](https://dev.mysql.com/doc/internals/en/com-binlog-dump.html) | 支持 |
|
||||
| [com_binlog_dump_gtid](https://dev.mysql.com/doc/internals/en/com-binlog-dump-gtid.html) | 支持 |
|
||||
| com_register_slave | 支持 |
|
||||
|
||||
### mysql 相关系统变量
|
||||
| ** 系统变量 ** | **observer 实现说明** |
|
||||
| --- | --- |
|
||||
|
||||
| **系统变量** | **observer 实现说明** |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
|
||||
| [binlog_format](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_format) | row |
|
||||
| [binlog_row_image](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_row_image) | full |
|
||||
| [binlog_checksum](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_checksum) | crc32 |
|
||||
|
@ -59,19 +74,29 @@ binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时
|
|||
| [server_uuid](https://dev.mysql.com/doc/refman/5.7/en/replication-options.html#sysvar_server_uuid) | 租户创建后该值应保持不变 |
|
||||
|
||||
## 限制说明
|
||||
|
||||
### sql兼容性
|
||||
|
||||
ob的ddl语法与mysql ddl语法存在一定的差异性,即ob有自己的一些拓展语法,因此有部分ddl语法可能无法解析。
|
||||
> 为解决这种问题observer做了兼容性支持,建议obproxy设置 init_sql 开启`_show_ddl_in_compat_mode`,开启后observer `show create table`输出会完全兼容mysql的语法,建议设置为租户级别。
|
||||
> 为解决这种问题observer做了兼容性支持,建议obproxy设置 init_sql 开启`_show_ddl_in_compat_mode`
|
||||
> ,开启后observer `show create table`输出会完全兼容mysql的语法,建议设置为租户级别。
|
||||
|
||||
# 使用步骤
|
||||
|
||||
## 准备工作
|
||||
|
||||
### 版本要求
|
||||
|
||||
> **observer版本:>= 4.2.1**
|
||||
> **obproxy版本: >= 4.2.1**
|
||||
> **oblogproxy版本:>= 2.0.0**
|
||||
|
||||
### obproxy参数配置
|
||||
从基本架构可以看出,binlog 下游订阅服务实际交互时是与 obproxy 直接交互的(这点跟 mysql 需保持一致,否则就无法做到兼容 mysql binlog),不感知 oblogproxy(真正提供的 binlog service 服务的组件),下游的请求是由 obproxy 转发给 observer 或 oblogproxy,因此在 obproxy 需配置 oblogproxy 的服务地址。
|
||||
|
||||
从基本架构可以看出,binlog 下游订阅服务实际交互时是与 obproxy 直接交互的(这点跟 mysql 需保持一致,否则就无法做到兼容 mysql
|
||||
binlog),不感知 oblogproxy(真正提供的 binlog service 服务的组件),下游的请求是由 obproxy 转发给 observer 或 oblogproxy,因此在
|
||||
obproxy 需配置 oblogproxy 的服务地址。
|
||||
|
||||
```sql
|
||||
-- 1.用sys账号连接到obproxy
|
||||
mysql -h xxx.xxx.xxx.xxx -P 2883 -uroot@sys#xxx -D oceanbase -A -p'password'
|
||||
|
@ -86,18 +111,21 @@ MySQL [oceanbase]> show proxyconfig like 'binlog_service_ip';
|
|||
1 row in set (0.00 sec)
|
||||
|
||||
--3.配置binlog server 地址,地址形式为ip:port
|
||||
mysql> alter proxyconfig set binlog_service_ip='ip:port';
|
||||
mysql > alter proxyconfig set binlog_service_ip='ip:port';
|
||||
|
||||
--4.开启binlog服务的转发
|
||||
mysql> alter proxyconfig set enable_binlog_service='True';
|
||||
mysql > alter proxyconfig set enable_binlog_service='True';
|
||||
|
||||
--5.设置init_sql,可以设置通过该obproxy的session链接都在session级别设置一些系统变量
|
||||
mysql> alter proxyconfig set init_sql='set _show_ddl_in_compat_mode = 1;';
|
||||
mysql > alter proxyconfig set init_sql='set _show_ddl_in_compat_mode = 1;';
|
||||
```
|
||||
|
||||
### oblogproxy参数配置
|
||||
|
||||
#### 参数说明
|
||||
|
||||
| 字段 | 默认值 | 说明 |
|
||||
| --- | --- | --- |
|
||||
|------------------------------------|--------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
||||
| service_port | 2983 | 服务端口 |
|
||||
| encode_threadpool_size | 8 | 编码线程池初始化大小 |
|
||||
| encode_queue_size | 20000 | 编码线程队列长度 |
|
||||
|
@ -148,10 +176,12 @@ mysql> alter proxyconfig set init_sql='set _show_ddl_in_compat_mode = 1;';
|
|||
| binlog_max_file_size_bytes | 524288000 | 单个binlog文件的大小 |
|
||||
| binlog_convert_timeout_us | 10000 | 转换超时时间 |
|
||||
| binlog_checksum | true | 是否开启binlog checksum |
|
||||
| binlog_heartbeat_interval_us |