diff --git a/br/br-monitoring-and-alert.md b/br/br-monitoring-and-alert.md index 3e41b783c523..8d0d0b246766 100644 --- a/br/br-monitoring-and-alert.md +++ b/br/br-monitoring-and-alert.md @@ -27,28 +27,28 @@ summary: 了解备份恢复的监控告警。 | 指标 | 类型 | 说明 | |-------------------------------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------| -| **tikv_log_backup_interal_actor_acting_duration_sec** | Histogram | 处理内部各种消息事件的耗时。
`message :: TaskType` | -| **tikv_log_backup_initial_scan_reason** | Counter | 触发增量扫的原因统计。主要是 Leader 迁移或者 Region Version 变更。
`reason :: {"leader-changed", "region-changed", "retry"}` | -| **tikv_log_backup_event_handle_duration_sec** | Histogram | 处理 KV Event 的耗时。和 `tikv_log_backup_on_event_duration_seconds` 相比,这个指标还包含了一些内部转化消耗的时间。
`stage :: {"to_stream_event", "save_to_temp_file"}` | +| **tikv_log_backup_interal_actor_acting_duration_sec** | Histogram | 处理内部各种消息事件的耗时。`message :: TaskType`。 | +| **tikv_log_backup_initial_scan_reason** | Counter | 触发增量扫的原因统计。主要是 Leader 迁移或者 Region Version 变更。`reason :: {"leader-changed", "region-changed", "retry"}`。 | +| **tikv_log_backup_event_handle_duration_sec** | Histogram | 处理 KV Event 的耗时。和 `tikv_log_backup_on_event_duration_seconds` 相比,这个指标还包含了一些内部转化消耗的时间。`stage :: {"to_stream_event", "save_to_temp_file"}` | | **tikv_log_backup_handle_kv_batch** | Histogram | 由 RaftStore 发送的 KV 对的 Batch 大小统计,统计数据为 Region 级别。 | | **tikv_log_backup_initial_scan_disk_read** | Counter | 增量扫期间,从硬盘读取的数据量的大小。在 Linux 系统下,这个信息来自于 procfs,是实际从 block device 读取的数据量的大小;配置项 `initial-scan-rate-limit` 也是施加于这个数值上。 | | **tikv_log_backup_incremental_scan_bytes** | Histogram | 增量扫期间,实际产生的 KV 对的大小。因为压缩和读放大的缘故,这个数值和 `tikv_log_backup_initial_scan_disk_read` 不一定相同。 | | **tikv_log_backup_skip_kv_count** | Counter | 日志备份期间,因为对备份没有帮助而被跳过的 Raft Event 数量。 | -| **tikv_log_backup_errors** | Counter | 日志备份期间,遇到的可以重试或可以忽略的错误。
`type :: ErrorType` | -| **tikv_log_backup_fatal_errors** | Counter | 日志备份期间,遇到的不可重试或不可忽略的错误。当该类错误出现的时候,日志备份任务会被暂停。
`type :: ErrorType` | +| **tikv_log_backup_errors** | Counter | 日志备份期间,遇到的可以重试或可以忽略的错误。`type :: ErrorType`。 | +| **tikv_log_backup_fatal_errors** | Counter | 日志备份期间,遇到的不可重试或不可忽略的错误。当该类错误出现的时候,日志备份任务会被暂停。 `type :: ErrorType` | | **tikv_log_backup_heap_memory** | Gauge | 日志备份期间,增量扫发现的、尚未被消费的事件占用的内存。 | -| **tikv_log_backup_on_event_duration_seconds** | Histogram | 将 KV Event 保存到临时文件各个阶段的耗时。
`stage :: {"write_to_tempfile", "syscall_write"}` | -| **tikv_log_backup_store_checkpoint_ts** | Gauge | Store 级别的 Checkpoint TS,已经弃用。其含义更加接近于 Store 当前注册的 GC Safepoint。
`task :: string` | -| **tidb_log_backup_last_checkpoint** | Gauge | 全局 Checkpoint TS,表示日志备份功能中已经备份的时间点。
`task :: string` | -| **tikv_log_backup_flush_duration_sec** | Histogram | 将本地临时文件移动到外部存储的耗时。
`stage :: {"generate_metadata", "save_files", "clear_temp_files"}` | +| **tikv_log_backup_on_event_duration_seconds** | Histogram | 将 KV Event 保存到临时文件各个阶段的耗时。 `stage :: {"write_to_tempfile", "syscall_write"}`。 | +| **tikv_log_backup_store_checkpoint_ts** | Gauge | Store 级别的 Checkpoint TS,已经弃用。其含义更加接近于 Store 当前注册的 GC Safepoint。`task :: string`。 | +| **tidb_log_backup_last_checkpoint** | Gauge | 全局 Checkpoint TS,表示日志备份功能中已经备份的时间点。 `task :: string`。 | +| **tikv_log_backup_flush_duration_sec** | Histogram | 将本地临时文件移动到外部存储的耗时。`stage :: {"generate_metadata", "save_files", "clear_temp_files"}`。 | | **tikv_log_backup_flush_file_size** | Histogram | 备份产生的文件的大小统计。 | | **tikv_log_backup_initial_scan_duration_sec** | Histogram | 增量扫的整体耗时统计。 | -| **tikv_log_backup_skip_retry_observe** | Counter | 在日志备份过程中,遇到的可忽略错误的统计,即放弃 retry 的原因。
`reason :: {"region-absent", "not-leader", "stale-command"}` | -| **tikv_log_backup_initial_scan_operations** | Counter | 增量扫过程中,RocksDB 相关的操作统计。
`cf :: {"default", "write", "lock"}, op :: RocksDBOP` | +| **tikv_log_backup_skip_retry_observe** | Counter | 在日志备份过程中,遇到的可忽略错误的统计,即放弃 retry 的原因。`reason :: {"region-absent", "not-leader", "stale-command"}`。 | +| **tikv_log_backup_initial_scan_operations** | Counter | 增量扫过程中,RocksDB 相关的操作统计。`cf :: {"default", "write", "lock"}, op :: RocksDBOP`。 | | **tikv_log_backup_enabled** | Counter | 日志备份功能是否开启,若值大于 0,表示开启 | | **tikv_log_backup_observed_region** | Gauge | 被监听的 Region 数量 | -| **tikv_log_backup_task_status** | Gauge | 日志备份任务状态,0-Running 1-Paused 2-Error
`task :: string` | -| **tikv_log_backup_pending_initial_scan** | Gauge | 尚未执行的增量扫的统计。
`stage :: {"queuing", "executing"}` | +| **tikv_log_backup_task_status** | Gauge | 日志备份任务状态,0-Running 1-Paused 2-Error。`task :: string`。 | +| **tikv_log_backup_pending_initial_scan** | Gauge | 尚未执行的增量扫的统计。`stage :: {"queuing", "executing"}`。 | ### 日志备份告警 diff --git a/clinic/clinic-collect-sql-query-plan.md b/clinic/clinic-collect-sql-query-plan.md index cc095633c149..8217ada75d92 100644 --- a/clinic/clinic-collect-sql-query-plan.md +++ b/clinic/clinic-collect-sql-query-plan.md @@ -77,15 +77,25 @@ SELECT * FROM test.t1;SELECT * FROM test.t2; 全量数据采集的输出结果包含以下集群现场信息: -| 序号 | 采集内容 | 调用的 Diag collector | 输出文件 | -| :--- | :--- | :--- | :--- | -| 1 | TiDB 配置信息 | `config` | `tidb.toml` | -| 2 | TiDB Session 系统变量 | `plan_replayer` | `plan_replayer.zip/variables.toml` | -| 3 | TiDB 执行计划绑定信息 (SQL Binding) | `sql_bind` | `sql_bind/global_bind.csv` | -| 4 | `sql-statement` 中所包含的表结构 | `plan_replayer` | `plan_replayer.zip/schema/.schema.txt` | -| 5 | `sql-statement` 中所包含表的统计信息 | `plan_replayer` | `plan_replayer.zip/stats/.json` | -| 6 | `EXPLAIN sql-statement` 的结果 | `explain` | `explain/sql0` | -| 7 | 默认采集的集群信息 | default | `cluster.json`,`meta.yaml`,`$collectid_diag_audit.log` | ++------+--------------------------+----------------------+-----------------------------------+ +| 序号 | 采集内容 | 调用的 Diag collector | 输出文件 | ++======+==========================+======================+===================================+ +| 1 | TiDB 配置信息 | `config` | `tidb.toml` | ++------+--------------------------+----------------------+-----------------------------------+ +| 2 | TiDB Session 系统变量 | `plan_replayer` | `plan_replayer.zip/variables.toml`| ++------+--------------------------+----------------------+-----------------------------------+ +| 3 | TiDB 执行计划绑定信息 (SQL Binding) | `sql_bind` | `sql_bind/global_bind.csv` | ++------+--------------------------+----------------------+-----------------------------------+ +| 4 | `sql-statement` 中所包含的表结构 | `plan_replayer` | `plan_replayer.zip/schema/.schema.txt` | ++------+--------------------------+----------------------+-----------------------------------+ +| 5 | `sql-statement` 中所包含表的统计信息 | `plan_replayer` | `plan_replayer.zip/stats/.json` | ++------+--------------------------+----------------------+-----------------------------------+ +| 6 | `EXPLAIN sql-statement` 的结果 | `explain` | `explain/sql0` | ++------+--------------------------+----------------------+-----------------------------------+ +| 7 | 默认采集的集群信息 | default | `cluster.json`,`meta.yaml`,`$collectid_diag_audit.log` | +| | - 集群基础信息 | | | +| | - Diag 本次采集记录 | | | ++------+--------------------------+----------------------+-----------------------------------+ ### 自定义数据采集 diff --git a/develop/dev-guide-third-party-support.md b/develop/dev-guide-third-party-support.md index 58143bdfae7e..2512bfdd3808 100644 --- a/develop/dev-guide-third-party-support.md +++ b/develop/dev-guide-third-party-support.md @@ -25,161 +25,47 @@ PingCAP 与开源社区合作,通过三方工具提供以下支持: ## Driver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
编程语言驱动最新已测试版本支持等级TiDB 适配器教程
GoGo-MySQL-Driverv1.6.0FullN/A使用 Go-MySQL-Driver 连接到 TiDB
JavaJDBC8.0Full - - 使用 JDBC 连接到 TiDB
++---------+-------------------+-----------------+------------+---------------+-------------------+ +| 编程语言 | 驱动 | 最新已测试版本 | 支持等级 | TiDB 适配器 | 教程 | ++=========+===================+=================+============+===============+===================+ +| Go | [Go-MySQL-Driver](https://github.com/go-sql-driver/mysql) | v1.6.0 | Full | N/A | [使用 Go-MySQL-Driver 连接到 TiDB](/develop/dev-guide-sample-application-golang-sql-driver.md) | ++---------+-------------------+-----------------+------------+---------------+-------------------+ +| Java | [JDBC](https://dev.mysql.com/downloads/connector/j/) | 8.0 | Full | - [pingcap/mysql-connector-j](/develop/dev-guide-choose-driver-or-orm.md#java-drivers) | [使用 JDBC 连接到 TiDB](/develop/dev-guide-sample-application-java-jdbc.md) | +| | | | | - [pingcap/tidb-loadbalance](/develop/dev-guide-choose-driver-or-orm.md#tidb-loadbalance) | | ## ORM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
编程语言ORM 框架最新已测试版本支持等级TiDB 适配器教程
Gogormv1.23.5FullN/A使用 GORM 连接到 TiDB
beegov2.0.3FullN/AN/A
upper/dbv4.5.2FullN/AN/A
xormv1.3.1FullN/AN/A
JavaHibernate6.1.0.FinalFullN/A使用 Hibernate 连接到 TiDB
MyBatisv3.5.10FullN/A使用 MyBatis 连接到 TiDB
Spring Data JPA2.7.2FullN/A使用 Spring Boot 连接到 TiDB
jOOQv3.16.7 (Open Source)FullN/AN/A
RubyActive Recordv7.0FullN/A使用 Rails 框架和 ActiveRecord ORM 连接到 TiDB
JavaScript / TypeScriptSequelizev6.20.1FullN/AN/A
Prisma4.16.2FullN/A使用 Prisma 连接到 TiDB
TypeORMv0.3.17FullN/A使用 TypeORM 连接到 TiDB
PythonDjangov4.2Fulldjango-tidb使用 Django 连接到 TiDB
SQLAlchemyv1.4.37FullN/A使用 SQLAlchemy 连接到 TiDB
++--------------+---------------+--------------+----------+------------+------------------------+ +| 编程语言 | ORM 框架 | 最新已测试版本 | 支持等级 | TiDB 适配器 | 教程 | ++==============+===============+==============+==========+============+========================+ +| Go | [gorm](https://github.com/go-gorm/gorm) | v1.23.5 | Full | N/A | [使用 GORM 连接到 TiDB](/develop/dev-guide-sample-application-golang-gorm.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [beego](https://github.com/beego/beego) | v2.0.3 | Full | N/A | N/A | +| +---------------+--------------+----------+------------+------------------------+ +| | [upper/db](https://github.com/upper/db) | v4.5.2 | Full | N/A | N/A | +| +---------------+--------------+----------+------------+------------------------+ +| | [xorm](https://gitea.com/xorm/xorm) | v1.3.1 | Full | N/A | N/A | ++--------------+---------------+--------------+----------+------------+------------------------+ +| Java | [Hibernate](https://hibernate.org/orm/) | 6.1.0.Final | Full | N/A | [使用 Hibernate 连接到 TiDB](/develop/dev-guide-sample-application-java-hibernate.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [MyBatis](https://mybatis.org/mybatis-3/) | v3.5.10 | Full | N/A | [使用 MyBatis 连接到 TiDB](/develop/dev-guide-sample-application-java-mybatis.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [Spring Data JPA](https://spring.io/projects/spring-data-jpa/) | 2.7.2 | Full | N/A | [使用 Spring Boot 连接到 TiDB](/develop/dev-guide-sample-application-java-spring-boot.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [jOOQ](https://github.com/jOOQ/jOOQ) | v3.16.7 (Open Source) | Full | N/A | N/A | ++--------------+---------------+--------------+----------+------------+------------------------+ +| Ruby | [Active Record](https://guides.rubyonrails.org/active_record_basics.html) | v7.0 | Full | N/A | [使用 Rails 框架和 ActiveRecord ORM 连接到 TiDB](/develop/dev-guide-sample-application-ruby-rails.md) | ++--------------+---------------+--------------+----------+------------+------------------------+ +| JavaScript / TypeScript | [Sequelize](https://sequelize.org/) | v6.20.1 | Full | N/A | N/A | +| +---------------+--------------+----------+------------+------------------------+ +| | [Prisma](https://www.prisma.io/) | v4.16.2 | Full | N/A | [使用 Prisma 连接到 TiDB](/develop/dev-guide-sample-application-nodejs-prisma.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [TypeORM](https://typeorm.io/) | v0.3.17 | Full | N/A | [使用 TypeORM 连接到 TiDB](/develop/dev-guide-sample-application-nodejs-typeorm.md) | ++--------------+---------------+--------------+----------+------------+------------------------+ +| Python | [Django](https://pypi.org/project/Django/) | v4.2 | Full | [django-tidb](https://github.com/pingcap/django-tidb) | [使用 Django 连接到 TiDB](/develop/dev-guide-sample-application-python-django.md) | +| +---------------+--------------+----------+------------+------------------------+ +| | [SQLAlchemy](https://www.sqlalchemy.org/) | v1.4.37 | Full | N/A | [使用 SQLAlchemy 连接到 TiDB](/develop/dev-guide-sample-application-python-sqlalchemy.md) | ++--------------+---------------+--------------+----------+------------+------------------------+ ## GUI diff --git a/dm/dm-block-allow-table-lists.md b/dm/dm-block-allow-table-lists.md index c8e5b8890806..eea74a9c18e6 100644 --- a/dm/dm-block-allow-table-lists.md +++ b/dm/dm-block-allow-table-lists.md @@ -130,13 +130,25 @@ block-allow-list: # 如果 DM 版本早于 v2.0.0-beta.2 则使用 black-white- 应用 `bw-rule` 规则后: -| table | 是否过滤| 过滤的原因 | -|:----|:----|:--------------| -| `logs`.`messages_2016` | 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | -| `logs`.`messages_2017` | 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | -| `logs`.`messages_2018` | 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | ++-----------------------+----------+-------------------------------------------------------+ +| table | 是否过滤 | 过滤的原因 | ++=======================+==========+=======================================================+ +| `logs`.`messages_2016`| 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | ++-----------------------+----------+-------------------------------------------------------+ +| `logs`.`messages_2017`| 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | ++-----------------------+----------+-------------------------------------------------------+ +| `logs`.`messages_2018`| 是 | schema `logs` 没有匹配到 `do-dbs` 任意一项 | ++-----------------------+----------+-------------------------------------------------------+ | `forum_backup_2016`.`messages` | 是 | schema `forum_backup_2016` 没有匹配到 `do-dbs` 任意一项 | ++-----------------------+----------+-------------------------------------------------------+ | `forum_backup_2017`.`messages` | 是 | schema `forum_backup_2017` 没有匹配到 `do-dbs` 任意一项 | -| `forum`.`users` | 是 | 1. schema `forum` 匹配到 `do-dbs`,进入 table 过滤判断
2. schema 和 table 没有匹配到 `do-tables` 和 `ignore-tables` 中任意一项,并且 `do-tables` 不为空,因此过滤 | -| `forum`.`messages` | 否 | 1. schema `forum` 匹配到 `do-dbs`,进入 table 过滤判断
2. schema 和 table 匹配到 `do-tables` 的 `db-name: "~^forum.*",tbl-name: "messages"` | -| `forum_backup_2018`.`messages` | 否 | 1. schema `forum_backup_2018` 匹配到 `do-dbs`,进入 table 过滤判断
2. schema 和 table 匹配到 `do-tables` 的 `db-name: "~^forum.*",tbl-name: "messages"` | ++-----------------------+----------+-------------------------------------------------------+ +| `forum`.`users` | 是 | 1. schema `forum` 匹配到 `do-dbs`,进入 table 过滤判断 | +| | | 2. schema 和 table 没有匹配到 `do-tables` 和 `ignore-tables` 中任意一项,并且 `do-tables` 不为空,因此过滤 | ++-----------------------+----------+-------------------------------------------------------+ +| `forum`.`messages` | 否 | 1. schema `forum` 匹配到 `do-dbs`,进入 table 过滤判断 | +| | | 2. schema 和 table 匹配到 `do-tables` 的 `db-name: "~^forum.*",tbl-name: "messages"` | ++-----------------------+----------+-------------------------------------------------------+ +| `forum_backup_2018`.`messages` | 否 | 1. schema `forum_backup_2018` 匹配到 `do-dbs`,进入 table 过滤判断 | +| | | 2. schema 和 table 匹配到 `do-tables` 的 `db-name: "~^forum.*",tbl-name: "messages"` | ++-----------------------+----------+-------------------------------------------------------+ diff --git a/dm/dm-config-overview.md b/dm/dm-config-overview.md index 23dea59f0231..db8d6b810fe7 100644 --- a/dm/dm-config-overview.md +++ b/dm/dm-config-overview.md @@ -28,6 +28,6 @@ DM 配置的关键概念如下: | 概念 | 解释 | 配置文件 | | :------------ | :------------ | :------------------ | -| source-id | 唯一确定一个 MySQL 或 MariaDB 实例,或者一个具有主从结构的复制组,字符串长度不大于 32 | `source.yaml` 的 `source-id`;
`task.yaml` 的 `source-id` | +| source-id | 唯一确定一个 MySQL 或 MariaDB 实例,或者一个具有主从结构的复制组,字符串长度不大于 32 | `source.yaml` 的 `source-id`;`task.yaml` 的 `source-id` | | DM-master ID | 唯一确定一个 DM-master(取值于 `dm-master.toml` 的 `master-addr` 参数) | `dm-master.toml` 的 `master-addr` | | DM-worker ID | 唯一确定一个 DM-worker(取值于 `dm-worker.toml` 的 `worker-addr` 参数) | `dm-worker.toml` 的 `worker-addr` | diff --git a/dm/dm-ddl-compatible.md b/dm/dm-ddl-compatible.md index 9c17bba976dd..095741428e8f 100644 --- a/dm/dm-ddl-compatible.md +++ b/dm/dm-ddl-compatible.md @@ -10,116 +10,69 @@ DM 同步过程中,根据 DDL 语句以及所处场景的不同,将采用不 以下语句 DM 并未支持,因此解析之后直接跳过。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
描述SQL
transaction^SAVEPOINT
skip all flush sqls^FLUSH
table maintenance^OPTIMIZE\\s+TABLE
^ANALYZE\\s+TABLE
^REPAIR\\s+TABLE
temporary table^DROP\\s+(\\/\\*\\!40005\\s+)?TEMPORARY\\s+(\\*\\/\\s+)?TABLE
trigger^CREATE\\s+(DEFINER\\s?=.+?)?TRIGGER
^DROP\\s+TRIGGER
procedure^DROP\\s+PROCEDURE
^CREATE\\s+(DEFINER\\s?=.+?)?PROCEDURE
^ALTER\\s+PROCEDURE
view^CREATE\\s*(OR REPLACE)?\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?\\s+(SQL SECURITY DEFINER)?VIEW
^DROP\\s+VIEW
^ALTER\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?(SQL SECURITY DEFINER)?VIEW
function^CREATE\\s+(AGGREGATE)?\\s*?FUNCTION
^CREATE\\s+(DEFINER\\s?=.+?)?FUNCTION
^ALTER\\s+FUNCTION
^DROP\\s+FUNCTION
tableSpace^CREATE\\s+TABLESPACE
^ALTER\\s+TABLESPACE
^DROP\\s+TABLESPACE
event^CREATE\\s+(DEFINER\\s?=.+?)?EVENT
^ALTER\\s+(DEFINER\\s?=.+?)?EVENT
^DROP\\s+EVENT
account management^GRANT
^REVOKE
^CREATE\\s+USER
^ALTER\\s+USER
^RENAME\\s+USER
^DROP\\s+USER
^DROP\\s+USER
++------------------+----------------------------------------------------------+ +| 描述 | SQL | ++==================+==========================================================+ +| transaction | `^SAVEPOINT` | ++------------------+----------------------------------------------------------+ +| skip all flush | `^FLUSH` | ++------------------+----------------------------------------------------------+ +| table maintenance| `^OPTIMIZE\\s+TABLE` | +| +----------------------------------------------------------+ +| | `^ANALYZE\\s+TABLE` | +| +----------------------------------------------------------+ +| | `^REPAIR\\s+TABLE` | ++------------------+----------------------------------------------------------+ +| temporary table | `^DROP\\s+(\\/\\*\\!40005\\s+)?TEMPORARY\\s+(\\*\\/\\s+)?TABLE` | ++------------------+----------------------------------------------------------+ +| trigger | `^CREATE\\s+(DEFINER\\s?=.+?)?TRIGGER` | +| +----------------------------------------------------------+ +| | `^DROP\\s+TRIGGER` | ++------------------+----------------------------------------------------------+ +| procedure | `^DROP\\s+PROCEDURE` | +| +----------------------------------------------------------+ +| | `^CREATE\\s+(DEFINER\\s?=.+?)?PROCEDURE` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+PROCEDURE` | ++------------------+----------------------------------------------------------+ +| view | `^CREATE\\s*(OR REPLACE)?\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?\\s+(SQL SECURITY DEFINER)?VIEW` | +| +----------------------------------------------------------+ +| | `^DROP\\s+VIEW` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?(SQL SECURITY DEFINER)?VIEW` | ++------------------+----------------------------------------------------------+ +| function | `^CREATE\\s+(AGGREGATE)?\\s*?FUNCTION` | +| +----------------------------------------------------------+ +| | `^CREATE\\s+(DEFINER\\s?=.+?)?FUNCTION` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+FUNCTION` | +| +----------------------------------------------------------+ +| | `^DROP\\s+FUNCTION` | ++------------------+----------------------------------------------------------+ +| tableSpace | `^CREATE\\s+TABLESPACE` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+TABLESPACE` | +| +----------------------------------------------------------+ +| | `^DROP\\s+TABLESPACE` | ++------------------+----------------------------------------------------------+ +| event | `^CREATE\\s+(DEFINER\\s?=.+?)?EVENT` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+(DEFINER\\s?=.+?)?EVENT` | +| +----------------------------------------------------------+ +| | `^DROP\\s+EVENT` | ++------------------+----------------------------------------------------------+ +| account management| `^GRANT` | +| +----------------------------------------------------------+ +| | `^REVOKE` | +| +----------------------------------------------------------+ +| | `^CREATE\\s+USER` | +| +----------------------------------------------------------+ +| | `^ALTER\\s+USER` | +| +----------------------------------------------------------+ +| | `^RENAME\\s+USER` | +| +----------------------------------------------------------+ +| | `^DROP\\s+USER` | ++------------------+----------------------------------------------------------+ ## 改写的 DDL 语句 diff --git a/dm/dm-worker-intro.md b/dm/dm-worker-intro.md index b71aa0cf88bf..157cfca86254 100644 --- a/dm/dm-worker-intro.md +++ b/dm/dm-worker-intro.md @@ -87,12 +87,29 @@ GRANT ALL ON dm_meta.* TO 'your_user'@'your_wildcard_of_host'; ### 处理单元所需的最小权限 -| 处理单元 | 最小上游 (MySQL/MariaDB) 权限 | 最小下游 (TiDB) 权限 | 最小系统权限 | -|:----|:--------------------|:------------|:----| -| Relay log | `REPLICATION SLAVE` (读取 binlog)
`REPLICATION CLIENT` (`show master status`, `show slave status`) | 无 | 本地读/写磁盘 | -| Dump | `SELECT`
`RELOAD`(获取读锁将表数据刷到磁盘,进行一些操作后,再释放读锁对表进行解锁)| 无 | 本地写磁盘 | -| Load | 无 | `SELECT`(查询 checkpoint 历史)
`CREATE`(创建数据库或表)
`DELETE`(删除 checkpoint)
`INSERT`(插入 dump 数据)| 读/写本地文件 | -| Binlog replication | `REPLICATION SLAVE`(读 binlog)
`REPLICATION CLIENT` (`show master status`, `show slave status`) | `SELECT`(显示索引和列)
`INSERT` (DML)
`UPDATE` (DML)
`DELETE` (DML)
`CREATE`(创建数据库或表)
`DROP`(删除数据库或表)
`ALTER`(修改表)
`INDEX`(创建或删除索引)| 本地读/写磁盘 | ++------------+-----------------------------+-----------------------------+---------------------+ +| 处理单元 | 最小上游 (MySQL/MariaDB) 权限 | 最小下游 (TiDB) 权限 | 最小系统权限 | ++============+=============================+=============================+=====================+ +| Relay log | - `REPLICATION SLAVE`(读取 binlog)| 无 | 本地读/写磁盘 | +| | - `REPLICATION CLIENT` (`show master status`, `show slave status`) | | | ++------------+-----------------------------+-----------------------------+---------------------+ +| Dump | - `SELECT` | 无 | 本地写磁盘 | +| | - `RELOAD`(获取读锁将表数据刷到磁盘,进行一些操作后,再释放读锁对表进行解锁)| | | ++------------+-----------------------------+-----------------------------+---------------------+ +| Load | 无 | - `SELECT`(查询 checkpoint 历史)| 读/写本地文件 | +| | | - `CREATE`(创建数据库或表) | | +| | | - `DELETE`(删除 checkpoint) | | +| | | - `INSERT`(插入 dump 数据) | | ++------------+-----------------------------+-----------------------------+---------------------+ +| Binlog replication | - `REPLICATION SLAVE`(读 binlog)| - `SELECT`(显示索引和列)| 本地读/写磁盘 | +| | - `REPLICATION CLIENT` (`show master status`, `show slave status`) | - `INSERT` (DML) | | +| | | - `UPDATE` (DML) | | +| | | - `DELETE` (DML) | | +| | | - `CREATE`(创建数据库或表) | | +| | | - `DROP`(删除数据库或表) | | +| | | - `ALTER`(修改表) | | +| | | - `INDEX`(创建或删除索引) | | ++------------+-----------------------------+-----------------------------+---------------------+ > **注意:** > diff --git a/download-ecosystem-tools.md b/download-ecosystem-tools.md index a9b5131917dc..1b7ac0c3e2b0 100644 --- a/download-ecosystem-tools.md +++ b/download-ecosystem-tools.md @@ -34,18 +34,39 @@ TiDB 工具包中包含了一些常用的 TiDB 工具,例如数据导出工具 在 TiDB 工具包中,你可以依据要使用的工具,选择安装对应的离线包。 -| 工具 | 离线包名称 | -|:------|:----------| -| [TiUP](/tiup/tiup-overview.md) | `tiup-linux-{arch}.tar.gz`
`tiup-{tiup-version}-linux-{arch}.tar.gz`
`dm-{tiup-version}-linux-{arch}.tar.gz`
`server-{version}-linux-{arch}.tar.gz` | -| [Dumpling](/dumpling-overview.md) | `dumpling-{version}-linux-{arch}.tar.gz` | -| [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) | `tidb-lightning-ctl`
`tidb-lightning-{version}-linux-{arch}.tar.gz` | -| [TiDB DM (Data Migration)](/dm/dm-overview.md) | `dm-worker-{version}-linux-{arch}.tar.gz`
`dm-master-{version}-linux-{arch}.tar.gz`
`dmctl-{version}-linux-{arch}.tar.gz` | -| [TiCDC](/ticdc/ticdc-overview.md) | `cdc-{version}-linux-{arch}.tar.gz` | -| [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) | `pump-{version}-linux-{arch}.tar.gz`
`drainer-{version}-linux-{arch}.tar.gz`
`binlogctl`
`reparo` | -| [Backup & Restore (BR)](/br/backup-and-restore-overview.md) | `br-{version}-linux-{arch}.tar.gz` | -| [sync-diff-inspector](/sync-diff-inspector/sync-diff-inspector-overview.md) | `sync_diff_inspector` | -| [TiSpark](/tispark-overview.md) | `tispark-{tispark-version}-any-any.tar.gz`
`spark-{spark-version}-any-any.tar.gz` | -| [PD Recover](/pd-recover.md) | `pd-recover-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| 工具 | 离线包名称 | ++=====================+===============================================================+ +| [TiUP](/tiup/tiup-overview.md) | `tiup-linux-{arch}.tar.gz` | +| | `tiup-{tiup-version}-linux-{arch}.tar.gz` | +| | `dm-{tiup-version}-linux-{arch}.tar.gz` | +| | `server-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [Dumpling](/dumpling-overview.md) | `dumpling-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) | `tidb-lightning-ctl` | +| | `tidb-lightning-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [TiDB DM (Data Migration)](/dm/dm-overview.md) | `dm-worker-{version}-linux-{arch}.tar.gz` | +| | `dm-master-{version}-linux-{arch}.tar.gz` | +| | `dmctl-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [TiCDC](/ticdc/ticdc-overview.md) | `cdc-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) | `pump-{version}-linux-{arch}.tar.gz` | +| | `drainer-{version}-linux-{arch}.tar.gz` | +| | `binlogctl` | +| | `reparo` | ++---------------------+---------------------------------------------------------------+ +| [Backup & Restore (BR)](/br/backup-and-restore-overview.md) | `br-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [sync-diff-inspector](/sync-diff-inspector/sync-diff-inspector-overview.md) | `sync_diff_inspector` | ++---------------------+---------------------------------------------------------------+ +| [TiSpark](/tispark-overview.md) | `tispark-{tispark-version}-any-any.tar.gz` | +| | `spark-{spark-version}-any-any.tar.gz` | ++---------------------+---------------------------------------------------------------+ +| [PD Recover](/pd-recover.md) | `pd-recover-{version}-linux-{arch}.tar.gz` | ++---------------------+---------------------------------------------------------------+ > **注意:** > diff --git a/dumpling-overview.md b/dumpling-overview.md index c397213c093c..e1d5aac7dc2d 100644 --- a/dumpling-overview.md +++ b/dumpling-overview.md @@ -346,7 +346,7 @@ SET GLOBAL tidb_gc_life_time = '10m'; | --filetype| 导出文件类型(csv/sql) | "sql" | | -o 或 --output | 导出本地文件路径或[外部存储 URL 格式](/br/backup-and-restore-storages.md#url-格式) | "./export-${time}" | | -S 或 --sql | 根据指定的 sql 导出数据,该选项不支持并发导出 | -| --consistency | flush: dump 前用 FTWRL
snapshot: 通过 TSO 来指定 dump 某个快照时间点的 TiDB 数据
lock: 对需要 dump 的所有表执行 `lock tables read` 命令
none: 不加锁 dump,无法保证一致性
auto: 对 MySQL 使用 --consistency flush;对 TiDB 使用 --consistency snapshot | "auto" | +| --consistency | `flush`:dump 前用 FTWRL;`snapshot`:通过 TSO 来指定 dump 某个快照时间点的 TiDB 数据;`lock`:对需要 dump 的所有表执行 `lock tables read` 命令;`none`:不加锁 dump,无法保证一致性;`auto`:对 MySQL 使用 --consistency flush;对 TiDB 使用 --consistency snapshot | "auto" | | --snapshot | snapshot tso,只在 consistency=snapshot 下生效 | | --where | 对备份的数据表通过 where 条件指定范围 | | -p 或 --password | 连接的数据库主机的密码 | @@ -360,7 +360,7 @@ SET GLOBAL tidb_gc_life_time = '10m'; | --csv-separator | csv 文件中各值的分隔符,如果数据中可能有逗号,建议源文件导出时分隔符使用非常见组合字符| ','| | --csv-null-value | csv 文件空值的表示 | "\\N" | | --escape-backslash | 使用反斜杠 (`\`) 来转义导出文件中的特殊字符 | true | -| --output-filename-template | 以 [golang template](https://golang.org/pkg/text/template/#hdr-Arguments) 格式表示的数据文件名格式
支持 `{{.DB}}`、`{{.Table}}`、`{{.Index}}` 三个参数
分别表示数据文件的库名、表名、分块 ID | '{{.DB}}.{{.Table}}.{{.Index}}' | +| --output-filename-template | 以 [golang template](https://golang.org/pkg/text/template/#hdr-Arguments) 格式表示的数据文件名格式;支持 `{{.DB}}`、`{{.Table}}`、`{{.Index}}` 三个参数,分别表示数据文件的库名、表名、分块 ID | '{{.DB}}.{{.Table}}.{{.Index}}' | | --status-addr | Dumpling 的服务地址,包含了 Prometheus 拉取 metrics 信息及 pprof 调试的地址 | ":8281" | | --tidb-mem-quota-query | 单条 dumpling 命令导出 SQL 语句的内存限制,单位为 byte。对于 v4.0.10 或以上版本,若不设置该参数,默认使用 TiDB 中的 `mem-quota-query` 配置项值作为内存限制值。对于 v4.0.10 以下版本,该参数值默认为 32 GB | 34359738368 | | --params | 为需导出的数据库连接指定 session 变量,可接受的格式: "character_set_client=latin1,character_set_connection=latin1" | diff --git a/faq/faq-overview.md b/faq/faq-overview.md index 6b21f7110f18..cbf32b7940dc 100644 --- a/faq/faq-overview.md +++ b/faq/faq-overview.md @@ -7,15 +7,37 @@ summary: 汇总 TiDB 产品的常见问题解答。 本文整合汇总了 TiDB 使用过程中常见问题解答的 (FAQ) 文档。 -| 分类 | 相关文档 | -| :------- | :------------------- | -| 产品架构和原理 | [产品架构常见问题](/faq/tidb-faq.md) | -| 安装部署 |
  • [安装部署常见问题](/faq/deploy-and-maintain-faq.md)
  • [TiUP 常见问题](/tiup/tiup-faq.md)
  • [Kubernetes 上的 TiDB 集群常见问题](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/faq)
| -| 数据迁移 |
  • [数据迁移常见问题](/faq/migration-tidb-faq.md)
  • 数据导入
    • [TiDB Lightning 常见问题](/tidb-lightning/tidb-lightning-faq.md)
    • [TiDB Data Migration 常见问题](/dm/dm-faq.md)
  • 增量数据同步
    • [TiCDC 常见问题解答](/ticdc/ticdc-faq.md)
    • [TiDB Binlog 常见问题](/tidb-binlog/tidb-binlog-faq.md)
| -| 数据备份与恢复 | [备份与恢复常见问题](/faq/backup-and-restore-faq.md) | -| SQL 使用 | [SQL 操作常见问题](/faq/sql-faq.md) | -| 集群升级 | [TiDB 集群升级常见问题](/faq/upgrade-faq.md) | -| 集群管理 | [TiDB 集群管理常见问题](/faq/manage-cluster-faq.md) | -| 监控报警 |
  • [TiDB 监控常见问题](/faq/monitor-faq.md)
  • [TiDB Dashboard 常见问题](/dashboard/dashboard-faq.md)
  • [TiDB 集群报警规则](/alert-rules.md)
| -| 高可用和高可靠 |
  • [TiDB 高可用常见问题](/faq/high-availability-faq.md)
  • [TiDB 高可靠常见问题](/faq/high-reliability-faq.md)
| -| 常见错误码 | [错误码与故障诊断](/error-codes.md) | ++---------------------+---------------------------------------------------------------+ +| 分类 | 相关文档 | ++=====================+===============================================================+ +| 产品架构和原理 | [产品架构常见问题](/faq/tidb-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 安装部署 | - [安装部署常见问题](/faq/deploy-and-maintain-faq.md) | +| | - [TiUP 常见问题](/tiup/tiup-faq.md) | +| | - [Kubernetes 上的 TiDB 集群常见问题](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/faq) | ++---------------------+---------------------------------------------------------------+ +| 数据迁移 | - [数据迁移常见问题](/faq/migration-tidb-faq.md) | +| | - 数据导入 | +| | - [TiDB Lightning 常见问题](/tidb-lightning/tidb-lightning-faq.md) | +| | - [TiDB Data Migration 常见问题](/dm/dm-faq.md) | +| | - 增量数据同步 | +| | - [TiCDC 常见问题解答](/ticdc/ticdc-faq.md) | +| | - [TiDB Binlog 常见问题](/tidb-binlog/tidb-binlog-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 数据备份与恢复 | [备份与恢复常见问题](/faq/backup-and-restore-faq.md) | ++---------------------+---------------------------------------------------------------+ +| SQL 使用 | [SQL 操作常见问题](/faq/sql-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 集群升级 | [TiDB 集群升级常见问题](/faq/upgrade-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 集群管理 | [TiDB 集群管理常见问题](/faq/manage-cluster-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 监控报警 | - [TiDB 监控常见问题](/faq/monitor-faq.md) | +| | - [TiDB Dashboard 常见问题](/dashboard/dashboard-faq.md) | +| | - [TiDB 集群报警规则](/alert-rules.md) | ++---------------------+---------------------------------------------------------------+ +| 高可用和高可靠 | - [TiDB 高可用常见问题](/faq/high-availability-faq.md) | +| | - [TiDB 高可靠常见问题](/faq/high-reliability-faq.md) | ++---------------------+---------------------------------------------------------------+ +| 常见错误码 | [错误码与故障诊断](/error-codes.md) | ++---------------------+---------------------------------------------------------------+ diff --git a/functions-and-operators/expressions-pushed-down.md b/functions-and-operators/expressions-pushed-down.md index 9c8ed8046a62..5f028662a583 100644 --- a/functions-and-operators/expressions-pushed-down.md +++ b/functions-and-operators/expressions-pushed-down.md @@ -18,7 +18,7 @@ TiFlash 也支持[本页](/tiflash/tiflash-supported-pushdown-calculations.md) | [比较运算](/functions-and-operators/operators.md#比较方法和操作符) | [<][operator_less-than], [<=][operator_less-than-or-equal], [=][operator_equal], [!= (<\>)][operator_not-equal], [>][operator_greater-than], [>=][operator_greater-than-or-equal], [<=>][operator_equal-to], [BETWEEN ... AND ...][operator_between], [COALESCE()][function_coalesce], [IN()][operator_in], [INTERVAL()][function_interval], [IS NOT NULL][operator_is-not-null], [IS NOT][operator_is-not], [IS NULL][operator_is-null], [IS][operator_is], [ISNULL()][function_isnull], [LIKE][operator_like], [NOT BETWEEN ... AND ...][operator_not-between], [NOT IN()][operator_not-in], [NOT LIKE][operator_not-like], [STRCMP()][function_strcmp] | | [数值运算](/functions-and-operators/numeric-functions-and-operators.md) | [+][operator_plus], [-][operator_minus], [*][operator_times], [/][operator_divide], [DIV][operator_div], [% (MOD)][operator_mod], [-][operator_unary-minus], [ABS()][function_abs], [ACOS()][function_acos], [ASIN()][function_asin], [ATAN()][function_atan], [ATAN2(), ATAN()][function_atan2], [CEIL()][function_ceil], [CEILING()][function_ceiling], [CONV()][function_conv], [COS()][function_cos], [COT()][function_cot], [CRC32()][function_crc32], [DEGREES()][function_degrees], [EXP()][function_exp], [FLOOR()][function_floor], [LN()][function_ln], [LOG()][function_log], [LOG10()][function_log10], [LOG2()][function_log2], [MOD()][function_mod], [PI()][function_pi], [POW()][function_pow], [POWER()][function_power], [RADIANS()][function_radians], [RAND()][function_rand], [ROUND()][function_round], [SIGN()][function_sign], [SIN()][function_sin], [SQRT()][function_sqrt] | | [控制流运算](/functions-and-operators/control-flow-functions.md) | [CASE][operator_case], [IF()][function_if], [IFNULL()][function_ifnull] | -| [JSON 运算](/functions-and-operators/json-functions.md) | [JSON_ARRAY([val[, val] ...])][json_array],
[JSON_CONTAINS(target, candidate[, path])][json_contains],
[JSON_EXTRACT(json_doc, path[, path] ...)][json_extract],
[JSON_INSERT(json_doc, path, val[, path, val] ...)][json_insert],
[JSON_LENGTH(json_doc[, path])][json_length],
[JSON_MERGE(json_doc, json_doc[, json_doc] ...)][json_merge],
[JSON_OBJECT([key, val[, key, val] ...])][json_object],
[JSON_REMOVE(json_doc, path[, path] ...)][json_remove],
[JSON_REPLACE(json_doc, path, val[, path, val] ...)][json_replace],
[JSON_SET(json_doc, path, val[, path, val] ...)][json_set],
[JSON_TYPE(json_val)][json_type],
[JSON_UNQUOTE(json_val)][json_unquote],
[JSON_VALID(val)][json_valid] | +| [JSON 运算](/functions-and-operators/json-functions.md) | [JSON_ARRAY([val[, val] ...])][json_array], [JSON_CONTAINS(target, candidate[, path])][json_contains], [JSON_EXTRACT(json_doc, path[, path] ...)][json_extract], [JSON_INSERT(json_doc, path, val[, path, val] ...)][json_insert], [JSON_LENGTH(json_doc[, path])][json_length], [JSON_MERGE(json_doc, json_doc[, json_doc] ...)][json_merge], [JSON_OBJECT([key, val[, key, val] ...])][json_object], [JSON_REMOVE(json_doc, path[, path] ...)][json_remove], [JSON_REPLACE(json_doc, path, val[, path, val] ...)][json_replace], [JSON_SET(json_doc, path, val[, path, val] ...)][json_set], [JSON_TYPE(json_val)][json_type], [JSON_UNQUOTE(json_val)][json_unquote], [JSON_VALID(val)][json_valid] | | [日期运算](/functions-and-operators/date-and-time-functions.md) | [DATE()][function_date], [DATE_FORMAT()][function_date-format], [DATEDIFF()][function_datediff], [DAYOFMONTH()][function_dayofmonth], [DAYOFWEEK()][function_dayofweek], [DAYOFYEAR()][function_dayofyear], [FROM_DAYS()][function_from-days], [HOUR()][function_hour], [MAKEDATE()][function_makedate], [MAKETIME()][function_maketime], [MICROSECOND()][function_microsecond], [MINUTE()][function_minute], [MONTH()][function_month], [MONTHNAME()][function_monthname], [PERIOD_ADD()][function_period-add], [PERIOD_DIFF()][function_period-diff], [SEC_TO_TIME()][function_sec-to-time], [SECOND()][function_second], [SYSDATE()][function_sysdate], [TIME_TO_SEC()][function_time-to-sec], [TIMEDIFF()][function_timediff], [WEEK()][function_week], [WEEKOFYEAR()][function_weekofyear], [YEAR()][function_year] | | [字符串函数](/functions-and-operators/string-functions.md) | [ASCII()][function_ascii], [BIT_LENGTH()][function_bit-length], [CHAR()][function_char], [CHAR_LENGTH()][function_char-length], [CONCAT()][function_concat], [CONCAT_WS()][function_concat-ws], [ELT()][function_elt], [FIELD()][function_field], [HEX()][function_hex], [LENGTH()][function_length], [LIKE][operator_like], [LTRIM()][function_ltrim], [MID()][function_mid], [NOT LIKE][operator_not-like], [NOT REGEXP][operator_not-regexp], [REGEXP][operator_regexp], [REPLACE()][function_replace], [REVERSE()][function_reverse], [RIGHT()][function_right], [RTRIM()][function_rtrim], [SPACE()][function_space], [STRCMP()][function_strcmp], [SUBSTR()][function_substr], [SUBSTRING()][function_substring] | | [聚合函数](/functions-and-operators/aggregate-group-by-functions.md#group-by-聚合函数) | [COUNT()][function_count], [COUNT(DISTINCT)][function_count-distinct], [SUM()][function_sum], [AVG()][function_avg], [MAX()][function_max], [MIN()][function_min], [VARIANCE()][function_variance], [VAR_POP()][function_var-pop], [STD()][function_std], [STDDEV()][function_stddev], [STDDEV_POP][function_stddev-pop], [VAR_SAMP()][function_var-samp], [STDDEV_SAMP()][function_stddev-samp], [JSON_ARRAYAGG(key)][json_arrayagg], [JSON_OBJECTAGG(key, value)][function_json-objectagg] | diff --git a/geo-distributed-deployment-topology.md b/geo-distributed-deployment-topology.md index 7bfd166e0009..46cb24b3123b 100644 --- a/geo-distributed-deployment-topology.md +++ b/geo-distributed-deployment-topology.md @@ -9,12 +9,26 @@ summary: 介绍跨数据中心部署 TiDB 集群的拓扑结构。 ## 拓扑信息 -|实例 | 个数 | 物理机配置 | BJ IP | SH IP |配置 | -| :-- | :-- | :-- | :-- | :-- | :-- | -| TiDB |5 | 16 VCore 32GB * 1 | 10.0.1.1
10.0.1.2
10.0.1.3
10.0.1.4 | 10.0.1.5 | 默认端口
全局目录配置 | -| PD | 5 | 4 VCore 8GB * 1 |10.0.1.6
10.0.1.7
10.0.1.8
10.0.1.9 | 10.0.1.10 | 默认端口
全局目录配置 | -| TiKV | 5 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.11
10.0.1.12
10.0.1.13
10.0.1.14 | 10.0.1.15 | 默认端口
全局目录配置 | -| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.16 || 默认端口
全局目录配置 | ++----------------+-------+----------------------+-------------+------------+-----------------+ +| 实例 | 个数 | 物理机配置 | BJ IP | SH IP | 配置 | ++================+=======+======================+=============+============+=================+ +| TiDB | 5 | 16 VCore 32GB * 1 | 10.0.1.1 | 10.0.1.5 | 默认端口,全局目录配置 | +| | | | 10.0.1.2 | | | +| | | | 10.0.1.3 | | | +| | | | 10.0.1.4 | | | ++----------------+-------+----------------------+-------------+------------+-----------------+ +| PD | 5 | 4 VCore 8GB * 1 | 10.0.1.6 | 10.0.1.10 | 默认端口,全局目录配置 | +| | | | 10.0.1.7 | | | +| | | | 10.0.1.8 | | | +| | | | 10.0.1.9 | | | ++----------------+-------+----------------------+-------------+------------+-----------------+ +| TiKV | 5 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.11 | 10.0.1.15 | 默认端口,全局目录配置 | +| | | | 10.0.1.12 | | | +| | | | 10.0.1.13 | | | +| | | | 10.0.1.14 | | | ++----------------+-------+----------------------+-------------+------------+-----------------+ +| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.16 | | 默认端口,全局目录配置 | ++----------------+-------+----------------------+-------------+------------+-----------------+ ### 拓扑模版 diff --git a/hardware-and-software-requirements.md b/hardware-and-software-requirements.md index 98da2c210a36..b13b90be32c3 100644 --- a/hardware-and-software-requirements.md +++ b/hardware-and-software-requirements.md @@ -20,13 +20,24 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和 + 在以下操作系统以及对应的 CPU 架构组合上,TiDB 可**满足企业级生产质量的要求**,产品特性经过全面且系统化的验证: - | 操作系统 | 支持的 CPU 架构 | - | :--- | :--- | - | Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 |
  • x86_64
  • ARM 64
| - |
  • Red Hat Enterprise Linux 7.3 及以上的 7.x 版本
  • CentOS 7.3 及以上的 7.x 版本
|
  • x86_64
  • ARM 64
| - | Amazon Linux 2 |
  • x86_64
  • ARM 64
| - | 麒麟欧拉版 V10 SP1/SP2 |
  • x86_64
  • ARM 64
| - | 统信操作系统 (UOS) V20 |
  • x86_64
  • ARM 64
| + +-------------------------------------------------+------------------+ + | 操作系统 | 支持的 CPU 架构 | + +=================================================+==================+ + | Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ + | - Red Hat Enterprise Linux 7.3 及以上的 7.x 版本 | - x86_64 | + | - CentOS 7.3 及以上的 7.x 版本 | - ARM 64 | + +-------------------------------------------------+------------------+ + | Amazon Linux 2 | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ + | 麒麟欧拉版 V10 SP1/SP2 | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ + | 统信操作系统 (UOS) V20 | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ > **注意:** > @@ -34,16 +45,27 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和 + 在以下操作系统以及对应的 CPU 架构组合上,你可以编译、构建和部署 TiDB,可使用 OLTP 和 OLAP 以及数据工具的基本功能。但是 TiDB **不保障企业级生产质量要求**: - | 操作系统 | 支持的 CPU 架构 | - | :--- | :--- | - | macOS 12 (Monterey) 及以上的版本 |
  • x86_64
  • ARM 64
| - | Oracle Enterprise Linux 7.3 及以上的 7.x 版本 | x86_64 | - | Ubuntu LTS 18.04 及以上的版本 | x86_64 | - | CentOS 8 Stream |
  • x86_64
  • ARM 64
| - | Debian 9 (Stretch) 及以上的版本 | x86_64 | - | Fedora 35 及以上的版本 | x86_64 | - | openSUSE Leap 15.3 以上的版本(不包含 Tumbleweed) | x86_64 | - | SUSE Linux Enterprise Server 15 | x86_64 | + +-------------------------------------------------+------------------+ + | 操作系统 | 支持的 CPU 架构 | + +=================================================+==================+ + | macOS 12 (Monterey) 及以上的版本 | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ + | Oracle Enterprise Linux 7.3 及以上的 7.x 版本 | x86_64 | + +-------------------------------------------------+------------------+ + | Ubuntu LTS 18.04 及以上的版本 | x86_64 | + +-------------------------------------------------+------------------+ + | CentOS 8 Stream | - x86_64 | + | | - ARM 64 | + +-------------------------------------------------+------------------+ + | Debian 9 (Stretch) 及以上的版本 | x86_64 | + +-------------------------------------------------+------------------+ + | Fedora 35 及以上的版本 | x86_64 | + +-------------------------------------------------+------------------+ + | openSUSE Leap 15.3 以上的版本(不包含 Tumbleweed) | x86_64 | + +-------------------------------------------------+------------------+ + | SUSE Linux Enterprise Server 15 | x86_64 | + +-------------------------------------------------+------------------+ > **注意:** > @@ -56,12 +78,17 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和 ### 编译和运行 TiDB 所依赖的库 -| 编译和构建 TiDB 所需的依赖库 | 版本 | -| :--- | :--- | -| Golang | 1.19 及以上版本 | -| Rust | nightly-2022-07-31 及以上版本 | -| GCC | 7.x | -| LLVM | 13.0 及以上版本 | ++---------------------------------+--------------------------------+ +| 编译和构建 TiDB 所需的依赖库 | 版本 | ++=================================+================================+ +| Golang | 1.19 及以上版本 | ++---------------------------------+--------------------------------+ +| Rust | nightly-2022-07-31 及以上版本 | ++---------------------------------+--------------------------------+ +| GCC | 7.x | ++---------------------------------+--------------------------------+ +| LLVM | 13.0 及以上版本 | ++---------------------------------+--------------------------------+ 运行时所需的依赖库:glibc(2.28-151.el8 版本) @@ -69,10 +96,13 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和 ### 中控机软件配置 -| 软件 | 版本 | -| :----------------------- | :----------: | -| sshpass | 1.06 及以上 | -| TiUP | 1.5.0 及以上 | ++----------------+-----------------+ +| 软件 | 版本 | ++================+=================+ +| sshpass | 1.06 及以上 | ++----------------+-----------------+ +| TiUP | 1.5.0 及以上 | ++----------------+-----------------+ > **注意:** > @@ -80,11 +110,15 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和 ### 目标主机建议配置软件 -| 软件 | 版本 | -| :----- | :----------: | -| sshpass | 1.06 及以上 | -| numa | 2.0.12 及以上 | -| tar | 任意 | ++----------------+-----------------+ +| 软件 | 版本 | ++================+=================+ +| sshpass | 1.06 及以上 | ++----------------+-----------------+ +| numa | 2.0.12 及以上 | ++----------------+-----------------+ +| tar | 任意 | ++----------------+-----------------+ ## 服务器建议配置 @@ -170,14 +204,25 @@ TiDB 作为开源一栈式实时 HTAP 数据库,其正常运行需要网络环 ## 磁盘空间要求 -| 组件 | 磁盘空间要求 | 健康水位使用率 | -| :-- | :-- | :-- | -| TiDB |
  • 日志盘建议最少预留 30 GB。
  • v6.5.0 及以上版本默认启用了 Fast Online DDL 对添加索引等 DDL 操作进行加速(通过变量 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 控制)。如果业务中可能存在针对大对象的 DDL 操作,推荐为 TiDB 准备额外的 SSD 磁盘空间(建议 100 GB+)。配置方式详见[设置 TiDB 节点的临时空间](/check-before-deployment.md#设置-tidb-节点的临时空间推荐)。
| 低于 90% | -| PD | 数据盘和日志盘建议最少各预留 20 GB | 低于 90% | -| TiKV | 数据盘和日志盘建议最少各预留 100 GB | 低于 80% | -| TiFlash | 数据盘建议最少预留 100 GB,日志盘建议最少预留 30 GB | 低于 80% | -| TiUP |
  • 中控机:部署一个版本的 TiDB 集群占用不超过 1 GB 空间,部署多个版本集群所占用的空间会相应增加
  • 部署服务器(实际运行 TiDB 各组件的机器):TiFlash 占用约 700 MB 空间,其他组件(PD、TiDB、TiKV 等)各占用约 200 MB 空间。同时,部署过程会占用小于 1 MB 临时空间(/tmp)存放临时文件
| 不涉及| -| Ngmonitoring |
  • Conprof:3 x 1 GB x 组件数量(表示每个组件每天占用约 1 GB,总共 3 天) + 20 GB 预留空间
  • Top SQL:30 x 50 MB x 组件数量(每个组件每天占用约 50 MB,总共 30 天)
  • Top SQL 和 Conprof 共享预留空间
| 不涉及 | ++-------------+----------------------------------------------------+--------------+ +| 组件 | 磁盘空间要求 | 健康水位使用率 | ++=============+====================================================+==============+ +| TiDB | - 日志盘建议最少预留 30 GB。 | 低于 90% | +| | - v6.5.0 及以上版本默认启用了 Fast Online DDL 对添加索引等 DDL 操作进行加速(通过变量 [`tidb_ddl_enable_fast_reorg`](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 控制)。如果业务中可能存在针对大对象的 DDL 操作,推荐为 TiDB 准备额外的 SSD 磁盘空间(建议 100 GB+)。配置方式详见[设置 TiDB 节点的临时空间](/check-before-deployment.md#设置-tidb-节点的临时空间推荐)。| | ++-------------+----------------------------------------------------+--------------+ +| PD | 数据盘和日志盘建议最少各预留 20 GB。 | 低于 90% | ++-------------+----------------------------------------------------+--------------+ +| TiKV | 数据盘和日志盘建议最少各预留 100 GB。 | 低于 80% | ++-------------+----------------------------------------------------+--------------+ +| TiFlash | 数据盘建议最少预留 100 GB,日志盘建议最少预留 30 GB。 | 低于 80% | ++-------------+----------------------------------------------------+--------------+ +| TiUP | - 中控机:部署一个版本的 TiDB 集群占用不超过 1 GB 空间,部署多个版本集群所占用的空间会相应增加。| 不涉及 | +| | - 部署服务器(实际运行 TiDB 各组件的机器):TiFlash 占用约 700 MB 空间,其他组件(PD、TiDB、TiKV 等)各占用约 200 MB 空间。同时,部署过程会占用小于 1 MB 临时空间(/tmp)存放临时文件。| | ++-------------+----------------------------------------------------+--------------+ +| Ngmonitoring| - Conprof:3 x 1 GB x 组件数量(表示每个组件每天占用约 1 GB,总共 3 天) + 20 GB 预留空间。| 不涉及 | +| | - Top SQL:30 x 50 MB x 组件数量(每个组件每天占用约 50 MB,总共 30 天)。| | +| | - Top SQL 和 Conprof 共享预留空间。| | ++-------------+----------------------------------------------------+--------------+ ## 客户端 Web 浏览器要求 diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 485452a538a3..cfb905c311e1 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -9,12 +9,24 @@ summary: 介绍混合部署 TiDB 集群的拓扑结构。 ## 拓扑信息 -| 实例 | 个数 | 物理机配置 | IP | 配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiDB | 6 | 32 VCore 64GB | 10.0.1.1
10.0.1.2
10.0.1.3 | 配置 numa 绑核操作 | -| PD | 3 | 16 VCore 32 GB | 10.0.1.4
10.0.1.5
10.0.1.6 | 配置 location_labels 参数 | -| TiKV | 6 | 32 VCore 64GB | 10.0.1.7
10.0.1.8
10.0.1.9 | 1. 区分实例级别的 port、status_port;
2. 配置全局参数 readpool、storage 以及 raftstore;
3. 配置实例级别 host 维度的 labels;
4. 配置 numa 绑核操作| -| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.10 | 默认配置 | ++----------------+--------+----------------------+--------------+--------------------------+ +| 实例 | 个数 | 物理机配置 | BJ IP | 配置 | ++================+========+======================+==============+==========================+ +| TiDB | 6 | 32 VCore 64GB | 10.0.1.1 | 配置 numa 绑核操作 | +| | | | 10.0.1.2 | | +| | | | 10.0.1.3 | | ++----------------+--------+----------------------+--------------+--------------------------+ +| PD | 3 | 16 VCore 32 GB | 10.0.1.4 | 配置 location_labels 参数 | +| | | | 10.0.1.5 | | +| | | | 10.0.1.6 | | ++----------------+--------+----------------------+--------------+--------------------------+ +| TiKV | 6 | 32 VCore 64GB | 10.0.1.7 | 1. 区分实例级别的 port、status_port; | +| | | | 10.0.1.8 | 2. 配置全局参数 readpool、storage 以及 raftstore; | +| | | | 10.0.1.9 | 3. 配置实例级别 host 维度的 labels; | +| | | | | 4. 配置 numa 绑核操作 | ++----------------+--------+----------------------+--------------+--------------------------+ +| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.10 | 默认配置 | ++----------------+--------+----------------------+--------------+--------------------------+ ### 拓扑模版 diff --git a/metadata-lock.md b/metadata-lock.md index 31d4204964d2..a61aaae69f99 100644 --- a/metadata-lock.md +++ b/metadata-lock.md @@ -49,7 +49,7 @@ summary: 介绍 TiDB 中元数据锁的概念、原理、实现和影响。 | `INSERT INTO t VALUES(1);` | | | `BEGIN;` | | | | `ALTER TABLE t ADD COLUMN b INT;` | - | `SELECT * FROM t;`
(采用 `t` 表当前的元数据版本,返回 `(a=1,b=NULL)`,同时给表 `t` 加锁)| | + | `SELECT * FROM t;`(采用 `t` 表当前的元数据版本,返回 `(a=1,b=NULL)`,同时给表 `t` 加锁)| | | | `ALTER TABLE t ADD COLUMN c INT;`(被 Session 1 阻塞)| 在可重复读隔离级别下,如果从事务开始到确定一个表的元数据过程中,执行了加索引或者变更列类型等需要更改数据的 DDL,则有以下表现: diff --git a/migration-tools.md b/migration-tools.md index 118f83c602d6..5b25df1e59a4 100644 --- a/migration-tools.md +++ b/migration-tools.md @@ -11,57 +11,102 @@ TiDB 提供了丰富的数据迁移相关的工具,用于全量迁移、增量 ## [TiDB Data Migration (DM)](/dm/dm-overview.md) -| 使用场景 | 用于将数据从与 MySQL 协议兼容的数据库迁移到 TiDB | -|---|---| -| **上游** | MySQL,MariaDB,Aurora | -| **下游** | TiDB | -| **主要优势** |
  • 一体化的数据迁移任务管理工具,支持全量迁移和增量同步
  • 支持对表与操作进行过滤
  • 支持分库分表的合并迁移
| -| **使用限制** | 数据导入速度与 TiDB Lightning 的 [Logical Import Mode](/tidb-lightning/tidb-lightning-logical-import-mode.md) 大致相同,而比TiDB Lightning 的 [Physical Import Mode](/tidb-lightning/tidb-lightning-physical-import-mode.md) 低很多。建议用于 1 TB 以内的存量数据迁移。 | ++-------------+----------------------------------------------------------------------+ +| 使用场景 | 用于将数据从 MySQL 迁移到 TiDB | ++=============+======================================================================+ +| 上游 | MySQL,MariaDB,Aurora | ++-------------+----------------------------------------------------------------------+ +| 下游 | TiDB | ++-------------+----------------------------------------------------------------------+ +| 主要优势 | - 一体化的数据迁移任务管理工具,支持全量迁移和增量同步 | +| | - 支持对表与操作进行过滤 | +| | - 支持分库分表的合并迁移 | ++-------------+----------------------------------------------------------------------+ +| 使用限制 | 数据导入速度与 TiDB Lightning 的 [Logical Import Mode](/tidb-lightning/tidb-lightning-logical-import-mode.md) 大致相同,而比 TiDB Lightning 的 [Physical Import Mode](/tidb-lightning/tidb-lightning-physical-import-mode.md) 低很多。建议用于 1 TB 以内的存量数据迁移。 | ++-------------+----------------------------------------------------------------------+ ## [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) -| 使用场景 | 用于将数据全量导入到 TiDB | -|---|---| -| **上游(输入源文件)** |
  • Dumpling 输出的文件
  • 从 Amazon Aurora 或 Apache Hive 导出的 Parquet 文件
  • CSV 文件
  • 从本地盘或 Amazon S3 云盘读取数据
| -| **下游** | TiDB | -| **主要优势** |
  • 支持快速导入大量数据,实现快速初始化 TiDB 集群的指定表
  • 支持断点续传
  • 支持数据过滤
| -| **使用限制** |
  • 如果使用 [Physical Import Mode](/tidb-lightning/tidb-lightning-physical-import-mode.md) 进行数据导入,TiDB Lightning 运行后,TiDB 集群将无法正常对外提供服务。
  • 如果你不希望 TiDB 集群的对外服务受到影响,可以参考 TiDB Lightning [Logical Import Mode](/tidb-lightning/tidb-lightning-logical-import-mode.md) 中的硬件需求与部署方式进行数据导入。
| ++--------------------+---------------------------------------------------------------+ +| 使用场景 | 用于将数据全量导入到 TiDB | ++====================+===============================================================+ +| 上游(输入源文件) | - Dumpling 输出的文件 | +| | - 从 Amazon Aurora 或 Apache Hive 导出的 Parquet 文件 | +| | - CSV 文件 | +| | - 从本地盘或 Amazon S3 云盘读取数据 | ++--------------------+---------------------------------------------------------------+ +| 下游 | TiDB | ++--------------------+---------------------------------------------------------------+ +| 主要优势 | - 支持快速导入大量数据,实现快速初始化 TiDB 集群的指定表 | +| | - 支持断点续传 | +| | - 支持数据过滤 | ++--------------------+---------------------------------------------------------------+ +| 使用限制 | - 如果使用 [Physical Import Mode](/tidb-lightning/tidb-lightning-physical-import-mode.md) 进行数据导入,TiDB Lightning 运行后,TiDB 集群将无法正常对外提供服务。 | +| | - 如果你不希望 TiDB 集群的对外服务受到影响,可以参考 TiDB Lightning [Logical Import Mode](/tidb-lightning/tidb-lightning-logical-import-mode.md) 中的硬件需求与部署方式进行数据导入。 | ++--------------------+---------------------------------------------------------------+ ## [Dumpling](/dumpling-overview.md) -| 使用场景 | 用于将数据从 MySQL/TiDB 进行全量导出 | -|---|---| -| **上游** | MySQL,TiDB | -| **下游(输出文件)** | SQL,CSV | -| **主要优势** |
  • 支持全新的 table-filter,筛选数据更加方便
  • 支持导出到 Amazon S3 云盘
| -| **使用限制** |
  • 如果导出后计划往非 TiDB 的数据库恢复,建议使用 Dumpling。
  • 如果导出后计划往另一个 TiDB 恢复,建议使用 [BR](/br/backup-and-restore-overview.md)。
| ++-------------------+---------------------------------------------------------------+ +| 使用场景 | 用于将数据从 MySQL/TiDB 进行全量导出 | ++===================+===============================================================+ +| 上游 | MySQL,TiDB | ++-------------------+---------------------------------------------------------------+ +| 下游(输出文件) | SQL,CSV | ++-------------------+---------------------------------------------------------------+ +| 主要优势 | - 支持全新的 table-filter,筛选数据更加方便 | +| | - 支持导出到 Amazon S3 云盘 | ++-------------------+---------------------------------------------------------------+ +| 使用限制 | - 如果导出后计划往非 TiDB 的数据库恢复,建议使用 Dumpling。 | +| | - 如果导出后计划往另一个 TiDB 恢复,建议使用 [BR](/br/backup-and-restore-overview.md)。 | ++-------------------+----------------------------------------------------------------+ ## [TiCDC](/ticdc/ticdc-overview.md) -| 使用场景 | 通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具有将数据还原到与上游任意 TSO 一致状态的能力,支持其他系统订阅数据变更 | -|---|---| -| **上游** | TiDB | -| **下游** | TiDB,MySQL,Kafka,MQ,Confluent,存储服务(如 Amazon S3、GCS、Azure Blob Storage 和 NFS) | -| **主要优势** | 提供开放数据协议 (TiCDC Open Protocol)。| -| **使用限制** | TiCDC 只能同步至少存在一个有效索引的表。暂不支持以下场景:
  • 单独使用 RawKV 的 TiKV 集群。
  • 在 TiDB 中创建 SEQUENCE 的 DDL 操作和 SEQUENCE 函数。
| ++-------------------+---------------------------------------------------------------+ +| 使用场景 | 通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具有将数据还原到与上游任意 TSO 一致状态的能力,支持其他系统订阅数据变更 | ++===================+===============================================================+ +| 上游 | TiDB | ++-------------------+---------------------------------------------------------------+ +| 下游 | TiDB,MySQL,Kafka,MQ,Confluent,存储服务(如 Amazon S3、GCS、Azure Blob Storage 和 NFS) | ++-------------------+---------------------------------------------------------------+ +| 主要优势 | 提供开放数据协议 (TiCDC Open Protocol)。 | ++-------------------+---------------------------------------------------------------+ +| 使用限制 | TiCDC 只能同步至少存在一个有效索引的表。暂不支持以下场景: | +| | - 单独使用 RawKV 的 TiKV 集群。 | +| | - 在 TiDB 中创建 SEQUENCE 的 DDL 操作和 SEQUENCE 函数。 | ++-------------------+---------------------------------------------------------------+ ## [Backup & Restore (BR)](/br/backup-and-restore-overview.md) -| 使用场景 | 通过对大数据量的 TiDB 集群进行数据备份和恢复,实现数据迁移 | -|---|---| -| **上游** | TiDB | -| **下游(输出文件)** | SST,backup.meta 文件,backup.lock 文件 | -| **主要优势** |
  • 适用于向另一个 TiDB 迁移数据。
  • 支持数据冷备份到外部存储,可以用于灾备恢复。
| -| **使用限制** |
  • BR 恢复到 TiCDC / Drainer 的上游集群时,恢复数据无法由 TiCDC / Drainer 同步到下游。
  • BR 只支持在 `new_collations_enabled_on_first_bootstrap` 开关值相同的集群之间进行操作。
| ++-------------------+---------------------------------------------------------------+ +| 使用场景 | 通过对大数据量的 TiDB 集群进行数据备份和恢复,实现数据迁移 | ++===================+===============================================================+ +| 上游 | TiDB | ++-------------------+---------------------------------------------------------------+ +| 下游(输出文件) | SST,`backup.meta` 文件,`backup.lock` 文件 | ++-------------------+---------------------------------------------------------------+ +| 主要优势 | - 适用于向另一个 TiDB 迁移数据。 | +| | - 支持数据冷备份到外部存储,可以用于灾备恢复。 | ++-------------------+---------------------------------------------------------------+ +| 使用限制 | - BR 恢复到 TiCDC / Drainer 的上游集群时,恢复数据无法由 TiCDC / Drainer 同步到下游。 | +| | - BR 只支持在 `new_collations_enabled_on_first_bootstrap` 开关值相同的集群之间进行操作。 | ++-------------------+---------------------------------------------------------------+ ## [sync-diff-inspector](/sync-diff-inspector/sync-diff-inspector-overview.md) -| 使用场景 | 用于校验 MySQL/TiDB 中两份数据的一致性 | -|---|---| -| **上游** | TiDB,MySQL | -| **下游** | TiDB,MySQL | -| **主要优势** | 提供了修复数据的功能,适用于修复少量不一致的数据。| -| **使用限制** |
  • 对于 MySQL 和 TiDB 之间的数据同步不支持在线校验。
  • 不支持 JSON、BIT、BINARY、BLOB 等类型的数据。
| ++-------------------+---------------------------------------------------------------+ +| 使用场景 | 用于校验 MySQL/TiDB 中两份数据的一致性 | ++===================+===============================================================+ +| 上游 | TiDB,MySQL | ++-------------------+---------------------------------------------------------------+ +| 下游 | TiDB,MySQL | ++-------------------+---------------------------------------------------------------+ +| 主要优势 | 提供了修复数据的功能,适用于修复少量不一致的数据。 | ++-------------------+---------------------------------------------------------------+ +| 使用限制 | - 对于 MySQL 和 TiDB 之间的数据同步不支持在线校验。 | +| | - 不支持 JSON、BIT、BINARY、BLOB 等类型的数据。 | ++-------------------+---------------------------------------------------------------+ ## 使用 TiUP 快速安装 diff --git a/minimal-deployment-topology.md b/minimal-deployment-topology.md index 409d0d217a5b..b34f93abf6f1 100644 --- a/minimal-deployment-topology.md +++ b/minimal-deployment-topology.md @@ -9,12 +9,23 @@ summary: 介绍 TiDB 集群的最小拓扑。 ## 拓扑信息 -|实例 | 个数 | 物理机配置 | IP |配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiDB |2 | 16 VCore 32 GiB
100 GiB 用于存储| 10.0.1.1
10.0.1.2 | 默认端口
全局目录配置 | -| PD | 3 | 4 VCore 8 GiB
100 GiB 用于存储|10.0.1.4
10.0.1.5
10.0.1.6 | 默认端口
全局目录配置 | -| TiKV | 3 | 16 VCore 32 GiB
2 TiB (NVMe SSD) 用于存储 | 10.0.1.7
10.0.1.8
10.0.1.9 | 默认端口
全局目录配置 | -| Monitoring & Grafana | 1 | 4 VCore 8 GiB
500 GiB (SSD) 用于存储 | 10.0.1.10 | 默认端口
全局目录配置 | ++---------------+--------+----------------------+--------------+--------------------------+ +| 实例 | 个数 | 物理机配置 | IP | 配置 | ++===============+========+======================+==============+==========================+ +| TiDB | 2 | 16 VCore 32 GiB | 10.0.1.1 | 默认端口,全局目录配置 | +| | | 100 GiB 用于存储 | 10.0.1.2 | | ++---------------+--------+----------------------+--------------+--------------------------+ +| PD | 3 | 4 VCore 8 GiB | 10.0.1.4 | 默认端口,全局目录配置 | +| | | 100 GiB 用于存储 | 10.0.1.5 | | +| | | | 10.0.1.6 | | ++---------------+--------+----------------------+--------------+--------------------------+ +| TiKV | 3 | 16 VCore 32 GiB | 10.0.1.7 | 默认端口,全局目录配置 | +| | | 2 TiB (NVMe SSD) 用于存储 | 10.0.1.8 | | +| | | | 10.0.1.9 | | ++---------------+--------+----------------------+--------------+--------------------------+ +| Monitoring & Grafana | 1 | 4 VCore 8 GiB | 10.0.1.10 | 默认端口,全局目录配置 | +| | | 500 GiB (SSD) 用于存储 | | | ++---------------+--------+----------------------+--------------+--------------------------+ ### 拓扑模版 diff --git a/oracle-functions-to-tidb.md b/oracle-functions-to-tidb.md index 773572b29dd9..d7c20ee12d13 100644 --- a/oracle-functions-to-tidb.md +++ b/oracle-functions-to-tidb.md @@ -15,34 +15,69 @@ summary: 了解 Oracle 与 TiDB 函数和语法差异对照。 下表列出了 Oracle 与 TiDB 部分函数的对照表。 -| 函数 | Oracle 语法 | TiDB 语法 | 说明 | -|---|---|---|---| -| 转换数据类型 |
  • `TO_NUMBER(key)`
  • `TO_CHAR(key)`
  • | `CONVERT(key,dataType)` | TiDB 支持转换为下面类型:`BINARY`、`CHAR`、`DATE`、`DATETIME`、`TIME`、`SIGNED INTEGER`、`UNSIGNED INTEGER` 和 `DECIMAL`。 | -| 日期类型转换为字符串类型 |
  • `TO_CHAR(SYSDATE,'yyyy-MM-dd hh24:mi:ss')`
  • `TO_CHAR(SYSDATE,'yyyy-MM-dd')`
  • |
  • `DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')`
  • `DATE_FORMAT(NOW(),'%Y-%m-%d')`
  • | TiDB 的格式化字符串大小写敏感。 | -| 字符串类型转换为日期类型 |
  • `TO_DATE('2021-05-28 17:31:37','yyyy-MM-dd hh24:mi:ss')`
  • `TO_DATE('2021-05-28','yyyy-MM-dd hh24:mi:ss')`
  • |
  • `STR_TO_DATE('2021-05-28 17:31:37','%Y-%m-%d %H:%i:%s')`
  • `STR_TO_DATE('2021-05-28','%Y-%m-%d%T')`
  • | TiDB 的格式化字符串大小写敏感。 | -| 获取系统当前时间(精确到秒)| `SYSDATE` | `NOW()` | | -| 获取当前时间(精确到微秒)| `SYSTIMESTAMP` | `CURRENT_TIMESTAMP(6)` | | -| 获取两个日期相差的天数 | `date1 - date2` | `DATEDIFF(date1, date2)` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 函数 | Oracle 语法 | TiDB 语法 | 说明 | ++================+==============================+============================+=====================+ +| 转换数据类型 | - `TO_NUMBER(key)` | `CONVERT(key,dataType)` | TiDB 支持转换为下面类型:`BINARY`、`CHAR`、`DATE`、`DATETIME`、`TIME`、`SIGNED INTEGER`、`UNSIGNED INTEGER` 和 `DECIMAL`。 | +| | - `TO_CHAR(key)` | | | ++----------------+------------------------------+----------------------------+---------------------+ +| 日期类型转换为字符串类型 | - `TO_CHAR(SYSDATE,'yyyy-MM-dd hh24:mi:ss')` | - `DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')` | TiDB 的格式化字符串大小写敏感。 | +| | - `TO_CHAR(SYSDATE,'yyyy-MM-dd')` | - `DATE_FORMAT(NOW(),'%Y-%m-%d')` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 字符串类型转换为日期类型 | - `TO_DATE('2021-05-28 17:31:37','yyyy-MM-dd hh24:mi:ss')` | - `STR_TO_DATE('2021-05-28 17:31:37','%Y-%m-%d %H:%i:%s')` | TiDB 的格式化字符串大小写敏感。 | +| | - `TO_DATE('2021-05-28','yyyy-MM-dd hh24:mi:ss')` | - `STR_TO_DATE('2021-05-28','%Y-%m-%d%T')` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取系统当前时间(精确到秒) | `SYSDATE` | `NOW()` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取当前时间(精确到微秒) | `SYSTIMESTAMP` | `CURRENT_TIMESTAMP(6)` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取两个日期相差的天数 | `date1 - date2` | `DATEDIFF(date1, date2)` | | ++----------------+------------------------------+----------------------------+---------------------+ | 获取两个日期间隔月份 | `MONTHS_BETWEEN(ENDDATE,SYSDATE)` | `TIMESTAMPDIFF(MONTH,SYSDATE,ENDDATE)` | Oracle 中 `MONTHS_BETWEEN()` 函数与 TiDB 中 `TIMESTAMPDIFF()` 函数的结果会有误差。`TIMESTAMPDIFF()` 只保留整数月。使用时需要注意,两个函数的参数位置相反。 | -| 日期增加/减少 n 天 | `DATEVAL + n` | `DATE_ADD(dateVal,INTERVAL n DAY)` | `n` 可为负数。| -| 日期增加/减少 n 月 | `ADD_MONTHS(dateVal,n)`| `DATE_ADD(dateVal,INTERVAL n MONTH)` | `n` 可为负数。| -| 获取日期到日 | `TRUNC(SYSDATE)` |
  • `CAST(NOW() AS DATE)`
  • `DATE_FORMAT(NOW(),'%Y-%m-%d')`
  • | TiDB 中 `CAST` 与 `DATE_FORMAT` 结果一致。| ++----------------+------------------------------+----------------------------+---------------------+ +| 日期增加/减少 n 天 | `DATEVAL + n` | `DATE_ADD(dateVal,INTERVAL n DAY)` | `n` 可为负数。 | ++----------------+------------------------------+----------------------------+---------------------+ +| 日期增加/减少 n 月 | `ADD_MONTHS(dateVal,n)` | `DATE_ADD(dateVal,INTERVAL n MONTH)` | `n` 可为负数。 | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取日期当日 | `TRUNC(SYSDATE)` | - `CAST(NOW() AS DATE)` | TiDB 中 `CAST` 与 `DATE_FORMAT` 结果一致。| +| | | - `DATE_FORMAT(NOW(),'%Y-%m-%d')` | | ++----------------+------------------------------+----------------------------+---------------------+ | 获取日期当月第一天 | `TRUNC(SYSDATE,'mm')` | `DATE_ADD(CURDATE(),interval - day(CURDATE()) + 1 day)` | | -| 截取数据 | `TRUNC(2.136) = 2`
    `TRUNC(2.136,2) = 2.13` | `TRUNCATE(2.136,0) = 2`
    `TRUNCATE(2.136,2) = 2.13` | 数据精度保留,直接截取相应小数位,不涉及四舍五入。 | -| 获取序列下一个值 | `sequence_name.NEXTVAL` | `NEXTVAL(sequence_name)` | | -| 获取随机序列值 | `SYS_GUID()` | `UUID()` | TiDB 返回一个通用唯一识别码 (UUID)。| -| 左/右外连接 | `SELECT * FROM a, b WHERE a.id = b.id(+);`
    `SELECT * FROM a, b WHERE a.id(+) = b.id;` | `SELECT * FROM a LEFT JOIN b ON a.id = b.id;`
    `SELECT * FROM a RIGHT JOIN b ON a.id = b.id;` | 关联查询时,TiDB 不支持使用 (+) 实现左/右关联,只能通过 `LEFT JOIN` 或 `RIGHT JOIN` 实现。| ++----------------+------------------------------+----------------------------+---------------------+ +| 截取数据 | `TRUNC(2.136) = 2` | `TRUNCATE(2.136,0) = 2` | 数据精度保留,直接截取相应小数位,不涉及四舍五入。 | +| | `TRUNC(2.136,2) = 2.13` | `TRUNCATE(2.136,2) = 2.13` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取序列下一个值 | `sequence_name.NEXTVAL` | `NEXTVAL(sequence_name)` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取随机序列值 | `SYS_GUID()` | `UUID()` | TiDB 返回一个通用唯一识别码 (UUID)。| ++----------------+------------------------------+----------------------------+---------------------+ +| 左/右外连接 | `SELECT * FROM a, b WHERE a.id = b.id(+);` | `SELECT * FROM a LEFT JOIN b ON a.id = b.id;` | 关联查询时,TiDB 不支持使用 (+) 实现左/右关联,只能通过 `LEFT JOIN` 或 `RIGHT JOIN` 实现。| +| | `SELECT * FROM a, b WHERE a.id(+) = b.id;` | `SELECT * FROM a RIGHT JOIN b ON a.id = b.id;` | | ++----------------+------------------------------+----------------------------+---------------------+ | `NVL()` | `NVL(key,val)` | `IFNULL(key,val)` | 如果该字段值为 `NULL`,则返回 val 值,否则返回该字段的值。 | ++----------------+------------------------------+----------------------------+---------------------+ | `NVL2()` | `NVL2(key, val1, val2)` | `IF(key is NULL, val1, val2)` | 如果该字段值非 `NULL`,则返回 val1 值,否则返回 val2 值。| -| `DECODE()` |
  • `DECODE(key,val1,val2,val3)`
  • `DECODE(value,if1,val1,if2,val2,...,ifn,valn,val)`
  • |
  • `IF(key=val1,val2,val3)`
  • `CASE WHEN value=if1 THEN val1 WHEN value=if2 THEN val2,...,WHEN value=ifn THEN valn ELSE val END`
  • |
  • 如果该字段值等于 val1,则返回 val2,否则返回 val3。
  • 当该字段值满足条件 1 (if1) 时,返回 val1,满足条件 2 (if2) 时,返回 val2,满足条件 3 (if3) 时,返回 val3。
  • | -| 拼接字符串 `a` 和 `b` | 'a' \|\| 'b' | `CONCAT('a','b')` | | -| 获取字符串长度 | `LENGTH(str)` | `CHAR_LENGTH(str)` | | -| 获取子串 | `SUBSTR('abcdefg',0,2) = 'ab'`
    `SUBSTR('abcdefg',1,2) = 'ab'` | `SUBSTRING('abcdefg',0,2) = ''`
    `SUBSTRING('abcdefg',1,2) = 'ab'` |
  • Oracle 中起始位置 0 与 1 作用一样。
  • TiDB 中 0 开始获取的子串为空,若需从字符串的起始位置开始,则应从 1 开始。
  • | ++----------------+------------------------------+----------------------------+---------------------+ +| `DECODE()` | `DECODE(key,val1,val2,val3)` | `IF(key=val1,val2,val3)` | - 如果该字段值等于 val1,则返回 val2,否则返回 val3。 | +| | `DECODE(value,if1,val1,if2,val2,...,ifn,valn,val)` | `CASE WHEN value=if1 THEN val1 WHEN value=if2 THEN val2,...,WHEN value=ifn THEN valn ELSE val END` | - 当该字段值满足条件 1 (if1) 时,返回 val1,满足条件 2 (if2) 时,返回 val2,满足条件 3 (if3) 时,返回 val3。 | ++----------------+------------------------------+----------------------------+---------------------+ +| 拼接字符串 `a` 和 `b` | `'a' \|\| 'b'` | `CONCAT('a','b')` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取字符串长度 | `LENGTH(str)` | `CHAR_LENGTH(str)` | | ++----------------+------------------------------+----------------------------+---------------------+ +| 获取子串 | `SUBSTR('abcdefg',0,2) = 'ab'` | `SUBSTRING('abcdefg',0,2) = ''` | - Oracle 中起始位置 0 与 1 作用一样。 | +| | `SUBSTR('abcdefg',1,2) = 'ab'` | `SUBSTRING('abcdefg',1,2) = 'ab'` | - TiDB 中 0 开始获取的子串为空,若需从字符串的起始位置开始,则应从 1 开始。 | ++----------------+------------------------------+----------------------------+---------------------+ | 字符串在源字符串中的位置 | `INSTR('abcdefg','b',1,1)` | `INSTR('abcdefg','b')` | 从字符串 `'abcdefg'` 第一个字符开始查询,返回 `'b'` 字符串第一次出现的位置。 | ++----------------+------------------------------+----------------------------+---------------------+ | 字符串在源字符串中的位置 | `INSTR('stst','s',1,2)` | `LENGTH(SUBSTRING_INDEX('stst','s',2)) + 1` | 从字符串 `'stst'` 第一个字符开始查找,返回 `'s'` 字符第二次出现的位置。 | ++----------------+------------------------------+----------------------------+---------------------+ | 字符串在源字符串中的位置 | `INSTR('abcabc','b',2,1)` | `LOCATE('b','abcabc',2)` | 从字符串 `'abcabc'` 第二个字符开始查询,返回 `'b'` 字符第一次出现的位置。 | ++----------------+------------------------------+----------------------------+---------------------+ | 列合并为行 | `LISTAGG(CONCAT(E.dimensionid,'---',E.DIMENSIONNAME),'***') within GROUP(ORDER BY DIMENSIONNAME)` | `GROUP_CONCAT(CONCAT(E.dimensionid,'---',E.DIMENSIONNAME) ORDER BY DIMENSIONNAME SEPARATOR '***')` | 将一列字段合并为一行并根据 `***` 符号进行分割。 | ++----------------+------------------------------+----------------------------+---------------------+ | ASCII 值转化为对应字符 | `CHR(n)` | `CHAR(n)` | Oracle 中制表符 (`CHR(9)`)、换行符 (`CHR(10)`)、回车符 (`CHR(13)`) 对应 TiDB 中的 `CHAR(9)`、`CHAR(10)`、`CHAR(13)`。 | ++----------------+------------------------------+----------------------------+---------------------+ ## 语法差异 diff --git a/production-deployment-using-tiup.md b/production-deployment-using-tiup.md index 9af264164bca..63ce99317a85 100644 --- a/production-deployment-using-tiup.md +++ b/production-deployment-using-tiup.md @@ -274,12 +274,12 @@ alertmanager_servers: | 场景 | 配置任务 | 配置文件模板 | 拓扑说明 | | :-- | :-- | :-- | :-- | -| OLTP 业务 | [部署最小拓扑架构](/minimal-deployment-topology.md) | [简单最小配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-mini.yaml)
    [详细最小配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-mini.yaml) | 最小集群拓扑,包括 tidb-server、tikv-server、pd-server。 | -| HTAP 业务 | [部署 TiFlash 拓扑架构](/tiflash-deployment-topology.md) | [简单 TiFlash 配置模版](https://github.com/pingcap/docs/blob/master/config-templates/simple-tiflash.yaml)
    [详细 TiFlash 配置模版](https://github.com/pingcap/docs/blob/master/config-templates/complex-tiflash.yaml) | 在最小拓扑的基础上部署 TiFlash。TiFlash 是列式存储引擎,已经逐步成为集群拓扑的标配。| -| 使用 [TiCDC](/ticdc/ticdc-overview.md) 进行增量同步 | [部署 TiCDC 拓扑架构](/ticdc-deployment-topology.md) | [简单 TiCDC 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-cdc.yaml)
    [详细 TiCDC 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-cdc.yaml) | 在最小拓扑的基础上部署 TiCDC。TiCDC 支持多种下游:TiDB、MySQL、Kafka、MQ、Confluent 和存储服务。 | -| 使用 [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 进行增量同步 | [部署 TiDB Binlog 拓扑架构](/tidb-binlog-deployment-topology.md) | [简单 TiDB Binlog 配置模板(下游为 MySQL)](https://github.com/pingcap/docs/blob/master/config-templates/simple-tidb-binlog.yaml)
    [简单 TiDB Binlog 配置模板(下游为 file)](https://github.com/pingcap/docs/blob/master/config-templates/simple-file-binlog.yaml)
    [详细 TiDB Binlog 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-tidb-binlog.yaml) | 在最小拓扑的基础上部署 TiDB Binlog。 | -| 使用 Spark 的 OLAP 业务 | [部署 TiSpark 拓扑架构](/tispark-deployment-topology.md) | [简单 TiSpark 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-tispark.yaml)
    [详细 TiSpark 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-tispark.yaml) | 在最小拓扑的基础上部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对 TiSpark 的支持目前为实验特性。 | -| 单台机器,多个实例 | [混合部署拓扑架构](/hybrid-deployment-topology.md) | [简单混部配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-multi-instance.yaml)
    [详细混部配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-multi-instance.yaml) | 也适用于单机多实例需要额外增加目录、端口、资源配比、label 等配置的场景。 | +| OLTP 业务 | [部署最小拓扑架构](/minimal-deployment-topology.md) | [简单最小配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-mini.yaml),[详细最小配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-mini.yaml) | 最小集群拓扑,包括 tidb-server、tikv-server、pd-server。 | +| HTAP 业务 | [部署 TiFlash 拓扑架构](/tiflash-deployment-topology.md) | [简单 TiFlash 配置模版](https://github.com/pingcap/docs/blob/master/config-templates/simple-tiflash.yaml),[详细 TiFlash 配置模版](https://github.com/pingcap/docs/blob/master/config-templates/complex-tiflash.yaml) | 在最小拓扑的基础上部署 TiFlash。TiFlash 是列式存储引擎,已经逐步成为集群拓扑的标配。| +| 使用 [TiCDC](/ticdc/ticdc-overview.md) 进行增量同步 | [部署 TiCDC 拓扑架构](/ticdc-deployment-topology.md) | [简单 TiCDC 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-cdc.yaml),[详细 TiCDC 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-cdc.yaml) | 在最小拓扑的基础上部署 TiCDC。TiCDC 支持多种下游:TiDB、MySQL、Kafka、MQ、Confluent 和存储服务。 | +| 使用 [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 进行增量同步 | [部署 TiDB Binlog 拓扑架构](/tidb-binlog-deployment-topology.md) | [简单 TiDB Binlog 配置模板(下游为 MySQL)](https://github.com/pingcap/docs/blob/master/config-templates/simple-tidb-binlog.yaml),[简单 TiDB Binlog 配置模板(下游为 file)](https://github.com/pingcap/docs/blob/master/config-templates/simple-file-binlog.yaml),[详细 TiDB Binlog 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-tidb-binlog.yaml) | 在最小拓扑的基础上部署 TiDB Binlog。 | +| 使用 Spark 的 OLAP 业务 | [部署 TiSpark 拓扑架构](/tispark-deployment-topology.md) | [简单 TiSpark 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-tispark.yaml),[详细 TiSpark 配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-tispark.yaml) | 在最小拓扑的基础上部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对 TiSpark 的支持目前为实验特性。 | +| 单台机器,多个实例 | [混合部署拓扑架构](/hybrid-deployment-topology.md) | [简单混部配置模板](https://github.com/pingcap/docs/blob/master/config-templates/simple-multi-instance.yaml),[详细混部配置模板](https://github.com/pingcap/docs/blob/master/config-templates/complex-multi-instance.yaml) | 也适用于单机多实例需要额外增加目录、端口、资源配比、label 等配置的场景。 | | 跨机房部署 TiDB 集群 | [跨机房部署拓扑架构](/geo-distributed-deployment-topology.md) | [跨机房配置模板](https://github.com/pingcap/docs/blob/master/config-templates/geo-redundancy-deployment.yaml) | 以典型的两地三中心架构为例,介绍跨机房部署架构,以及需要注意的关键设置。 | > **注意:** diff --git a/quick-start-with-tidb.md b/quick-start-with-tidb.md index a2c24ef85da0..e514c7cb7d8c 100644 --- a/quick-start-with-tidb.md +++ b/quick-start-with-tidb.md @@ -280,13 +280,21 @@ TiDB 是一个分布式系统。最基础的 TiDB 测试集群通常由 2 个 Ti > > 下表中拓扑实例的 IP 为示例 IP。在实际部署时,请替换为实际的 IP。 -| 实例 | 个数 | IP | 配置 | -|:-- | :-- | :-- | :-- | -| TiKV | 3 | 10.0.1.1
    10.0.1.1
    10.0.1.1 | 避免端口和目录冲突 | -| TiDB | 1 | 10.0.1.1 | 默认端口
    全局目录配置 | -| PD | 1 | 10.0.1.1 | 默认端口
    全局目录配置 | -| TiFlash | 1 | 10.0.1.1 | 默认端口
    全局目录配置 | -| Monitor | 1 | 10.0.1.1 | 默认端口
    全局目录配置 | ++----------+---------+-------------------+-----------------------------------+ +| 实例 | 个数 | IP | 配置 | ++==========+=========+===================+===================================+ +| TiKV | 3 | 10.0.1.1 | 避免端口和目录冲突 | +| TiKV | | 10.0.1.1 | | +| TiKV | | 10.0.1.1 | | ++----------+---------+-------------------+-----------------------------------+ +| TiDB | 1 | 10.0.1.1 | 默认端口,全局目录配置 | ++----------+---------+-------------------+-----------------------------------+ +| PD | 1 | 10.0.1.1 | 默认端口,全局目录配置 | ++----------+---------+-------------------+-----------------------------------+ +| TiFlash | 1 | 10.0.1.1 | 默认端口,全局目录配置 | ++----------+---------+-------------------+-----------------------------------+ +| Monitor | 1 | 10.0.1.1 | 默认端口,全局目录配置 | ++----------+---------+-------------------+-----------------------------------+ 部署主机软件和环境要求: diff --git a/releases/release-6.0.0-dmr.md b/releases/release-6.0.0-dmr.md index 8d0bd0010ae3..3af1d3405896 100644 --- a/releases/release-6.0.0-dmr.md +++ b/releases/release-6.0.0-dmr.md @@ -284,49 +284,100 @@ v6.0.0 是 DMR 版本,版本名称为 6.0.0-DMR。 ### 系统变量 -| 变量名 | 修改类型 | 描述 | -|:---|:---|:---| -| `placement_checks` | 删除 | 该变量用于控制 DDL 语句是否验证通过 [Placement Rules in SQL](/placement-rules-in-sql.md) 指定的放置规则。已被 `tidb_placement_mode` 替代。 | ++-------------------------+-----------+-----------------------------------------------------------+ +| 变量名 | 修改类型 | 描述 | ++=========================+===========+===========================================================+ +| `placement_checks` | 删除 | 该变量用于控制 DDL 语句是否验证通过 [Placement Rules in SQL](/placement-rules-in-sql.md) 指定的放置规则。已被 `tidb_placement_mode` 替代。 | ++-------------------------+-----------+-----------------------------------------------------------+ | `tidb_enable_alter_placement` | 删除 | 该变量用于开启 [Placement Rules in SQL](/placement-rules-in-sql.md)。 | -| `tidb_mem_quota_hashjoin`
    `tidb_mem_quota_indexlookupjoin`
    `tidb_mem_quota_indexlookupreader`
    `tidb_mem_quota_mergejoin`
    `tidb_mem_quota_sort`
    `tidb_mem_quota_topn` | 删除 | 从 TiDB v5.0.0 起,这几个变量被 `tidb_mem_quota_query` 取代并从系统变量文档中移除,为了保证兼容性代码中还保留。从 TiDB v6.0.0 起,代码中也正式移除这些变量。 | ++-------------------------+-----------+-----------------------------------------------------------+ +| - `tidb_mem_quota_hashjoin` | 删除 | 从 TiDB v5.0.0 起,这几个变量被 `tidb_mem_quota_query` 取代并从系统变量文档中移除,为了保证兼容性代码中还保留。从 TiDB v6.0.0 起,代码中也正式移除这些变量。 | +| - `tidb_mem_quota_indexlookupjoin` | | | +| - `tidb_mem_quota_indexlookupreader` | | | +| - `tidb_mem_quota_mergejoin` | | | +| - `tidb_mem_quota_sort` | | | +| - `tidb_mem_quota_topn` | | | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_enable_mutation_checker`](/system-variables.md#tidb_enable_mutation_checker-从-v600-版本开始引入) | 新增 | 设置是否开启 mutation checker,默认开启。如果从低于 v6.0.0 的版本升级到 v6.0.0,升级后默认关闭。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_ignore_prepared_cache_close_stmt`](/system-variables.md#tidb_ignore_prepared_cache_close_stmt-从-v600-版本开始引入) | 新增 | 设置是否忽略关闭 Prepared Statement 的指令,默认值为 `OFF`。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_mem_quota_binding_cache`](/system-variables.md#tidb_mem_quota_binding_cache-从-v600-版本开始引入) | 新增 | 设置存放 `binding` 的缓存的内存使用阈值,默认值为 `67108864` (64 MiB)。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_placement_mode`](/system-variables.md#tidb_placement_mode-从-v600-版本开始引入) | 新增 | 控制 DDL 语句是否忽略 [Placement Rules in SQL](/placement-rules-in-sql.md) 指定的放置规则。默认值为 `strict`,表示不忽略。 | -| [`tidb_rc_read_check_ts`](/system-variables.md#tidb_rc_read_check_ts-从-v600-版本开始引入) | 新增 |
    • 优化事务内读语句延迟。如果读写冲突较为严重,开启此变量会增加额外开销和延迟,造成性能回退。默认关闭。
    • 该变量与 [replica-read](/system-variables.md#tidb_replica_read-从-v40-版本开始引入) 尚不兼容,开启 `tidb_rc_read_check_ts` 的读请求无法使用 [replica-read](/system-variables.md#tidb_replica_read-从-v40-版本开始引入),请勿同时开启两个变量。
    | ++-------------------------+-----------+-----------------------------------------------------------+ +| [`tidb_rc_read_check_ts`](/system-variables.md#tidb_rc_read_check_ts-从-v600-版本开始引入) | 新增 | - 优化事务内读语句延迟。如果读写冲突较为严重,开启此变量会增加额外开销和延迟,造成性能回退。默认关闭。 | +| | | - 该变量与 [replica-read](/system-variables.md#tidb_replica_read-从-v40-版本开始引入) 尚不兼容,开启 `tidb_rc_read_check_ts` 的读请求无法使用 [replica-read](/system-variables.md#tidb_replica_read-从-v40-版本开始引入),请勿同时开启两个变量。| ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_sysdate_is_now`](/system-variables.md#tidb_sysdate_is_now-从-v600-版本开始引入) | 新增 | 控制 `SYSDATE` 函数是否替换为 `NOW` 函数,效果与 MySQL 中的 [`sysdate-is-now`](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_sysdate-is-now) 一致。默认值为 `OFF`。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_table_cache_lease`](/system-variables.md#tidb_table_cache_lease-从-v600-版本开始引入) | 新增 | 用来控制缓存表(新增 feature)的 lease 时间,默认值是 3 秒。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_top_sql_max_meta_count`](/system-variables.md#tidb_top_sql_max_meta_count-从-v600-版本开始引入) | 新增 | 用于控制 [Top SQL](/dashboard/top-sql.md) 每分钟最多收集 SQL 语句类型的数量,默认值为 `5000`。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_top_sql_max_time_series_count`](/system-variables.md#tidb_top_sql_max_time_series_count-从-v600-版本开始引入) | 新增 | 用于控制 [Top SQL](/dashboard/top-sql.md) 每分钟保留消耗负载最大的前多少条 SQL(即 Top N)的数据,默认值为 `100`。 | ++-------------------------+-----------+-----------------------------------------------------------+ | [`tidb_txn_assertion_level`](/system-variables.md#tidb_txn_assertion_level-从-v600-版本开始引入) | 新增 | 设置 assertion 级别,assertion 是一项在事务提交过程中进行的数据索引一致性校验。默认仅开启对性能影响微小的检查,包含大部分检查效果。如果从低于 v6.0.0 的版本升级到 v6.0.0,升级后默认关闭检查。 | ++-------------------------+-----------+-----------------------------------------------------------+ ### 配置文件参数 -| 配置文件 | 配置项 | 修改类型 | 描述 | -|:---|:---|:---|:---| -| TiDB | `stmt-summary.enable`
    `stmt-summary.enable-internal-query`
    `stmt-summary.history-size`
    `stmt-summary.max-sql-length`
    `stmt-summary.max-stmt-count`
    `stmt-summary.refresh-interval` | 删除 | 系统表 [statement summary tables](/statement-summary-tables.md) 的相关配置,所有配置项现已移除,统一改成用 SQL variable 控制。 | -| TiDB | [`new_collations_enabled_on_first_bootstrap`](/tidb-configuration-file.md#new_collations_enabled_on_first_bootstrap) | 修改 | 用于开启新的 collation 支持。自 v6.0.0 起默认值从 false 改为 true。该配置项只有在初次初始化集群时生效,初始化集群后,无法通过更改该配置项打开或关闭新的 collation 框架。 | -| TiKV | [`backup.num-threads`](/tikv-configuration-file.md#num-threads-1) | 修改 | 修改可调整范围为 `[1, CPU]`。 | -| TiKV | [`raftstore.apply-max-batch-size`](/tikv-configuration-file.md#apply-max-batch-size) | 修改 | 添加最大值为 `10240`。 | -| TiKV | [`raftstore.raft-max-size-per-msg`](/tikv-configuration-file.md#raft-max-size-per-msg) | 修改 |
    • 修改最小值(由 `0` 修改为大于 `0`)
    • 添加最大值为 `3GB`
    • 添加单位(由 `MB` 增加为 KB\|MB\|GB
    | -| TiKV | [`raftstore.store-max-batch-size`](/tikv-configuration-file.md#store-max-batch-size) | 修改 | 添加最大值为 `10240`。 | -| TiKV | [`readpool.unified.max-thread-count`](/tikv-configuration-file.md#max-thread-count) | 修改 | 修改可调整范围为 `[min-thread-count, MAX(4, CPU)]`。 | -| TiKV | [`rocksdb.enable-pipelined-write`](/tikv-configuration-file.md#enable-pipelined-write) | 修改 | 修改默认值为 `false`。开启时会使用旧的 Pipelined Write,关闭时会使用新的 Pipelined Commit 机制。 | -| TiKV | [`rocksdb.max-background-flushes`](/tikv-configuration-file.md#max-background-flushes) | 修改 | 在 CPU 核数为 10 时修改默认值为 `3`,在 CPU 核数量为 8 时默认为 `2`。 | -| TiKV | [`rocksdb.max-background-jobs`](/tikv-configuration-file.md#max-background-jobs) | 修改 | 在 CPU 核数为 10 时修改默认值为 `9`,在 CPU 核数量为 8 时默认为 `7`。 | -| TiFlash | [`profiles.default.dt_enable_logical_split`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 存储引擎的 segment 分裂是否使用逻辑分裂。自 v6.0.0 起默认值从 `true` 改为 `false`。 | -| TiFlash | [`profiles.default.enable_elastic_threadpool`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 是否启用可自动扩展的线程池。自 v6.0.0 起默认值从 `false` 改为 `true`。 | -| TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 该配置项控制 TiFlash 存储引擎的校验功能,自 v6.0.0 起默认值从 `2` 改为 `3`。`format_version` 设置为 `3` 时, 支持对 TiFlash 的所有数据的读操作进行一致性校验,避免由于硬件故障而读到错误的数据。
    注意:新版本数据格式不支持原地降级为早于 5.4 的版本。 | -| TiDB | [`pessimistic-txn.pessimistic-auto-commit`](/tidb-configuration-file.md#pessimistic-auto-commit) | 新增 | 用来控制开启全局悲观事务模式下 (`tidb_txn_mode='pessimistic'`) 时,自动提交的事务使用的事务模式。 | -| TiKV | [`pessimistic-txn.in-memory`](/tikv-configuration-file.md#in-memory-从-v600-版本开始引入) | 新增 | 开启内存悲观锁功能。开启该功能后,悲观事务会尽可能在 TiKV 内存中存储悲观锁,而不将悲观锁写入磁盘,也不将悲观锁同步给其他副本,从而提升悲观事务的性能。但有较低概率出现悲观锁丢失的情况,可能会导致悲观事务提交失败。该参数默认值为 `true`。 | -| TiKV | [`quota`](/tikv-configuration-file.md#quota) | 新增 | 新增前台限流相关的配置项,可以限制前台各类请求所占用的资源。前台限流功能为实验特性,默认关闭。新增的相关配置项为 `foreground-cpu-time`、`foreground-write-bandwidth`、`foreground-read-bandwidth`、`max-delay-duration`。 | -| TiFlash | [`profiles.default.dt_compression_method`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | TiFlash 存储引擎的压缩算法,支持 LZ4、zstd 和 LZ4HC,大小写不敏感。默认使用 LZ4 算法。 | -| TiFlash | [`profiles.default.dt_compression_level`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | TiFlash 存储引擎的压缩级别,默认值 `1`。 | -| DM | [`loaders..import-mode`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 该配置项控制全量阶段数据导入的模式。自 v6.0.0 起全量阶段默认使用 TiDB Lightning 的 TiDB-backend 方式导入,替换原来的 Loader 组件。此变动为内部组件替换,对日常使用没有明显影响。
    默认值 `sql` 表示启用 tidb-backend 组件,可能在极少数场景下存在未能完全兼容的情况,可以通过配置为 "loader" 回退。 | -| DM | [`loaders..on-duplicate`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 该配置项控制全量导入阶段出现的冲突数据的解决方式。默认值为 `replace`,覆盖重复数据。 | -| TiCDC | [`dial-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 和下游 Kafka 建立连接的超时时长,默认值为 `10s` | -| TiCDC | [`read-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 读取下游 Kafka 返回的 response 的超时时长,默认值 `10s` | -| TiCDC | [`write-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 向下游 Kafka 发送 request 的超时时长,默认值为 `10s` | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| 配置文件 | 配置项 | 修改类型 | 描述 | ++============+=============================+===========+===========================================================+ +| TiDB | - `stmt-summary.enable` | 删除 | 系统表 [statement summary tables](/statement-summary-tables.md) 的相关配置,所有配置项现已移除,统一改成用 SQL variable 控制。 | +| | - `stmt-summary.enable-internal-query` | | | +| | - `stmt-summary.history-size` | | | +| | - `stmt-summary.max-sql-length` | | | +| | - `stmt-summary.max-stmt-count` | | | +| | - `stmt-summary.refresh-interval` | | | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiDB | [`new_collations_enabled_on_first_bootstrap`](/tidb-configuration-file.md#new_collations_enabled_on_first_bootstrap) | 修改 | 用于开启新的 collation 支持。自 v6.0.0 起默认值从 false 改为 true。该配置项只有在初次初始化集群时生效,初始化集群后,无法通过更改该配置项打开或关闭新的 collation 框架。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`backup.num-threads`](/tikv-configuration-file.md#num-threads-1) | 修改 | 修改可调整范围为 `[1, CPU]`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`raftstore.apply-max-batch-size`](/tikv-configuration-file.md#apply-max-batch-size) | 修改 | 添加最大值为 `10240`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`raftstore.raft-max-size-per-msg`](/tikv-configuration-file.md#raft-max-size-per-msg) | 修改 | - 修改最小值(由 `0` 修改为大于 `0`) | +| | | | - 添加最大值为 `3GB` | +| | | | - 添加单位(由 `MB` 增加为 `KB\|MB\|GB` | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`raftstore.store-max-batch-size`](/tikv-configuration-file.md#store-max-batch-size) | 修改 | 添加最大值为 `10240`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`readpool.unified.max-thread-count`](/tikv-configuration-file.md#max-thread-count) | 修改 | 修改可调整范围为 `[min-thread-count, MAX(4, CPU)]`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`rocksdb.enable-pipelined-write`](/tikv-configuration-file.md#enable-pipelined-write) | 修改 | 修改默认值为 `false`。开启时会使用旧的 Pipelined Write,关闭时会使用新的 Pipelined Commit 机制。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`rocksdb.max-background-flushes`](/tikv-configuration-file.md#max-background-flushes) | 修改 | 在 CPU 核数为 10 时修改默认值为 `3`,在 CPU 核数量为 8 时默认为 `2`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`rocksdb.max-background-jobs`](/tikv-configuration-file.md#max-background-jobs) | 修改 | 在 CPU 核数为 10 时修改默认值为 `9`,在 CPU 核数量为 8 时默认为 `7`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiFlash | [`profiles.default.dt_enable_logical_split`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 存储引擎的 segment 分裂是否使用逻辑分裂。自 v6.0.0 起默认值从 `true` 改为 `false`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiFlash | [`profiles.default.enable_elastic_threadpool`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 是否启用可自动扩展的线程池。自 v6.0.0 起默认值从 `false` 改为 `true`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 该配置项控制 TiFlash 存储引擎的校验功能,自 v6.0.0 起默认值从 `2` 改为 `3`。`format_version` 设置为 `3` 时, 支持对 TiFlash 的所有数据的读操作进行一致性校验,避免由于硬件故障而读到错误的数据。注意:新版本数据格式不支持原地降级为早于 5.4 的版本。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiDB | [`pessimistic-txn.pessimistic-auto-commit`](/tidb-configuration-file.md#pessimistic-auto-commit) | 新增 | 用来控制开启全局悲观事务模式下 (`tidb_txn_mode='pessimistic'`) 时,自动提交的事务使用的事务模式。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`pessimistic-txn.in-memory`](/tikv-configuration-file.md#in-memory-从-v600-版本开始引入) | 新增 | 开启内存悲观锁功能。开启该功能后,悲观事务会尽可能在 TiKV 内存中存储悲观锁,而不将悲观锁写入磁盘,也不将悲观锁同步给其他副本,从而提升悲观事务的性能。但有较低概率出现悲观锁丢失的情况,可能会导致悲观事务提交失败。该参数默认值为 `true`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiKV | [`quota`](/tikv-configuration-file.md#quota) | 新增 | 新增前台限流相关的配置项,可以限制前台各类请求所占用的资源。前台限流功能为实验特性,默认关闭。新增的相关配置项为 `foreground-cpu-time`、`foreground-write-bandwidth`、`foreground-read-bandwidth`、`max-delay-duration`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiFlash | [`profiles.default.dt_compression_method`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | TiFlash 存储引擎的压缩算法,支持 LZ4、zstd 和 LZ4HC,大小写不敏感。默认使用 LZ4 算法。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiFlash | [`profiles.default.dt_compression_level`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | TiFlash 存储引擎的压缩级别,默认值 `1`。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| DM | [`loaders..import-mode`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 该配置项控制全量阶段数据导入的模式。自 v6.0.0 起全量阶段默认使用 TiDB Lightning 的 TiDB-backend 方式导入,替换原来的 Loader 组件。此变动为内部组件替换,对日常使用没有明显影响。默认值 `sql` 表示启用 tidb-backend 组件,可能在极少数场景下存在未能完全兼容的情况,可以通过配置为 "loader" 回退。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| DM | [`loaders..on-duplicate`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 该配置项控制全量导入阶段出现的冲突数据的解决方式。默认值为 `replace`,覆盖重复数据。 | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiCDC | [`dial-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 和下游 Kafka 建立连接的超时时长,默认值为 `10s` | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiCDC | [`read-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 读取下游 Kafka 返回的 response 的超时时长,默认值 `10s` | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ +| TiCDC | [`write-timeout`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 向下游 Kafka 发送 request 的超时时长,默认值为 `10s` | ++------------+-----------------------------+-----------+-----------------------------------------------------------+ ### 其他 diff --git a/releases/release-6.1.0.md b/releases/release-6.1.0.md index ddf347309196..bf879391bd9e 100644 --- a/releases/release-6.1.0.md +++ b/releases/release-6.1.0.md @@ -240,7 +240,7 @@ TiDB 版本:6.1.0 | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 新增 | 由 TiDB 配置项 `prepared-plan-cache.enabled` 转化而来。 | | [`tidb_gc_max_wait_time`](/system-variables.md#tidb_gc_max_wait_time-从-v610-版本开始引入) | 新增 | 用于指定活跃事务阻碍 GC safe point 推进的最大时间。 | | [`tidb_max_auto_analyze_time`](/system-variables.md#tidb_max_auto_analyze_time-从-v610-版本开始引入) | 新增 | 用于指定自动 ANALYZE 的最大执行时间。 | -| [`tidb_max_tiflash_threads`](/system-variables.md#tidb_max_tiflash_threads-从-v610-版本开始引入) | 新增 | 由 TiFlash 配置项 `max_threads`
    转化而来,表示 TiFlash 中 request 执行的最大并发度。 | +| [`tidb_max_tiflash_threads`](/system-variables.md#tidb_max_tiflash_threads-从-v610-版本开始引入) | 新增 | 由 TiFlash 配置项 `max_threads` 转化而来,表示 TiFlash 中 request 执行的最大并发度。 | | [`tidb_mem_oom_action`](/system-variables.md#tidb_mem_oom_action-从-v610-版本开始引入) | 新增 | 由 TiDB 配置项 `oom-action` 转化而来。 | | [`tidb_mem_quota_analyze`](/system-variables.md#tidb_mem_quota_analyze-从-v610-版本开始引入) | 新增 | 控制 TiDB 更新统计信息时总的内存占用,包括用户执行的 [`ANALYZE TABLE`](/sql-statements/sql-statement-analyze-table.md) 和 TiDB 后台自动执行的统计信息更新任务。 | | [`tidb_nontransactional_ignore_error`](/system-variables.md#tidb_nontransactional_ignore_error-从-v610-版本开始引入) | 新增 | 设置是否在非事务语句中立刻返回错误。 | @@ -276,8 +276,8 @@ TiDB 版本:6.1.0 | TiKV | [`storage.api-version`](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) | 新增 | TiKV 作为 Raw Key Value 存储数据时使用的存储格式与接口版本。 | | PD | [`schedule.max-store-preparing-time`](/pd-configuration-file.md#max-store-preparing-time-从-v610-版本开始引入) | 新增 | 控制 store 上线阶段的最长等待时间。 | | TiCDC | [`enable-tls`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 控制是否使用 TLS 连接 Kafka。 | -| TiCDC | `sasl-gssapi-user`
    `sasl-gssapi-password`
    `sasl-gssapi-auth-type`
    `sasl-gssapi-service-name`
    `sasl-gssapi-realm`
    `sasl-gssapi-key-tab-path`
    `sasl-gssapi-kerberos-config-path` | 新增 | 支持 Kafka SASL/GSSAPI 认证所需要的参数。详情见 [Sink URI 配置 `kafka`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka)。 | -| TiCDC | [`avro-decimal-handling-mode`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka)
    [`avro-bigint-unsigned-handling-mode`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 控制 Avro 格式的输出细节。 | +| TiCDC | `sasl-gssapi-user`, `sasl-gssapi-password`, `sasl-gssapi-auth-type`, `sasl-gssapi-service-name`, `sasl-gssapi-realm`, `sasl-gssapi-key-tab-path`, `sasl-gssapi-kerberos-config-path` | 新增 | 支持 Kafka SASL/GSSAPI 认证所需要的参数。详情见 [Sink URI 配置 `kafka`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka)。 | +| TiCDC | [`avro-decimal-handling-mode`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka), [`avro-bigint-unsigned-handling-mode`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) | 新增 | 控制 Avro 格式的输出细节。 | | TiCDC | [`dispatchers.topic`](/ticdc/ticdc-changefeed-config.md) | 新增 | 控制 TiCDC 将增量数据分发到不同 Kafka Topic 的策略 | | TiCDC | [`dispatchers.partition`](/ticdc/ticdc-changefeed-config.md) | 新增 | `dispatchers.partition` 是原 `dispatchers.dispatcher` 配置项的别名,用于控制增量数据的 Kafka Partition 分发策略。 | | TiCDC | [`schema-registry`](/ticdc/ticdc-sink-to-kafka.md#ticdc-集成-kafka-connect-confluent-platform) | 新增 | 用于指定存储 Avro Schema 的 Schema Registry Endpoint。 | diff --git a/sql-mode.md b/sql-mode.md index c4cc88e9b984..366e7128b22d 100644 --- a/sql-mode.md +++ b/sql-mode.md @@ -36,7 +36,7 @@ Modes 是用逗号 (',') 间隔开的一系列不同的模式。使用 `SELECT @ | NO_ZERO_IN_DATE | 在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告(支持) | NO_ZERO_DATE | 在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告(支持)| | ALLOW_INVALID_DATES | 不检查全部日期的合法性,仅检查月份值在 1 到 12 及日期值在 1 到 31 之间,仅适用于 DATE 和 DATATIME 列,TIMESTAMP 列需要全部检查其合法性(支持)| -| ERROR_FOR_DIVISION_BY_ZERO | 若启用该模式,在 INSERT 或 UPDATE 过程中,被除数为 0 值时,系统产生错误
    若未启用该模式,被除数为 0 值时,系统产生警告,并用 NULL 代替(支持) | +| ERROR_FOR_DIVISION_BY_ZERO | 若启用该模式,在 INSERT 或 UPDATE 过程中,被除数为 0 值时,系统产生错误;若未启用该模式,被除数为 0 值时,系统产生警告,并用 NULL 代替(支持) | | NO_AUTO_CREATE_USER | 防止 GRANT 自动创建新用户,但指定密码除外(支持)| | HIGH_NOT_PRECEDENCE | NOT 操作符的优先级是表达式。例如:NOT a BETWEEN b AND c 被解释为 NOT (a BETWEEN b AND c)。在部份旧版本 MySQL 中,表达式被解释为 (NOT a) BETWEEN b AND c(支持) | | NO_ENGINE_SUBSTITUTION | 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎(仅语法支持)| diff --git a/ticdc-deployment-topology.md b/ticdc-deployment-topology.md index 8bddfac001c3..601c1c3a09da 100644 --- a/ticdc-deployment-topology.md +++ b/ticdc-deployment-topology.md @@ -13,13 +13,27 @@ summary: 介绍 TiCDC 部署 TiDB 集群的拓扑结构。 ## 拓扑信息 -|实例 | 个数 | 物理机配置 | IP |配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiDB |3 | 16 VCore 32GB * 1 | 10.0.1.1
    10.0.1.2
    10.0.1.3 | 默认端口
    全局目录配置 | -| PD | 3 | 4 VCore 8GB * 1 |10.0.1.4
    10.0.1.5
    10.0.1.6 | 默认端口
    全局目录配置 | -| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.7
    10.0.1.8
    10.0.1.9 | 默认端口
    全局目录配置 | -| CDC | 3 | 8 VCore 16GB * 1 | 10.0.1.11
    10.0.1.12
    10.0.1.13 | 默认端口
    全局目录配置 | -| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.11 | 默认端口
    全局目录配置 | ++--------------+---------+--------------------------+--------------+--------------------------+ +| 实例 | 个数 | 物理机配置 | IP | 配置 | ++==============+=========+==========================+==============+==========================+ +| TiDB | 3 | 16 VCore 32GB * 1 | 10.0.1.1 | 默认端口,全局目录配置 | +| | | | 10.0.1.2 | | +| | | | 10.0.1.3 | | ++--------------+---------+--------------------------+--------------+--------------------------+ +| PD | 3 | 4 VCore 8GB * 1 | 10.0.1.4 | 默认端口,全局目录配置 | +| | | | 10.0.1.5 | | +| | | | 10.0.1.6 | | ++--------------+---------+--------------------------+--------------+--------------------------+ +| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.7 | 默认端口,全局目录配置 | +| | | | 10.0.1.8 | | +| | | | 10.0.1.9 | | ++--------------+---------+--------------------------+--------------+--------------------------+ +| CDC | 3 | 8 VCore 16GB * 1 | 10.0.1.11 | 默认端口,全局目录配置 | +| | | | 10.0.1.12 | | +| | | | 10.0.1.13 | | ++--------------+---------+--------------------------+--------------+--------------------------+ +| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.11 | 默认端口,全局目录配置 | ++--------------+---------+--------------------------+--------------+--------------------------+ ### 拓扑模版 diff --git a/ticdc/ticdc-compatibility.md b/ticdc/ticdc-compatibility.md index 24d23d6ebf1c..0db275299c18 100644 --- a/ticdc/ticdc-compatibility.md +++ b/ticdc/ticdc-compatibility.md @@ -51,12 +51,21 @@ TODO `sort-dir` 配置项用于给 TiCDC 内部的排序器指定临时文件目录,其作用在各版本有过如下兼容性更改: -| 版本 | `sort-engine` 的使用 | 说明 | 使用建议 | -| :--- | :--- | :-- | :-- | -| v4.0.11 及之前的 v4.0 版本,v5.0.0-rc | 作为 changefeed 配置项,给 `file` sorter 和 `unified` Sorter 指定临时文件目录 | 在这些版本中,`file` sorter 和 `unified` sorter **均不是**正式功能 (GA),不推荐在生产环境中使用。

    如果有多个 changefeed 被配置使用了 `unified` 作为 `sort-engine`,那么实际使用的临时文件目录可能是任何一个 changefeed 的 `sort-dir` 配置,且每个 TiCDC 节点上使用的目录可能不一致。 | 不推荐在生产环境中使用 Unified Sorter | -| v4.0.12,v4.0.13,v5.0.0 及 v5.0.1 | 作为 changefeed 配置项或 `cdc server` 配置项 | 在默认情况下 changefeed 的 `sort-dir` 配置不会生效,而 `cdc server` 的 `sort-dir` 配置默认为 `/tmp/cdc_sort`。建议生产环境下仅配置 `cdc server` 的相关配置。

    如果你使用 TiUP 部署 TiCDC,建议升级到最新的 TiUP 版本并在 TiCDC server 配置中设置 `sorter.sort-dir` 一项。

    在 v4.0.13、v5.0.0 和 v5.0.1 中 unified sorter 是默认开启的,如果要将集群升级至这些版本,请确保 TiCDC server 配置中的 `sorter.sort-dir` 已经被正确配置。| 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `sort-dir` | -| v4.0.14 及之后的 v4.0 版本,v5.0.3 及之后的 v5.0 版本,更新的版本 | `sort-dir` 被弃用,建议配置 `data-dir` | `data-dir` 可以通过最新版本的 TiUP 进行配置。这些版本中 unified sorter 是默认开启的,升级时请确保 `data-dir` 已经被正确配置,否则将默认使用 `/tmp/cdc_data`。

    如果该目录所在设备空间不足,有可能出现硬盘空间不足的问题。之前配置的 changefeed 的 `sort-dir` 配置将会失效。| 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `data-dir` | -| v6.0.0 及之后版本 | `data-dir` 被用来存放 TiCDC 生成的临时文件 | 在该版本之后,TiCDC 默认采用 `db sorter` 作为内部的排序引擎,它使用 `data-dir` 作为磁盘目录。 | 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `data-dir` | ++----------------+---------------------+-------------------------------+----------------------+ +| 版本 | `sort-engine` 的使用 | 说明 | 使用建议 | ++================+=====================+===============================+======================+ +| v4.0.11 及之前的 v4.0 版本,v5.0.0-rc | 作为 changefeed 配置项,给 `file` sorter 和 `unified` sorter 指定临时文件目录 | 在这些版本中,`file` sorter 和 `unified` sorter **均不是**正式功能 (GA),不推荐在生产环境中使用。| 不推荐在生产环境中使用 Unified Sorter | +| | | 如果有多个 changefeed 被配置使用了 `unified` 作为 `sort-engine`,那么实际使用的临时文件目录可能是任何一个 changefeed 的 `sort-dir` 配置,且每个 TiCDC 节点上使用的目录可能不一致。 | | ++----------------+---------------------+-------------------------------+----------------------+ +| v4.0.12,v4.0.13,v5.0.0 及 v5.0.1 | 作为 changefeed 配置项或 `cdc server` 配置项 | 在默认情况下,changefeed 的 `sort-dir` 配置不会生效,而 `cdc server` 的 `sort-dir` 配置默认为 `/tmp/cdc_sort`。建议生产环境下仅配置 `cdc server` 的相关配置。| 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `sort-dir` | +| | | 如果你使用 TiUP 部署 TiCDC,建议升级到最新的 TiUP 版本并在 TiCDC server 配置中设置 `sorter.sort-dir` 一项。 | | +| | | 在 v4.0.13、v5.0.0 和 v5.0.1 中 unified sorter 是默认开启的,如果要将集群升级至这些版本,请确保 TiCDC server 配置中的 `sorter.sort-dir` 已经被正确配置。| | ++----------------+---------------------+-------------------------------+----------------------+ +| v4.0.14 及之后的 v4.0 版本,v5.0.3 及之后的 v5.0 版本,更新的版本 | `sort-dir` 被弃用,建议配置 `data-dir` | `data-dir` 可以通过最新版本的 TiUP 进行配置。这些版本中 unified sorter 是默认开启的,升级时请确保 `data-dir` 已经被正确配置,否则将默认使用 `/tmp/cdc_data`。| 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `data-dir` | +| | | 如果该目录所在设备空间不足,有可能出现硬盘空间不足的问题。之前配置的 changefeed 的 `sort-dir` 将会失效。| | ++----------------+---------------------+-------------------------------+----------------------+ +| v6.0.0 及之后版本 | `data-dir` 被用来存放 TiCDC 生成的临时文件 | 在该版本之后,TiCDC 默认采用 `db sorter` 作为内部的排序引擎,它使用 `data-dir` 作为磁盘目录。| 需要通过 `cdc server` 命令行参数(或 TiUP)配置 `data-dir` | ++----------------+---------------------+-------------------------------+----------------------+ ### 全局临时表兼容性说明 diff --git a/tidb-binlog-deployment-topology.md b/tidb-binlog-deployment-topology.md index f04d6f3d1142..6de4f31796ed 100644 --- a/tidb-binlog-deployment-topology.md +++ b/tidb-binlog-deployment-topology.md @@ -9,13 +9,29 @@ summary: 介绍如何在部署最小拓扑集群的基础上,同时部署 TiDB ## 拓扑信息 -| 实例 |个数| 物理机配置 | IP | 配置 | -| :-- | :-- | :-- | :-- | :-- | -|TiDB | 3 | 16 VCore 32 GB | 10.0.1.1
    10.0.1.2
    10.0.1.3 | 默认端口配置;
    开启 enable_binlog;
    开启 ignore-error | -| PD | 3 | 4 VCore 8 GB | 10.0.1.4
    10.0.1.5
    10.0.1.6 | 默认端口配置 | -| TiKV | 3 | 16 VCore 32 GB | 10.0.1.7
    10.0.1.8
    10.0.1.9 | 默认端口配置 | -| Pump| 3 |8 VCore 16GB |10.0.1.1
    10.0.1.7
    10.0.1.8 | 默认端口配置;
    设置 GC 时间 7 天 | -| Drainer | 1 | 8 VCore 16GB | 10.0.1.12 | 默认端口配置;
    设置默认初始化 commitTS -1 为最近的时间戳
    配置下游目标 TiDB 10.0.1.12:4000 | ++--------+--------+-----------------+---------------+--------------------------------------+ +| 实例 | 个数 | 物理机配置 | IP | 配置 | ++========+========+=================+===============+======================================+ +| TiDB | 3 | 16 VCore 32GB | 10.0.1.1 | 默认端口配置; | +| | | | 10.0.1.2 | 开启 enable_binlog; | +| | | | 10.0.1.3 | 开启 ignore-error | ++--------+--------+-----------------+---------------+--------------------------------------+ +| PD | 3 | 4 VCore 8GB | 10.0.1.4 | 默认端口配置 | +| | | | 10.0.1.5 | | +| | | | 10.0.1.6 | | ++--------+--------+-----------------+---------------+--------------------------------------+ +| TiKV | 3 | 16 VCore 32GB | 10.0.1.7 | 默认端口配置 | +| | | | 10.0.1.8 | | +| | | | 10.0.1.9 | | ++--------+--------+-----------------+---------------+--------------------------------------+ +| Pump | 3 | 8 VCore 16GB | 10.0.1.1 | 默认端口配置; | +| | | | 10.0.1.7 | 设置 GC 时间 7 天 | +| | | | 10.0.1.8 | | ++--------+--------+-----------------+---------------+--------------------------------------+ +| Drainer| 1 | 8 VCore 16GB | 10.0.1.12 | 默认端口配置; | +| | | | | 设置默认初始化 commitTS -1 为最近的时间戳 | +| | | | | 配置下游目标 TiDB 10.0.1.12:4000 | ++--------+--------+-----------------+---------------+--------------------------------------+ ### 拓扑模版 diff --git a/tidb-lightning/tidb-lightning-configuration.md b/tidb-lightning/tidb-lightning-configuration.md index e5f6a1b373a7..73f34fda7391 100644 --- a/tidb-lightning/tidb-lightning-configuration.md +++ b/tidb-lightning/tidb-lightning-configuration.md @@ -242,7 +242,7 @@ pd-addr = "172.16.31.4:2379" # 设置 TiDB 库的日志等级。 log-level = "error" -# 设置 TiDB 会话变量,提升 Checksum 和 Analyze 的速度。注意,如果将 checksum-via-sql 设置为 "true",则会通过 TiDB 执行 ADMIN CHECKSUM TABLE SQL 语句来进行 Checksum 操作。在这种情况下,以下参数设置 `distsql-scan-concurrency = 15` 和 `checksum-table-concurrency = 2` 将不会生效。 +# 设置 TiDB 会话变量,提升 Checksum 和 Analyze 的速度。注意,如果将 checksum-via-sql 设置为 "true",则会通过 TiDB 执行 `ADMIN CHECKSUM TABLE
    ` SQL 语句来进行 Checksum 操作。在这种情况下,以下参数设置 `distsql-scan-concurrency = 15` 和 `checksum-table-concurrency = 2` 将不会生效。 # 各参数定义可参阅 “控制 Analyze 并发度文档” (https://docs.pingcap.com/zh/tidb/stable/statistics#%E6%8E%A7%E5%88%B6-analyze-%E5%B9%B6%E5%8F%91%E5%BA%A6)。 build-stats-concurrency = 20 distsql-scan-concurrency = 15 @@ -289,8 +289,8 @@ max-allowed-packet = 67_108_864 # 1. Checksum 对比失败通常表示导入异常(数据丢失或数据不一致),因此建议总是开启 Checksum。 # 2. 考虑到与旧版本的兼容性,依然可以在本配置项设置 `true` 和 `false` 两个布尔值,其效果与 `required` 和 `off` 相同。 checksum = "required" -# 设置是否通过 TiDB 执行 ADMIN CHECKSUM TABLE
    操作。 -# 默认值为 "false",表示通过 TiDB Lightning 下发 ADMIN CHECKSUM TABLE
    命令给 TiKV 执行。 +# 设置是否通过 TiDB 执行 `ADMIN CHECKSUM TABLE
    ` 操作。 +# 默认值为 "false",表示通过 TiDB Lightning 下发 `ADMIN CHECKSUM TABLE
    ` 命令给 TiKV 执行。 # 建议将该值设为 "true",以便在 checksum 失败时更容易定位问题。 # 同时,当该值为 "true" 时,如果需要调整并发,请在 TiDB 中设置 `tidb_checksum_table_concurrency` 变量 (https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_checksum_table_concurrency)。 checksum-via-sql = "false" diff --git a/tidb-lightning/tidb-lightning-requirements.md b/tidb-lightning/tidb-lightning-requirements.md index 11d46943d272..2d8f30599b6e 100644 --- a/tidb-lightning/tidb-lightning-requirements.md +++ b/tidb-lightning/tidb-lightning-requirements.md @@ -11,71 +11,27 @@ summary: 了解 TiDB Lightning 运行时对目标数据库的必需条件。 TiDB Lightning 导入数据时,根据导入方式和启用特性等,需要下游数据库用户具备不同的权限,可参考下表: -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    特性作用域所需权限备注
    必需基本功能目标 tableCREATE,SELECT,INSERT,UPDATE,DELETE,DROP,ALTERDROP 仅 tidb-lightning-ctl 在执行 checkpoint-destroy-all 时需要
    目标 databaseCREATE
    必需Logical Import Modeinformation_schema.columnsSELECT
    Physical Import Modemysql.tidbSELECT
    -SUPER
    -RESTRICTED_VARIABLES_ADMIN,RESTRICTED_TABLES_ADMIN当目标 TiDB 开启 SEM
    推荐冲突检测,max-errorlightning.task-info-schema-name 配置的 schemaSELECT,INSERT,UPDATE,DELETE,CREATE,DROP如不需要,该值必须设为""
    可选并行导入lightning.meta-schema-name 配置的 schemaSELECT,INSERT,UPDATE,DELETE,CREATE,DROP如不需要,该值必须设为""
    可选checkpoint.driver = "mysql"checkpoint.schema 设置SELECT,INSERT,UPDATE,DELETE,CREATE,DROP使用数据库而非文件形式存放 checkpoint 信息时需要
    ++------+---------------+-------------------+-------------------------+-----------------------+ +| | 特性 | 作用域 | 所需权限 | 备注 | ++======+===============+===================+=========================+=======================+ +| 必需 | 基本功能 | 目标 table | CREATE,SELECT,INSERT,UPDATE,DELETE,DROP,ALTER | DROP 仅 tidb-lightning-ctl 在执行 checkpoint-destroy-all 时需要 | +| | +-------------------+-------------------------+-----------------------+ +| | | 目标 database | CREATE | | ++------+---------------+-------------------+-------------------------+-----------------------+ +| 必需 | Logical Import Mode | information_schema.columns | SELECT | | +| +---------------+-------------------+-------------------------+-----------------------+ +| | Physical Import Mode | mysql.tidb | SELECT | | +| | +-------------------+------------------+-----------------------+ +| | | - | SUPER | | +| | +-------------------+------------------+-----------------------+ +| | | - | RESTRICTED_VARIABLES_ADMIN,RESTRICTED_TABLES_ADMIN | 当目标 TiDB 开启 SEM | ++------+---------------+-------------------+-------------------------+-----------------------+ +| 推荐 | 冲突检测,max-error | lightning.task-info-schema-name 配置的 schema | SELECT,INSERT,UPDATE,DELETE,CREATE,DROP | 如不需要,该值必须设为 "" | ++------+---------------+-------------------+-------------------------+-----------------------+ +| 可选 | 并行导入 | lightning.meta-schema-name 配置的 schema | SELECT,INSERT,UPDATE,DELETE,CREATE,DROP | 如不需要,该值必须设为 "" | ++------+---------------+-------------------+-------------------------+-----------------------+ +| 可选 | checkpoint.driver = "mysql" | checkpoint.schema 设置 | SELECT,INSERT,UPDATE,DELETE,CREATE,DROP | 使用数据库而非文件形式存放 checkpoint 信息时需要 | ++------+---------------+-------------------+-------------------------+-----------------------+ ## 目标数据库所需空间 diff --git a/tiflash-deployment-topology.md b/tiflash-deployment-topology.md index 7513410b5b0c..91a814104ea2 100644 --- a/tiflash-deployment-topology.md +++ b/tiflash-deployment-topology.md @@ -9,13 +9,27 @@ summary: 了解在部署最小拓扑集群的基础上,部署 TiFlash 的拓 ## 拓扑信息 -|实例 | 个数 | 物理机配置 | IP |配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiDB |3 | 16 VCore 32GB * 1 | 10.0.1.7
    10.0.1.8
    10.0.1.9 | 默认端口
    全局目录配置 | -| PD | 3 | 4 VCore 8GB * 1 |10.0.1.4
    10.0.1.5
    10.0.1.6 | 默认端口
    全局目录配置 | -| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.1
    10.0.1.2
    10.0.1.3 | 默认端口
    全局目录配置 | -| TiFlash | 1 | 32 VCore 64 GB 2TB (nvme ssd) * 1 | 10.0.1.11 | 默认端口
    全局目录配置 | -| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.10 | 默认端口
    全局目录配置 | ++--------------------+--------+------------------------+--------------+--------------------------+ +| 实例 | 个数 | 物理机配置 | IP | 配置 | ++====================+========+========================+==============+==========================+ +| TiDB | 3 | 16 VCore 32GB * 1 | 10.0.1.7 | 默认端口 | +| | | | 10.0.1.8 | 全局目录配置 | +| | | | 10.0.1.9 | | ++--------------------+--------+------------------------+--------------+--------------------------+ +| PD | 3 | 4 VCore 8GB * 1 | 10.0.1.4 | 默认端口 | +| | | | 10.0.1.5 | 全局目录配置 | +| | | | 10.0.1.6 | | ++--------------------+--------+------------------------+--------------+--------------------------+ +| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.1 | 默认端口 | +| | | | 10.0.1.2 | 全局目录配置 | +| | | | 10.0.1.3 | | ++--------------------+--------+------------------------+--------------+--------------------------+ +| TiFlash | 1 | 32 VCore 64 GB 2TB (nvme ssd) * 1 | 10.0.1.11 | 默认端口 | +| | | | | 全局目录配置 | ++--------------------+--------+------------------------+--------------+--------------------------+ +| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.10 | 默认端口 | +| | | | | 全局目录配置 | ++--------------------+--------+------------------------+--------------+--------------------------+ ### 拓扑模版 diff --git a/tispark-deployment-topology.md b/tispark-deployment-topology.md index 106546fabe50..098e40df1333 100644 --- a/tispark-deployment-topology.md +++ b/tispark-deployment-topology.md @@ -15,13 +15,27 @@ summary: 介绍 TiUP 部署包含 TiSpark 组件的 TiDB 集群的拓扑结构 ## 拓扑信息 -|实例 | 个数 | 物理机配置 | IP |配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiDB |3 | 16 VCore 32GB * 1 | 10.0.1.1
    10.0.1.2
    10.0.1.3 | 默认端口
    全局目录配置 | -| PD | 3 | 4 VCore 8GB * 1 |10.0.1.4
    10.0.1.5
    10.0.1.6 | 默认端口
    全局目录配置 | -| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.7
    10.0.1.8
    10.0.1.9 | 默认端口
    全局目录配置 | -| TiSpark | 3 | 8 VCore 16GB * 1 | 10.0.1.21 (master)
    10.0.1.22 (worker)
    10.0.1.23 (worker) | 默认端口
    全局目录配置 | -| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.11 | 默认端口
    全局目录配置 | ++---------------------+--------+------------------------+--------------+--------------------------+ +| 实例 | 个数 | 物理机配置 | IP | 配置 | ++=====================+========+========================+==============+==========================+ +| TiDB | 3 | 16 VCore 32GB * 1 | 10.0.1.1 | 默认端口,全局目录配置 | +| | | | 10.0.1.2 | | +| | | | 10.0.1.3 | | ++---------------------+--------+------------------------+--------------+--------------------------+ +| PD | 3 | 4 VCore 8GB * 1 | 10.0.1.4 | 默认端口,全局目录配置 | +| | | | 10.0.1.5 | | +| | | | 10.0.1.6 | | ++---------------------+--------+------------------------+--------------+--------------------------+ +| TiKV | 3 | 16 VCore 32GB 2TB (nvme ssd) * 1 | 10.0.1.7 | 默认端口,全局目录配置 | +| | | | 10.0.1.8 | | +| | | | 10.0.1.9 | | ++---------------------+--------+------------------------+--------------+--------------------------+ +| TiSpark | 3 | 8 VCore 16GB * 1 | 10.0.1.21 (master) | 默认端口,全局目录配置 | +| | | | 10.0.1.22 (worker) | | +| | | | 10.0.1.23 (worker) | | ++---------------------+--------+------------------------+--------------+--------------------------+ +| Monitoring & Grafana | 1 | 4 VCore 8GB * 1 500GB (ssd) | 10.0.1.11 | 默认端口,全局目录配置 | ++---------------------+--------+------------------------+--------------+--------------------------+ ### 拓扑模版