diff --git a/faq/upgrade-faq.md b/faq/upgrade-faq.md index 1744eab9370c..7d54c59c283d 100644 --- a/faq/upgrade-faq.md +++ b/faq/upgrade-faq.md @@ -1,24 +1,40 @@ --- -title: 升级后常见问题 +title: 升级与升级后常见问题 +summary: TiDB 升级与升级后的常见问题与解决办法。 category: FAQ aliases: ['/docs-cn/dev/faq/upgrade/'] --- -# 升级后常见问题 +# 升级与升级后常见问题 -本文列出了一些升级后可能会遇到的问题与解决办法。 +本文介绍 TiDB 升级与升级后的常见问题与解决办法。 -## 执行 DDL 操作时遇到的字符集 (charset) 问题 +## 升级常见问题 + +本小节列出了 TiDB 升级相关的常见问题与解决办法。 + +### 滚动升级有那些影响? + +滚动升级 TiDB 服务,滚动升级期间不影响业务运行。需要配置最小集群拓扑(TiDB \* 2、PD \* 3、TiKV \* 3),如果集群环境中有 Pump 和 Drainer 服务,建议先停止 Drainer,然后滚动升级(升级 TiDB 时会升级 Pump)。 + +### Binary 如何升级? + +Binary 不是建议的安装方式,对升级支持也不友好,建议换成 [TiUP 部署](/production-deployment-using-tiup.md)。 + +## 升级后常见问题 + +本小节列出了一些升级后可能会遇到的问题与解决办法。 + +### 执行 DDL 操作时遇到的字符集 (charset) 问题 TiDB 在 v2.1.0 以及之前版本(包括 v2.0 所有版本)中,默认字符集是 UTF8。从 v2.1.1 开始,默认字符集变更为 UTF8MB4。如果在 v2.1.0 及之前版本中,建表时显式指定了 table 的 charset 为 UTF8,那么升级到 v2.1.1 之后,执行 DDL 操作可能会失败。 要避免该问题,需注意以下两个要点: -1. 在 v2.1.3 之前,TiDB 不支持修改 column 的 charset。所以,执行 DDL 操作时,新 column 的 charset 需要和旧 column 的 charset 保持一致。 - -2. 在 v2.1.3 之前,即使 column 的 charset 和 table 的 charset 不一样,`show create table` 也不会显示 column 的 charset,但可以通过 HTTP API 获取 table 的元信息来查看 column 的 charset,下文提供了示例。 +- 在 v2.1.3 之前,TiDB 不支持修改 column 的 charset。所以,执行 DDL 操作时,新 column 的 charset 需要和旧 column 的 charset 保持一致。 +- 在 v2.1.3 之前,即使 column 的 charset 和 table 的 charset 不一样,`show create table` 也不会显示 column 的 charset,但可以通过 HTTP API 获取 table 的元信息来查看 column 的 charset,下文提供了示例。 -### 问题 1:`unsupported modify column charset utf8mb4 not match origin utf8` +#### `unsupported modify column charset utf8mb4 not match origin utf8` - 升级前:v2.1.0 及之前版本 @@ -115,7 +131,7 @@ alter table t change column a a varchar(22) character set utf8; } ``` -### 问题 2:`unsupported modify charset from utf8mb4 to utf8` +#### `unsupported modify charset from utf8mb4 to utf8` - 升级前:v2.1.1,v2.1.2 @@ -196,7 +212,7 @@ alter table t change column a a varchar(22) character set utf8; alter table t change column a a varchar(20) character set utf8mb4; ``` -### 问题 3:`ERROR 1366 (HY000): incorrect utf8 value f09f8c80(🌀) for column a` +#### `ERROR 1366 (HY000): incorrect utf8 value f09f8c80(🌀) for column a` TiDB 在 v2.1.1 及之前版本中,如果 charset 是 UTF8,没有对 4-byte 的插入数据进行 UTF8 Unicode encoding 检查。在v2.1.2 及之后版本中,添加了该检查。