From 758c54a5f3a77cf0b0d14153d78009127faab14a Mon Sep 17 00:00:00 2001 From: Tz <520045098@qq.com> Date: Mon, 26 Nov 2018 16:21:03 +0800 Subject: [PATCH 01/11] test --- 1.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 1.txt diff --git a/1.txt b/1.txt new file mode 100644 index 000000000000..e69de29bb2d1 From f377950f134c03a0c3284fd8d994b0887db1c7cd Mon Sep 17 00:00:00 2001 From: Tz <520045098@qq.com> Date: Mon, 14 Jan 2019 19:35:46 +0800 Subject: [PATCH 02/11] update FAQ --- FAQ.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/FAQ.md b/FAQ.md index 5f27ee49267c..764688136fe8 100755 --- a/FAQ.md +++ b/FAQ.md @@ -264,6 +264,8 @@ TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器 2)如果出现了慢查询,可以从 Grafana 监控定位到出现慢查询的 tidb-server 以及时间点,然后在对应节点查找日志中记录的 SQL 信息。 +3)除了日志,通过 admin show slow 命令查看,详情请参考[admin show slow 命令](https://pingcap.com/docs-cn/sql/slow-query/#admin-show-slow-%E5%91%BD%E4%BB%A4)。 + #### 2.2.5 首次部署 TiDB 集群时,没有配置 tikv 的 Label 信息,在后续如何添加配置 Label? TiDB 的 Label 设置是与集群的部署架构相关的,是集群部署中的重要内容,是 PD 进行全局管理和调度的依据。如果集群在初期部署过程中没有设置 Label,需要在后期对部署结构进行调整,就需要手动通过 PD 的管理工具 pd-ctl 来添加 location-labels 信息,例如:`config set location-labels "zone, rack, host"`(根据实际的 label 层级名字配置)。 @@ -676,7 +678,7 @@ loader 的 -t 参数可以根据 TiKV 的实例个数以及负载进行评估调 #### 4.1.2 Loader 参见 [Loader 使用文档](tools/loader.md)。 - + #### 4.1.3 如何将一个运行在 MySQL 上的应用迁移到 TiDB 上? TiDB 支持绝大多数 MySQL 语法,一般不需要修改代码。我们提供了一个[检查工具](https://github.com/pingcap/tidb-tools/tree/master/checker),用于检查 MySQL 中的 Schema 是否和 TiDB 兼容。 @@ -685,11 +687,14 @@ TiDB 支持绝大多数 MySQL 语法,一般不需要修改代码。我们提 重启 TiDB 服务,配置文件中增加 `-skip-grant-table=true` 参数,无密码登陆集群后,可以根据情况重建用户,或者重建 mysql.user 表,具体表结构搜索官网。 -#### 4.1.5 如何导出 TiDB 数据? +#### 4.1.5 在 loader 过程中, TiDB 可以对外提供服务吗? +该操作进行逻辑插入,TiDB 仍可对外提供服务,但不要执行相关DDL操作。 + +#### 4.1.6 如何导出 TiDB 数据? TiDB 目前暂时不支持 `select into outfile`,可以通过以下方式导出 TiDB 数据:参考 [MySQL 使用 mysqldump 导出某个表的部分数据](http://blog.csdn.net/xin_yu_xin/article/details/7574662),使用 mysqldump 加 where 条件导出,使用 MySQL client 将 select 的结果输出到一个文件。 -#### 4.1.6 DB2、Oracle 数据库如何迁移到 TiDB? +#### 4.1.7 DB2、Oracle 数据库如何迁移到 TiDB? DB2、Oracle 到 TiDB 数据迁移(增量+全量),通常做法有: @@ -700,7 +705,7 @@ DB2、Oracle 到 TiDB 数据迁移(增量+全量),通常做法有: 目前看来 OGG 最为合适。 -#### 4.1.7 用 Sqoop 批量写入 TiDB 数据,虽然配置了 `--batch` 选项,但还是会遇到 `java.sql.BatchUpdateExecption:statement count 5001 exceeds the transaction limitation` 的错误,该如何解决? +#### 4.1.8 用 Sqoop 批量写入 TiDB 数据,虽然配置了 `--batch` 选项,但还是会遇到 `java.sql.BatchUpdateExecption:statement count 5001 exceeds the transaction limitation` 的错误,该如何解决? - 在 Sqoop 中,`--batch` 是指每个批次提交 100 条 statement,但是默认每个 statement 包含 100 条 SQL 语句,所以此时 100 * 100 = 10000 条 SQL 语句,超出了 TiDB 的事务限制 5000 条,可以增加选项 `-Dsqoop.export.records.per.statement=10 ` 来解决这个问题,完整的用法如下: @@ -717,6 +722,9 @@ sqoop export \ - 也可以选择增大 tidb 的单个事物语句数量限制,不过这个会导致内存上涨。 +#### 4.1.9 TiDB 有像 Oracle 那样的 Flashback Query 功能么,DDL 支持么? +有,DDL也可以。详细参考[TiDB 历史数据回溯](https://pingcap.com/docs-cn/op-guide/history-read)。 + ### 4.2 在线数据同步 #### 4.2.1 Syncer 架构 @@ -757,6 +765,10 @@ sqoop export \ 2)可以根据 Syncer 定期上报到 Prometheus 的监控信息来还原出历史同步的位置信息,该方法的位置信息在大量同步数据时由于延迟会可能不准确。 +##### 4.2.1.7 syncer 下游 TiDB 数据和 MySQL 数据不一致,DML 会退出么? +- 上游 MySQL 中存在数据,下游 TiDB 中该数据不存在,上游 MySQL 执行 update/delete 更新/删除该条数据时,syncer 同步过程即不会报错退出也没有该条数据。 +- 下游有主键索引或是唯一索引冲突时,update 会退出,insert 不会。 + ### 4.3 业务流量迁入 #### 4.3.1 如何快速迁移业务流量? From 970422500d056f002e6fe836532a81466331bbc8 Mon Sep 17 00:00:00 2001 From: TaoZhengCN <520045098@qq.com> Date: Mon, 14 Jan 2019 19:41:58 +0800 Subject: [PATCH 03/11] delete my test delete my test --- 1.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 1.txt diff --git a/1.txt b/1.txt deleted file mode 100644 index e69de29bb2d1..000000000000 From d426570012c7e18ebd7c62fc0929dffe0a0b798e Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:35:12 +0800 Subject: [PATCH 04/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 764688136fe8..f3391e207843 100755 --- a/FAQ.md +++ b/FAQ.md @@ -264,7 +264,7 @@ TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器 2)如果出现了慢查询,可以从 Grafana 监控定位到出现慢查询的 tidb-server 以及时间点,然后在对应节点查找日志中记录的 SQL 信息。 -3)除了日志,通过 admin show slow 命令查看,详情请参考[admin show slow 命令](https://pingcap.com/docs-cn/sql/slow-query/#admin-show-slow-%E5%91%BD%E4%BB%A4)。 +3)除了日志,还可以通过 `admin show slow` 命令查看,详情可参考 [`admin show slow` 命令](sql/slow-query.md#admin-show-slow-命令)。 #### 2.2.5 首次部署 TiDB 集群时,没有配置 tikv 的 Label 信息,在后续如何添加配置 Label? From 0b2b7760fa012c762267a62bbdbc31c34770b640 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:36:34 +0800 Subject: [PATCH 05/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index f3391e207843..02e77ec2d6dd 100755 --- a/FAQ.md +++ b/FAQ.md @@ -687,7 +687,7 @@ TiDB 支持绝大多数 MySQL 语法,一般不需要修改代码。我们提 重启 TiDB 服务,配置文件中增加 `-skip-grant-table=true` 参数,无密码登陆集群后,可以根据情况重建用户,或者重建 mysql.user 表,具体表结构搜索官网。 -#### 4.1.5 在 loader 过程中, TiDB 可以对外提供服务吗? +#### 4.1.5 在 Loader 运行的过程中,TiDB 可以对外提供服务吗? 该操作进行逻辑插入,TiDB 仍可对外提供服务,但不要执行相关DDL操作。 #### 4.1.6 如何导出 TiDB 数据? From 5b0978200847fed09afacf2ac464b69d6e9a03c2 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:36:52 +0800 Subject: [PATCH 06/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 02e77ec2d6dd..c64cea9a1b28 100755 --- a/FAQ.md +++ b/FAQ.md @@ -694,7 +694,7 @@ TiDB 支持绝大多数 MySQL 语法,一般不需要修改代码。我们提 TiDB 目前暂时不支持 `select into outfile`,可以通过以下方式导出 TiDB 数据:参考 [MySQL 使用 mysqldump 导出某个表的部分数据](http://blog.csdn.net/xin_yu_xin/article/details/7574662),使用 mysqldump 加 where 条件导出,使用 MySQL client 将 select 的结果输出到一个文件。 -#### 4.1.7 DB2、Oracle 数据库如何迁移到 TiDB? +#### 4.1.7 如何从 DB2、Oracle 数据库迁移到 TiDB? DB2、Oracle 到 TiDB 数据迁移(增量+全量),通常做法有: From bc8454bdbb711dc70b6e9bcf22ecc40be9cd0521 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:37:06 +0800 Subject: [PATCH 07/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index c64cea9a1b28..79c1731b1fbf 100755 --- a/FAQ.md +++ b/FAQ.md @@ -767,7 +767,7 @@ sqoop export \ ##### 4.2.1.7 syncer 下游 TiDB 数据和 MySQL 数据不一致,DML 会退出么? - 上游 MySQL 中存在数据,下游 TiDB 中该数据不存在,上游 MySQL 执行 update/delete 更新/删除该条数据时,syncer 同步过程即不会报错退出也没有该条数据。 -- 下游有主键索引或是唯一索引冲突时,update 会退出,insert 不会。 +- 下游有主键索引或是唯一索引冲突时,执行 `UPDATE` 会退出,执行 `INSERT` 不会退出。 ### 4.3 业务流量迁入 From c9d1d5c254734fb1aab4ef32097fe98c92b65bbc Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:37:20 +0800 Subject: [PATCH 08/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 79c1731b1fbf..9dee08ca607c 100755 --- a/FAQ.md +++ b/FAQ.md @@ -766,7 +766,7 @@ sqoop export \ 2)可以根据 Syncer 定期上报到 Prometheus 的监控信息来还原出历史同步的位置信息,该方法的位置信息在大量同步数据时由于延迟会可能不准确。 ##### 4.2.1.7 syncer 下游 TiDB 数据和 MySQL 数据不一致,DML 会退出么? -- 上游 MySQL 中存在数据,下游 TiDB 中该数据不存在,上游 MySQL 执行 update/delete 更新/删除该条数据时,syncer 同步过程即不会报错退出也没有该条数据。 +- 上游 MySQL 中存在数据,下游 TiDB 中该数据不存在,上游 MySQL 执行 `UPDATE` 或 `DELETE`(更新/删除)该条数据的操作时,Syncer 同步过程即不会报错退出也没有该条数据。 - 下游有主键索引或是唯一索引冲突时,执行 `UPDATE` 会退出,执行 `INSERT` 不会退出。 ### 4.3 业务流量迁入 From 6f3b35ae0eefd9a96946a3d7a08696405dae9ec6 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:37:40 +0800 Subject: [PATCH 09/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 9dee08ca607c..bab60f73c787 100755 --- a/FAQ.md +++ b/FAQ.md @@ -688,7 +688,7 @@ TiDB 支持绝大多数 MySQL 语法,一般不需要修改代码。我们提 重启 TiDB 服务,配置文件中增加 `-skip-grant-table=true` 参数,无密码登陆集群后,可以根据情况重建用户,或者重建 mysql.user 表,具体表结构搜索官网。 #### 4.1.5 在 Loader 运行的过程中,TiDB 可以对外提供服务吗? -该操作进行逻辑插入,TiDB 仍可对外提供服务,但不要执行相关DDL操作。 +该操作进行逻辑插入,TiDB 仍可对外提供服务,但不要执行相关 DDL 操作。 #### 4.1.6 如何导出 TiDB 数据? From 1d8df359d2bb03c245db7afc71556b07e670dbfe Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:37:48 +0800 Subject: [PATCH 10/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index bab60f73c787..2d193afbfda8 100755 --- a/FAQ.md +++ b/FAQ.md @@ -723,7 +723,7 @@ sqoop export \ - 也可以选择增大 tidb 的单个事物语句数量限制,不过这个会导致内存上涨。 #### 4.1.9 TiDB 有像 Oracle 那样的 Flashback Query 功能么,DDL 支持么? -有,DDL也可以。详细参考[TiDB 历史数据回溯](https://pingcap.com/docs-cn/op-guide/history-read)。 +有,也支持 DDL。详细参考 [TiDB 历史数据回溯](op-guide/history-read)。 ### 4.2 在线数据同步 From ec332427620ead43dda0d9a707560da0812523e2 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 14 Jan 2019 20:37:57 +0800 Subject: [PATCH 11/11] Update FAQ.md Co-Authored-By: TaoZhengCN <520045098@qq.com> --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 2d193afbfda8..2caba2e2abf2 100755 --- a/FAQ.md +++ b/FAQ.md @@ -765,7 +765,7 @@ sqoop export \ 2)可以根据 Syncer 定期上报到 Prometheus 的监控信息来还原出历史同步的位置信息,该方法的位置信息在大量同步数据时由于延迟会可能不准确。 -##### 4.2.1.7 syncer 下游 TiDB 数据和 MySQL 数据不一致,DML 会退出么? +##### 4.2.1.7 Syncer 下游 TiDB 数据和 MySQL 数据不一致,DML 会退出么? - 上游 MySQL 中存在数据,下游 TiDB 中该数据不存在,上游 MySQL 执行 `UPDATE` 或 `DELETE`(更新/删除)该条数据的操作时,Syncer 同步过程即不会报错退出也没有该条数据。 - 下游有主键索引或是唯一索引冲突时,执行 `UPDATE` 会退出,执行 `INSERT` 不会退出。