Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
hfxsd committed Oct 27, 2023
2 parents 96af1c9 + 3f4cb95 commit acb89c7
Show file tree
Hide file tree
Showing 32 changed files with 142 additions and 102 deletions.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ For details, see [tips for choosing the affected versions (in Chinese)](https://

- [ ] master (the latest development version)
- [ ] v7.5 (TiDB 7.5 versions)
- [ ] v7.4 (TiDB 7.4 versions)
- [ ] v7.3 (TiDB 7.3 versions)
- [ ] v7.2 (TiDB 7.2 versions)
- [ ] v7.1 (TiDB 7.1 versions)
- [ ] v6.5 (TiDB 6.5 versions)
- [ ] v6.1 (TiDB 6.1 versions)
Expand Down
1 change: 1 addition & 0 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -1007,6 +1007,7 @@
- [遥测](/telemetry.md)
- [错误码](/error-codes.md)
- [通过拓扑 label 进行副本调度](/schedule-replicas-by-topology-labels.md)
- [外部存储服务的 URI 格式](/external-storage-uri.md)
- 内部组件介绍
- [TiDB 后端任务分布式并行执行框架](/tidb-distributed-execution-framework.md)
- [TiDB 全局排序](/tidb-global-sort.md)
Expand Down
4 changes: 2 additions & 2 deletions best-practices/java-app-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Java 应用尽管可以选择在不同的框架中封装,但在最底层一般

在 JDBC 中通常有以下两种处理方式:

- 设置 [`FetchSize``Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。
- 设置 [`FetchSize``Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。

使用流式读取数据时,需要将 `resultset` 读取完成或 close 后,才能继续使用该语句进行下次查询,否则会报错 `No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.`

Expand All @@ -67,7 +67,7 @@ TiDB 中同时支持两种方式,但更推荐使用第一种将 `FetchSize`

### MySQL JDBC 参数

JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。
JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。

#### Prepare 相关参数

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 @@ -100,7 +100,7 @@ TiDB 备份恢复功能可以用于满足以下业务的需求:

TiDB 支持将数据备份到 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage、NFS,或者实现 S3 协议的其他文件存储服务。更多备份存储的详细信息,请参考如下内容:

- [使用 URI 格式指定备份存储](/br/backup-and-restore-storages.md#uri-格式)
- [使用 URI 格式指定备份存储](/external-storage-uri.md)
- [配置备份存储的访问权限](/br/backup-and-restore-storages.md#鉴权)

## 兼容性
Expand Down
50 changes: 2 additions & 48 deletions br/backup-and-restore-storages.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,59 +32,13 @@ BACKUP DATABASE * TO 's3://bucket-name/prefix' SEND_CREDENTIALS_TO_TIKV = FALSE;

### 格式说明

本部分介绍存储服务的 URI 格式
外部存储服务的 URI 格式如下

```shell
[scheme]://[host]/[path]?[parameters]
```

<SimpleTab groupId="storage">
<div label="Amazon S3" value="amazon">

- `scheme``s3`
- `host``bucket name`
- `parameters`

- `access-key`:访问密钥
- `secret-access-key`:秘密访问密钥
- `session-token`:临时会话令牌(BR 尚不支持该参数)
- `use-accelerate-endpoint`:是否在 Amazon S3 上使用加速端点,默认为 `false`
- `endpoint`:Amazon S3 兼容服务自定义端点的 URL,例如 `<https://s3.example.com/>`
- `force-path-style`:使用路径类型 (path-style),而不是虚拟托管类型 (virtual-hosted-style),默认为 `true`
- `storage-class`:上传对象的存储类别,例如 `STANDARD``STANDARD_IA`
- `sse`:加密上传的服务端加密算法,可以设置为空、`AES256``aws:kms`
- `sse-kms-key-id`:如果 `sse` 设置为 `aws:kms`,则使用该参数指定 KMS ID
- `acl`:上传对象的标准 ACL (Canned ACL),例如 `private``authenticated-read`
- `role-arn`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,使用这个参数来指定 IAM 角色的对应 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-arns-and-namespaces.html)(例如 `arn:aws:iam::888888888888:role/my-role`)。关于使用 IAM 角色访问第三方 Amazon S3 数据的场景,请参考 [AWS 相关文档介绍](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)
- `external-id`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,可能需要同时提供正确的[外部 ID](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) 来确保用户有权限代入该 IAM 角色。这个参数用来指定对应的外部 ID,确保成功代入 IAM 角色。外部 ID 可以是任意字符串,并且不是必须的,一般由控制 Amazon S3 数据访问的第三方来指定。如果第三方对于 IAM 角色没有要求指定外部 ID,则可以不需要提供该参数也能顺利代入对应的 IAM 角色,从而访问对应的 Amazon S3 数据。

</div>
<div label="GCS" value="gcs">

- `scheme``gcs``gs`
- `host``bucket name`
- `parameters`

- `credentials-file`:迁移工具节点上凭证 JSON 文件的路径
- `storage-class`:上传对象的存储类别,例如 `STANDARD``COLDLINE`
- `predefined-acl`:上传对象的预定义 ACL,例如 `private``project-private`

</div>
<div label="Azure Blob Storage" value="azure">

- `scheme``azure``azblob`
- `host``container name`
- `parameters`

- `account-name`:存储账户名
- `account-key`:访问密钥
- `sas-token`:共享访问签名令牌
- `access-tier`:上传对象的存储类别,例如 `Hot``Cool``Archive`,默认值为该存储账户的默认访问层。
- `encryption-scope`:服务端的[加密范围 (Encryption Scope)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-scope-manage?tabs=powershell#upload-a-blob-with-an-encryption-scope)
- `encryption-key`:服务端使用的[加密密钥 (Encryption Key)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-customer-provided-keys),采用的加密算法为 AES256

</div>
</SimpleTab>
关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)

### URI 示例

Expand Down
2 changes: 1 addition & 1 deletion br/br-incremental-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ tiup br backup full --pd "${PD_IP}:2379" \

- `--lastbackupts`:上一次的备份时间戳。
- `--ratelimit`**每个 TiKV** 执行备份任务的速度上限(单位 MiB/s)。
- `storage`:数据备份到存储地址。增量备份数据需要与快照备份数据保存在不同的路径下,例如上例保存在全量备份数据下的 `incr` 目录中。详细参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)
- `storage`:数据备份到存储地址。增量备份数据需要与快照备份数据保存在不同的路径下,例如上例保存在全量备份数据下的 `incr` 目录中。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)

## 恢复增量备份数据

Expand Down
10 changes: 5 additions & 5 deletions br/br-pitr-manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Global Flags:
- `task-name`:指定日志备份任务名。该名称也用于查询备份状态、暂停、重启和恢复备份任务等操作。
- `ca``cert``key`:指定使用 mTLS 加密方式与 TiKV 和 PD 进行通讯。
- `--pd`:指定备份集群的 PD 访问地址。br 命令行工具需要访问 PD,发起日志备份任务。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储,以上命令以 S3 为示例。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储,以上命令以 S3 为示例。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。
使用示例:
Expand Down Expand Up @@ -284,7 +284,7 @@ Global Flags:
- `--dry-run`:运行命令,但是不删除文件。
- `--until`:早于该参数指定时间点的日志备份数据会被删除。建议使用快照备份的时间点作为该参数值。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。
使用示例:
Expand Down Expand Up @@ -325,7 +325,7 @@ Global Flags:
该命令只需要访问备份存储,不需要访问备份集群。
以上示例中,`--storage` 为常用参数,它用来指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。
以上示例中,`--storage` 为常用参数,它用来指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。
使用示例:
Expand Down Expand Up @@ -369,12 +369,12 @@ Global Flags:
以上示例只展示了常用的参数,这些参数作用如下:
- `--full-backup-storage`:指定快照(全量)备份的存储地址。如果你要使用 PITR,需要指定该参数,并选择恢复时间点之前最近的快照备份;如果只恢复日志备份数据,则不需要指定该参数。快照备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。
- `--full-backup-storage`:指定快照(全量)备份的存储地址。如果你要使用 PITR,需要指定该参数,并选择恢复时间点之前最近的快照备份;如果只恢复日志备份数据,则不需要指定该参数。快照备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。
- `--restored-ts`:指定恢复到的时间点。如果没有指定该参数,则恢复到日志备份数据最后的可恢复时间点(备份数据的 checkpoint)。
- `--start-ts`:指定日志备份恢复的起始时间点。如果你只恢复日志备份数据,不恢复快照备份,需要指定这个参数。
- `ca``cert``key`:指定使用 mTLS 加密方式与 TiKV 和 PD 进行通讯。
- `--pd`:指定恢复集群的 PD 访问地址。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。
- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。
使用示例:
Expand Down
2 changes: 1 addition & 1 deletion br/br-snapshot-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ tiup br backup full --pd "${PD_IP}:2379" \
以上命令中:

- `--backupts`:快照对应的物理时间点,格式可以是 [TSO](/glossary.md#tso) 或者时间戳,例如 `400036290571534337` 或者 `2018-05-11 01:42:23`。如果该快照的数据被垃圾回收 (GC) 了,那么 `br backup` 命令会报错并退出。如果你没有指定该参数,那么 br 会选取备份开始的时间点所对应的快照。
- `--storage`:数据备份到的存储地址。快照备份支持以 Amazon S3、Google Cloud Storage、Azure Blob Storage 为备份存储,以上命令以 Amazon S3 为示例。详细存储地址格式请参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)
- `--storage`:数据备份到的存储地址。快照备份支持以 Amazon S3、Google Cloud Storage、Azure Blob Storage 为备份存储,以上命令以 Amazon S3 为示例。详细存储地址格式请参考[外部存储服务的 URI 格式](/external-storage-uri.md)
- `--ratelimit`**每个 TiKV** 备份数据的速度上限,单位为 MiB/s。

在快照备份过程中,终端会显示备份进度条。在备份完成后,会输出备份耗时、速度、备份数据大小等信息。
Expand Down
2 changes: 1 addition & 1 deletion br/use-br-command-line-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ br backup full --pd "${PD_IP}:2379" \
### 常用选项

* `--pd`:PD 访问地址选项,例如 `"${PD_IP}:2379"`
* `-s``--storage`:备份数据的存储地址选项。TiDB 备份恢复支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 及 NFS 为备份存储。详细参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)
* `-s``--storage`:备份数据的存储地址选项。TiDB 备份恢复支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 及 NFS 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)
* `--ca`:指定 PEM 格式的受信任 CA 的证书文件路径。
* `--cert`:指定 PEM 格式的 SSL 证书文件路径。
* `--key`:指定 PEM 格式的 SSL 证书密钥文件路径。
Expand Down
2 changes: 1 addition & 1 deletion develop/dev-guide-choose-driver-or-orm.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ TiDB 兼容 MySQL 的协议,但存在部分与 MySQL 不兼容或有差异的

