Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into add-8.2-rn
Browse files Browse the repository at this point in the history
  • Loading branch information
qiancai committed Jun 17, 2024
2 parents 6936971 + 1133233 commit e5fe530
Show file tree
Hide file tree
Showing 43 changed files with 660 additions and 128 deletions.
29 changes: 16 additions & 13 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,7 @@
- TiDB Lightning
- [概述](/tidb-lightning/tidb-lightning-overview.md)
- [`IMPORT INTO` 和 TiDB Lightning 对比](/tidb-lightning/import-into-vs-tidb-lightning.md)
- [`IMPORT INTO` 和 TiDB Lightning 与日志备份和 TiCDC 的兼容性](/tidb-lightning/tidb-lightning-compatibility-and-scenarios.md)
- [快速上手](/get-started-with-tidb-lightning.md)
- [部署 TiDB Lightning](/tidb-lightning/deploy-tidb-lightning.md)
- [目标数据库要求](/tidb-lightning/tidb-lightning-requirements.md)
Expand Down Expand Up @@ -725,8 +726,6 @@
- [表达式语法](/expression-syntax.md)
- [注释语法](/comment-syntax.md)
- SQL 语句
- [`ADD COLUMN`](/sql-statements/sql-statement-add-column.md)
- [`ADD INDEX`](/sql-statements/sql-statement-add-index.md)
- [`ADMIN`](/sql-statements/sql-statement-admin.md)
- [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md)
- [`ADMIN CHECKSUM TABLE`](/sql-statements/sql-statement-admin-checksum-table.md)
Expand All @@ -736,28 +735,35 @@
- [`ADMIN RECOVER INDEX`](/sql-statements/sql-statement-admin-recover.md)
- [`ADMIN RESUME DDL`](/sql-statements/sql-statement-admin-resume-ddl.md)
- [`ADMIN [SET|SHOW|UNSET] BDR ROLE`](/sql-statements/sql-statement-admin-bdr-role.md)
- [`ADMIN SHOW DDL [JOBS|QUERIES]`](/sql-statements/sql-statement-admin-show-ddl.md)
- [`ADMIN SHOW DDL [JOBS|JOB QUERIES]`](/sql-statements/sql-statement-admin-show-ddl.md)
- [`ADMIN SHOW TELEMETRY`](/sql-statements/sql-statement-admin-show-telemetry.md)
- [`ALTER DATABASE`](/sql-statements/sql-statement-alter-database.md)
- [`ALTER INDEX`](/sql-statements/sql-statement-alter-index.md)
- [`ALTER INSTANCE`](/sql-statements/sql-statement-alter-instance.md)
- [`ALTER PLACEMENT POLICY`](/sql-statements/sql-statement-alter-placement-policy.md)
- [`ALTER RANGE`](/sql-statements/sql-statement-alter-range.md)
- [`ALTER RESOURCE GROUP`](/sql-statements/sql-statement-alter-resource-group.md)
- [`ALTER SEQUENCE`](/sql-statements/sql-statement-alter-sequence.md)
- [`ALTER TABLE`](/sql-statements/sql-statement-alter-table.md)
- [`ALTER TABLE COMPACT`](/sql-statements/sql-statement-alter-table-compact.md)
- `ALTER TABLE`
- [概述](/sql-statements/sql-statement-alter-table.md)
- [`ADD COLUMN`](/sql-statements/sql-statement-add-column.md)
- [`ADD INDEX`](/sql-statements/sql-statement-add-index.md)
- [`ALTER INDEX`](/sql-statements/sql-statement-alter-index.md)
- [`CHANGE COLUMN`](/sql-statements/sql-statement-change-column.md)
- [`COMPACT`](/sql-statements/sql-statement-alter-table-compact.md)
- [`DROP COLUMN`](/sql-statements/sql-statement-drop-column.md)
- [`DROP INDEX`](/sql-statements/sql-statement-drop-index.md)
- [`MODIFY COLUMN`](/sql-statements/sql-statement-modify-column.md)
- [`RENAME INDEX`](/sql-statements/sql-statement-rename-index.md)
- [`ALTER USER`](/sql-statements/sql-statement-alter-user.md)
- [`ANALYZE TABLE`](/sql-statements/sql-statement-analyze-table.md)
- [`BACKUP`](/sql-statements/sql-statement-backup.md)
- [`BATCH`](/sql-statements/sql-statement-batch.md)
- [`BEGIN`](/sql-statements/sql-statement-begin.md)
- [`CALIBRATE RESOURCE`](/sql-statements/sql-statement-calibrate-resource.md)
- [`CANCEL IMPORT JOB`](/sql-statements/sql-statement-cancel-import-job.md)
- [`CHANGE COLUMN`](/sql-statements/sql-statement-change-column.md)
- [`COMMIT`](/sql-statements/sql-statement-commit.md)
- [`CHANGE DRAINER`](/sql-statements/sql-statement-change-drainer.md)
- [`CHANGE PUMP`](/sql-statements/sql-statement-change-pump.md)
- [`COMMIT`](/sql-statements/sql-statement-commit.md)
- [`CREATE BINDING`](/sql-statements/sql-statement-create-binding.md)
- [`CREATE DATABASE`](/sql-statements/sql-statement-create-database.md)
- [`CREATE INDEX`](/sql-statements/sql-statement-create-index.md)
Expand All @@ -775,9 +781,7 @@
- [`DESCRIBE`](/sql-statements/sql-statement-describe.md)
- [`DO`](/sql-statements/sql-statement-do.md)
- [`DROP BINDING`](/sql-statements/sql-statement-drop-binding.md)
- [`DROP COLUMN`](/sql-statements/sql-statement-drop-column.md)
- [`DROP DATABASE`](/sql-statements/sql-statement-drop-database.md)
- [`DROP INDEX`](/sql-statements/sql-statement-drop-index.md)
- [`DROP PLACEMENT POLICY`](/sql-statements/sql-statement-drop-placement-policy.md)
- [`DROP RESOURCE GROUP`](/sql-statements/sql-statement-drop-resource-group.md)
- [`DROP ROLE`](/sql-statements/sql-statement-drop-role.md)
Expand All @@ -804,13 +808,11 @@
- [`LOAD STATS`](/sql-statements/sql-statement-load-stats.md)
- [`LOCK STATS`](/sql-statements/sql-statement-lock-stats.md)
- [`[LOCK|UNLOCK] TABLES`](/sql-statements/sql-statement-lock-tables-and-unlock-tables.md)
- [`MODIFY COLUMN`](/sql-statements/sql-statement-modify-column.md)
- [`PREPARE`](/sql-statements/sql-statement-prepare.md)
- [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md)
- [`RECOVER TABLE`](/sql-statements/sql-statement-recover-table.md)
- [`RENAME INDEX`](/sql-statements/sql-statement-rename-index.md)
- [`RENAME TABLE`](/sql-statements/sql-statement-rename-table.md)
- [`RENAME USER`](/sql-statements/sql-statement-rename-user.md)
- [`RENAME TABLE`](/sql-statements/sql-statement-rename-table.md)
- [`REPLACE`](/sql-statements/sql-statement-replace.md)
- [`RESTORE`](/sql-statements/sql-statement-restore.md)
- [`REVOKE <privileges>`](/sql-statements/sql-statement-revoke-privileges.md)
Expand Down Expand Up @@ -1060,6 +1062,7 @@
- v7.6
- [7.6.0-DMR](/releases/release-7.6.0.md)
- v7.5
- [7.5.2](/releases/release-7.5.2.md)
- [7.5.1](/releases/release-7.5.1.md)
- [7.5.0](/releases/release-7.5.0.md)
- v7.4
Expand Down
1 change: 0 additions & 1 deletion basic-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ aliases: ['/docs-cn/dev/basic-features/','/docs-cn/dev/experimental-features-4.0
| [扩展统计信息](/extended-statistics.md) | E | E | E | E | E | E | E | E | E |
| 统计反馈 | N | N | N | N | 已废弃 | 已废弃 | E | E | E |
| [统计信息自动更新](/statistics.md#自动更新) | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| [快速分析](/system-variables.md#tidb_enable_fast_analyze) | 已废弃 | 已废弃 | E | E | E | E | E | E | E |
| [动态裁剪](/partitioned-table.md#动态裁剪模式) | Y | Y | Y | Y | Y | E | E | E | E |
| [收集部分列的统计信息](/statistics.md#收集部分列的统计信息) | E | E | E | E | E | E | N | N | N |
| [限制统计信息的内存使用量](/statistics.md#统计信息收集的内存限制) | E | E | E | E | E | N | N | N | N |
Expand Down
2 changes: 1 addition & 1 deletion br/backup-and-restore-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ TiDB 备份恢复功能可以用于满足以下业务的需求:

#### 恢复的性能

- 恢复集群快照数据备份,速度可以达到单 TiKV 存储节点 100 MiB/s,恢复速度具有可扩展性;BR 只支持恢复数据到新集群,会尽可能多的使用恢复集群的资源。更详细说明请参考[恢复性能和影响](/br/br-snapshot-guide.md#快照恢复的性能与影响)
- 恢复集群快照数据备份,速度可以达到单 TiKV 存储节点 100 MiB/s,恢复速度具有可扩展性。更详细说明请参考[恢复性能和影响](/br/br-snapshot-guide.md#快照恢复的性能与影响)
- 恢复日志备份数据,速度可以达到 30 GiB/h。更详细说明请参考 [PITR 的性能指标](/br/br-pitr-guide.md#pitr-的性能指标)

## 备份存储
Expand Down
6 changes: 6 additions & 0 deletions br/br-incremental-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ TiDB 集群增量数据包含在某个时间段的起始和结束两个快照的
>
> 当前该功能已经停止开发迭代,推荐你选择[日志备份与恢复功能](/br/br-pitr-guide.md)代替。
## 使用限制

由于增量备份的恢复依赖于备份时间点的库表快照来过滤增量 DDL,因此对于增量备份过程中删除的表,在恢复后可能仍然存在,需要手动删除。

增量备份尚不支持批量重命名表的操作。如果在增量备份过程中发生了批量重命名表的操作,则有可能造成恢复失败。建议在批量重命名表后进行一次全量备份,并在恢复时使用最新的全量备份替代增量数据。

## 对集群进行增量备份

使用 `tiup br backup` 进行增量备份只需要指定**上一次的备份时间戳** `--lastbackupts`,br 命令行工具会判定需要备份 `lastbackupts` 和当前时间之间增量数据。使用 `validate` 指令获取上一次备份的时间戳,示例如下:
Expand Down
10 changes: 4 additions & 6 deletions br/br-snapshot-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,11 @@ tiup br restore full \
+-----------------------------------------------------+
```

当恢复系统权限相关数据的时候,请注意:
当恢复系统权限相关数据的时候,请注意:在恢复数据前 BR 会检查目标集群的系统表是否跟备份数据中的系统表兼容。这里的兼容是指满足以下所有条件:

- 在 v7.6.0 之前版本中,BR 无法恢复 `user``cloud_admin` 并且 `host``'%'` 的用户数据,该用户是 TiDB Cloud 预留用户。从 v7.6.0 开始,BR 默认支持恢复包括 `cloud_admin` 在内的所有用户数据。
- 在恢复数据前 BR 会检查目标集群的系统表是否跟备份数据中的系统表兼容。这里的兼容是指满足以下所有条件:
- 目标集群需要存在备份中的系统权限表。
- 目标集群系统权限表**列数**需要与备份数据中一致,列的顺序可以有差异。
- 目标集群系统权限表的列需要与备份数据兼容。如果为带长度类型(包括整型、字符串等类型),前者长度需大于或等于后者,如果为 `ENUM` 类型,则应该为后者超集。
- 目标集群需要存在备份中的系统权限表。
- 目标集群系统权限表**列数**需要与备份数据中一致,列的顺序可以有差异。
- 目标集群系统权限表的列需要与备份数据兼容。如果为带长度类型(包括整型、字符串等类型),前者长度需大于或等于后者,如果为 `ENUM` 类型,则应该为后者超集。

## 性能与影响

Expand Down
10 changes: 8 additions & 2 deletions dm/deploy-a-dm-cluster-using-tiup.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ aliases: ['/docs-cn/tidb-data-migration/dev/deploy-a-dm-cluster-using-ansible/']
## 前提条件

当 DM 执行全量数据复制任务时,每个 DM-worker 只绑定一个上游数据库。DM-worker 首先在上游导出全部数据,然后将数据导入下游数据库。因此,DM-worker 的主机空间需要容纳所有要导出的上游表,具体存储路径在后续创建迁移任务时指定。
- 当 DM 执行全量数据复制任务时,每个 DM-worker 只绑定一个上游数据库。DM-worker 首先在上游导出全部数据,然后将数据导入下游数据库。因此,DM-worker 的主机空间需要容纳所有要导出的上游表,具体存储路径在后续创建迁移任务时指定。

另外,部署 DM 集群需参照 [DM 集群软硬件环境需求](/dm/dm-hardware-and-software-requirements.md),满足相应要求。
- 部署 DM 集群需参照 [DM 集群软硬件环境需求](/dm/dm-hardware-and-software-requirements.md),满足相应要求。

- 从 v8.0.0 开始,如果需要使用[加密数据库密码](/dm/dm-manage-source.md#加密数据库密码)的方式配置 DM 任务,需要提前在 DM-master 存储一个[用于加解密数据库密码的密钥文件](/dm/dm-customized-secret-key.md),且配置 [`secret-key-path`](/dm/dm-master-configuration-file.md) 后才可使用 `dmctl encrypt` 命令。

## 第 1 步:在中控机上安装 TiUP 组件

Expand Down Expand Up @@ -234,3 +236,7 @@ tiup dm display dm-test
dmctl 是用来控制集群运行命令的工具,推荐[通过 TiUP 获取该工具](/dm/maintain-dm-using-tiup.md#集群控制工具-dmctl)。

dmctl 支持命令模式与交互模式,具体请见[使用 dmctl 运维集群](/dm/dmctl-introduction.md)。

## 第 9 步:加密数据库密码

部署完后,你可以使用加密数据库密码的方式配置 DM 任务。详情请参考[加密数据库密码](/dm/dm-manage-source.md#加密数据库密码)。
5 changes: 4 additions & 1 deletion faq/manage-cluster-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,10 @@ TiKV 的内存占用主要来自于 RocksDB 的 block-cache,默认为系统总

### TiDB 数据和 RawKV 数据可存储于同一个 TiKV 集群里吗?

不可以。TiDB 数据(或使用其他事务 API 生成的数据)依赖于一种特殊的键值格式,和 RawKV API 数据(或其他基于 RawKV 的服务生成的数据)并不兼容。
这取决于你使用的 TiDB 版本以及是否启用了 TiKV API V2 (即 [`storage.api-version = 2`](/tikv-configuration-file.md#api-version-从-v610-版本开始引入))。

- 如果你使用的是 v6.1.0 或之后版本的 TiDB,并且启用了 TiKV API V2,那么 TiDB 数据和 RawKV 数据可以共存于同一个 TiKV 集群。
- 否则,不可以将 TiDB 数据和 RawKV 数据存储于同一个 TiKV 集群中,因为 TiDB 数据(或使用事务 API 创建的数据)的 key 的格式与使用 RawKV API 创建的数据(或来自其他基于 RawKV 的服务生成的数据)不兼容。

## TiDB 测试

Expand Down
156 changes: 153 additions & 3 deletions functions-and-operators/sequence-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,159 @@ TiDB 中的序列函数用于返回或设置使用 [`CREATE SEQUENCE`](/sql-stat

| 函数名称 | 功能描述 |
| :-------- | :-------------------------- |
| `NEXTVAL()``NEXT VALUE FOR` | 返回序列的下一个值 |
| `SETVAL()` | 设置序列的当前值 |
| `LASTVAL()` | 返回序列中最近一个使用过的值 |
| [`NEXTVAL()`](#nextval) | 返回序列的下一个值 |
| [`NEXT VALUE FOR`](#next-value-for) | 返回序列的下一个值(`NEXTVAL()` 的别名) |
| [`SETVAL()`](#setval) | 设置序列的当前值 |
| [`LASTVAL()`](#lastval) | 返回当前会话中最近一次生成的序列值 |

## `NEXTVAL()`

`NEXTVAL()` 函数返回序列的下一个值。

示例:

创建一个序列 `s1`

```sql
CREATE SEQUENCE s1;
```

从序列 `s1` 中获取下一个值:

```sql
SELECT NEXTVAL(s1);
```

输出结果如下:

```
+-------------+
| NEXTVAL(s1) |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
```

## `NEXT VALUE FOR`

`NEXT VALUE FOR` 函数是 [`NEXTVAL()`](#nextval) 的别名。

示例:

使用 `NEXTVAL()` 从序列 `s1` 中获取下一个值:

```sql
SELECT NEXTVAL(s1);
```

输出结果如下:

```
+-------------+
| NEXTVAL(s1) |
+-------------+
| 2 |
+-------------+
1 row in set (0.00 sec)
```

使用 `NEXT VALUE FOR` 从序列 `s1` 中获取下一个值:

```sql
SELECT NEXT VALUE FOR s1;
```

输出结果如下:

```
+-------------------+
| NEXT VALUE FOR s1 |
+-------------------+
| 3 |
+-------------------+
1 row in set (0.00 sec)
```

## `SETVAL()`

`SETVAL(n)` 函数设置序列的当前值。

示例:

从序列 `s1` 中获取下一个值:

```sql
SELECT NEXTVAL(s1);
```

输出结果如下:

```
+-------------+
| NEXTVAL(s1) |
+-------------+
| 4 |
+-------------+
1 row in set (0.00 sec)
```

将序列 `s1` 的当前值设置为 `10`

```sql
SELECT SETVAL(s1, 10);
```

输出结果如下:

```
+----------------+
| SETVAL(s1, 10) |
+----------------+
| 10 |
+----------------+
1 row in set (0.00 sec)
```

验证设置序列的当前值为 `10` 后的下一个值:

```sql
SELECT NEXTVAL(s1);
```

输出结果如下:

```
+-------------+
| NEXTVAL(s1) |
+-------------+
| 11 |
+-------------+
1 row in set (0.00 sec)
```

## `LASTVAL()`

`LASTVAL()` 函数返回**当前会话中**最近一次生成的序列值。

示例:

获取当前会话中最后使用的 `s1` 序列的值:

```sql
SELECT LASTVAL(s1);
```

输出结果如下:

```
+-------------+
| LASTVAL(s1) |
+-------------+
| 11 |
+-------------+
1 row in set (0.00 sec)
```

## MySQL 兼容性

Expand Down
3 changes: 2 additions & 1 deletion hardware-and-software-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ TiDB 作为一款开源一栈式实时 HTAP 数据库,可以很好地部署和
| Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| <ul><li>Red Hat Enterprise Linux 7.3 及以上的 7.x 版本</li><li>CentOS 7.3 及以上的 7.x 版本</li></ul> | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| Amazon Linux 2 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| Amazon Linux 2023 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| Rocky Linux 9.1 及以上的版本 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| 麒麟欧拉版 V10 SP1/SP2 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
| 统信操作系统 (UOS) V20 | <ul><li>x86_64</li><li>ARM 64</li></ul> |
Expand Down Expand Up @@ -103,7 +104,7 @@ TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器
> - 如进行性能相关的测试,避免采用低性能存储和网络硬件配置,防止对测试结果的正确性产生干扰。
> - TiKV 的 SSD 盘推荐使用 NVME 接口以保证读写更快。
> - 如果仅验证功能,建议使用 [TiDB 数据库快速上手指南](/quick-start-with-tidb.md)进行单机功能测试。
> - 从 v6.3.0 开始,在 Linux AMD64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 AVX2 指令集。确保命令 `cat /proc/cpuinfo | grep avx2` 有输出。而在 Linux ARM64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 ARMv8 架构。确保命令 `cat /proc/cpuinfo | grep 'crc32' | grep 'asimd'` 有输出。通过使用向量扩展指令集,TiFlash 的向量化引擎能提供更好的性能。
> - 从 v6.3.0 开始,在 Linux AMD64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 AVX2 指令集。确保命令 `grep avx2 /proc/cpuinfo` 有输出。而在 Linux ARM64 架构的硬件平台部署 TiFlash 时,CPU 必须支持 ARMv8 架构。确保命令 `grep 'crc32' /proc/cpuinfo | grep 'asimd'` 有输出。通过使用向量扩展指令集,TiFlash 的向量化引擎能提供更好的性能。
### 生产环境

Expand Down
Loading

0 comments on commit e5fe530

Please sign in to comment.