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)
|
- **oblogproxy**: ob 日志代理服务,提供了 mysql binlog 的兼容能力(包含了 binlog 相关命令和 binlog replication)
|
||||||
- **bc**: oblogproxy 中 binlog converter 子进程,通过 libobcdc 拉取和解析 clog,转换为 binlog 文件
|
- **bc**: oblogproxy 中 binlog converter 子进程,通过 libobcdc 拉取和解析 clog,转换为 binlog 文件
|
||||||
- **bd**: oblogproxy 中 binlog dumper 子进程,对下游(canal or flinkcdc or ...) binlog dump 请求提供 binlog events 订阅服务
|
- **bd**: oblogproxy 中 binlog dumper 子进程,对下游(canal or flinkcdc or ...) binlog dump 请求提供 binlog events 订阅服务
|
||||||
- **bcm**: oblogproxy 中 bc 进程的管理模块
|
- **bcm**: oblogproxy 中 bc 进程的管理模块
|
||||||
- **bdm**: oblogproxy 中 bd 进程的管理模块
|
- **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)
|
![binlog.png](./binlog.png)
|
||||||
|
|
||||||
## bc
|
## bc
|
||||||
|
|
||||||
![bc.png](./bc.png)
|
![bc.png](./bc.png)
|
||||||
|
|
||||||
## bd
|
## bd
|
||||||
|
|
||||||
![bd.png](./bd.png)
|
![bd.png](./bd.png)
|
||||||
|
|
||||||
# 版本要求
|
# 版本要求
|
||||||
|
|
||||||
> **observer版本:>= 4.2.1**
|
> **observer版本:>= 4.2.1**
|
||||||
> **obproxy版本: >= 4.2.1**
|
> **obproxy版本: >= 4.2.1**
|
||||||
|
|
||||||
|
@ -28,11 +37,15 @@ binlog service 是 oblogproxy 提供的一种模式,当 binlog_mode = true 时
|
||||||
- **ob针对enum、set所实现的拓展语义不支持,比如set定义数支持超过64个、支持重复、enum支持插入未定义数据(比如'')等**
|
- **ob针对enum、set所实现的拓展语义不支持,比如set定义数支持超过64个、支持重复、enum支持插入未定义数据(比如'')等**
|
||||||
- **varchar(65536)定义不支持**
|
- **varchar(65536)定义不支持**
|
||||||
- **不支持gis类型**
|
- **不支持gis类型**
|
||||||
|
|
||||||
# 功能说明
|
# 功能说明
|
||||||
|
|
||||||
## 支持范围
|
## 支持范围
|
||||||
|
|
||||||
### mysql binlog 相关命令
|
### mysql binlog 相关命令
|
||||||
| ** 命令 ** | 是否支持 |
|
|
||||||
| --- | --- |
|
| **命令** | 是否支持 |
|
||||||
|
|---------------------------------------------------------------------------------------|----------------------------------|
|
||||||
| [show master status](https://dev.mysql.com/doc/refman/5.7/en/show-master-status.html) | 支持 |
|
| [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 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) | 支持 |
|
| [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 | 支持 |
|
| show binlog server | 支持 |
|
||||||
|
|
||||||
### mysql binlog replication 协议
|
### mysql binlog replication 协议
|
||||||
|
|
||||||
| 协议 | **是否支持** |
|
| 协议 | **是否支持** |
|
||||||
| --- | --- |
|
|------------------------------------------------------------------------------------------|----------|
|
||||||
| [com_binlog _dump](https://dev.mysql.com/doc/internals/en/com-binlog-dump.html) | 支持 |
|
| [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_binlog_dump_gtid](https://dev.mysql.com/doc/internals/en/com-binlog-dump-gtid.html) | 支持 |
|
||||||
| com_register_slave | 支持 |
|
| com_register_slave | 支持 |
|
||||||
|
|
||||||
### mysql 相关系统变量
|
### mysql 相关系统变量
|
||||||
| ** 系统变量 ** | **observer 实现说明** |
|
|
||||||
| --- | --- |
|
| **系统变量** | **observer 实现说明** |
|
||||||
|
|------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
|
||||||
| [binlog_format](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_format) | row |
|
| [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_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 |
|
| [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) | 租户创建后该值应保持不变 |
|
| [server_uuid](https://dev.mysql.com/doc/refman/5.7/en/replication-options.html#sysvar_server_uuid) | 租户创建后该值应保持不变 |
|
||||||
|
|
||||||
## 限制说明
|
## 限制说明
|
||||||
|
|
||||||
### sql兼容性
|
### sql兼容性
|
||||||
|
|
||||||
ob的ddl语法与mysql ddl语法存在一定的差异性,即ob有自己的一些拓展语法,因此有部分ddl语法可能无法解析。
|
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**
|
> **observer版本:>= 4.2.1**
|
||||||
> **obproxy版本: >= 4.2.1**
|
> **obproxy版本: >= 4.2.1**
|
||||||
> **oblogproxy版本:>= 2.0.0**
|
> **oblogproxy版本:>= 2.0.0**
|
||||||
|
|
||||||
### obproxy参数配置
|
### 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
|
```sql
|
||||||
-- 1.用sys账号连接到obproxy
|
-- 1.用sys账号连接到obproxy
|
||||||
mysql -h xxx.xxx.xxx.xxx -P 2883 -uroot@sys#xxx -D oceanbase -A -p'password'
|
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)
|
1 row in set (0.00 sec)
|
||||||
|
|
||||||
--3.配置binlog server 地址,地址形式为ip:port
|
--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服务的转发
|
--4.开启binlog服务的转发
|
||||||
mysql> alter proxyconfig set enable_binlog_service='True';
|
mysql > alter proxyconfig set enable_binlog_service='True';
|
||||||
|
|
||||||
--5.设置init_sql,可以设置通过该obproxy的session链接都在session级别设置一些系统变量
|
--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参数配置
|
### oblogproxy参数配置
|
||||||
|
|
||||||
#### 参数说明
|
#### 参数说明
|
||||||
|
|
||||||
| 字段 | 默认值 | 说明 |
|
| 字段 | 默认值 | 说明 |
|
||||||
| --- | --- | --- |
|
|------------------------------------|--------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
||||||
| service_port | 2983 | 服务端口 |
|
| service_port | 2983 | 服务端口 |
|
||||||
| encode_threadpool_size | 8 | 编码线程池初始化大小 |
|
| encode_threadpool_size | 8 | 编码线程池初始化大小 |
|
||||||
| encode_queue_size | 20000 | 编码线程队列长度 |
|
| 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_max_file_size_bytes | 524288000 | 单个binlog文件的大小 |
|
||||||
| binlog_convert_timeout_us | 10000 | 转换超时时间 |
|
| binlog_convert_timeout_us | 10000 | 转换超时时间 |
|
||||||
| binlog_checksum | true | 是否开启binlog checksum |
|
| binlog_checksum | true | 是否开启binlog checksum |
|
||||||
| binlog_heartbeat_interval_us |