支持等级:**Full**

按照 [MySQL 文档](https://dev.mysql.com/doc/connector-j/8.0/en/)中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 8.0.33 及以上版本。
按照 [MySQL 文档](https://dev.mysql.com/doc/connector-j/en/)中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 8.0.33 及以上版本。

> **建议:**
>
Expand Down
4 changes: 2 additions & 2 deletions develop/dev-guide-connect-to-tidb.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ mysqlsh --sql mysql://root@<tidb_server_host>:4000

## JDBC

你可以使用 [JDBC](https://dev.mysql.com/doc/connector-j/8.0/en/) 驱动连接到 TiDB,这需要创建一个 `MysqlDataSource``MysqlConnectionPoolDataSource` 对象(它们都实现了 `DataSource` 接口),并使用 `setURL` 函数设置连接字符串。
你可以使用 [JDBC](https://dev.mysql.com/doc/connector-j/en/) 驱动连接到 TiDB,这需要创建一个 `MysqlDataSource``MysqlConnectionPoolDataSource` 对象(它们都实现了 `DataSource` 接口),并使用 `setURL` 函数设置连接字符串。

例如:

Expand All @@ -55,7 +55,7 @@ MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&password={password}");
```

有关 JDBC 连接的更多信息,可参考 [JDBC 官方文档](https://dev.mysql.com/doc/connector-j/8.0/en/)
有关 JDBC 连接的更多信息,可参考 [JDBC 官方文档](https://dev.mysql.com/doc/connector-j/en/)

**连接参数**

Expand Down
4 changes: 2 additions & 2 deletions develop/dev-guide-connection-parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,14 @@ Java 应用尽管可以选择在不同的框架中封装,但在最底层一般

在 JDBC 中通常有以下两种处理方式:

- 设置 [**FetchSize**`Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。
- 设置 [**FetchSize**`Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。
- 使用 Cursor Fetch,首先需[设置 **FetchSize**](http://makejavafaster.blogspot.com/2015/06/jdbc-fetch-size-performance.html) 为正整数,且在 JDBC URL 中配置 `useCursorFetch = true`

TiDB 中同时支持两种方式,但更推荐使用第一种将 **FetchSize** 设置为 `Integer.MIN_VALUE` 的方式,比第二种功能实现更简单且执行效率更高。

### MySQL JDBC 参数

JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。
JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。

#### Prepare 相关参数

Expand Down
2 changes: 1 addition & 1 deletion develop/dev-guide-third-party-tools-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ TiDB 在通讯协议中未设置 `SERVER_QUERY_NO_GOOD_INDEX_USED` 与 `SERVER_Q

**描述**

TiDB 不支持 [enablePacketDebug](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-debugging-profiling.html) 参数,这是一个 MySQL Connector/J 用于调试的参数,将保留数据包的 Buffer。这将导致连接的**意外关闭****请勿**打开。
TiDB 不支持 [enablePacketDebug](https://dev.mysql.com/doc/connector-j/en/connector-j-connp-props-debugging-profiling.html) 参数,这是一个 MySQL Connector/J 用于调试的参数,将保留数据包的 Buffer。这将导致连接的**意外关闭****请勿**打开。

**规避方法**

Expand Down
Loading

0 comments on commit acb89c7

Please sign in to comment.