Skip to content
Permalink
Browse files

*: make code blocks copyable without prefix symbols (#1707)

* *: make code blocks copyable without prefix symbols

* fix six files

* fix 2 files

* dev, v3.0: fix /how-to/configure and /deploy

* dev, v3.0: fix /get-started

* dev. v3.0: fix /how-to/maintain

* dev, v3.0: fix how-to/migrate

* dev, v3.0: how-to/monitor and /scale

* remove the block syntax name to fix format

* dev, v3.0: fix how-to/secure and /troubleshoot

* dev, v3.0: fix /how-to/upgrade

* dev, v3.0: fix /reference/

* dev, v3.0: fix /reference/sql

* dev, v3.0: fix /reference/sql/statements

* dev, v3.0: fix reference/sql/statements

* dev: fix reference/sql/statements

* v3.0: fix reference/sql/statements

* dev, v3.0: fix reference/sql

* dev, v3.0, v2.1: fix reference/tools/data-migration

* dev, v3.0: fix tools/sync-diff-inspector and tidb-binlog

* dev, v3.0: fix the rest of /reference/tools

* dev, v3.0: fix the rest of /reference/
  • Loading branch information...
yikeke committed Sep 18, 2019
1 parent 717bbc8 commit 4f33245d7bb19a3578982034bfd0cf97186aeb4f
Showing 334 changed files with 13,188 additions and 2,632 deletions.
@@ -128,6 +128,8 @@ db-driver=mysql

在数据导入前,需要对 TiDB 进行简单设置。在 MySQL 客户端中执行如下命令:

{{< copyable "sql" >}}

```sql
set global tidb_disable_txn_auto_retry = off;
```
@@ -136,6 +138,8 @@ set global tidb_disable_txn_auto_retry = off;

重新启动 MySQL 客户端执行以下 SQL 语句,创建数据库 `sbtest`

{{< copyable "sql" >}}

```sql
create database sbtest;
```
@@ -153,6 +157,8 @@ create database sbtest;
命令行输入以下命令,开始导入数据,config 文件为上一步中配置的文件:

{{< copyable "shell-regular" >}}

```bash
sysbench --config-file=config oltp_point_select --tables=32 --table-size=10000000 prepare
```
@@ -165,30 +171,40 @@ Sysbench 1.0.14 没有提供数据预热的功能,因此需要手动进行数

以 Sysbench 中某张表 sbtest7 为例,执行如下 SQL 语句 进行数据预热:

{{< copyable "sql" >}}

```sql
SELECT COUNT(pad) FROM sbtest7 USE INDEX (k_7);
```

统计信息收集有助于优化器选择更为准确的执行计划,可以通过 `analyze` 命令来收集表 sbtest 的统计信息,每个表都需要统计。

{{< copyable "sql" >}}

```sql
ANALYZE TABLE sbtest7;
```

### Point select 测试命令

{{< copyable "shell-regular" >}}

```bash
sysbench --config-file=config oltp_point_select --tables=32 --table-size=10000000 run
```

### Update index 测试命令

{{< copyable "shell-regular" >}}

```bash
sysbench --config-file=config oltp_update_index --tables=32 --table-size=10000000 run
```

### Read-only 测试命令

{{< copyable "shell-regular" >}}

```bash
sysbench --config-file=config oltp_read_only --tables=32 --table-size=10000000 run
```
@@ -31,18 +31,24 @@ TPC-C 使用 tpmC 值(Transactions per Minute)来衡量系统最大有效吞

本文使用开源的 BenchmarkSQL 5.0 作为 TPC-C 测试实现并添加了对 MySQL 协议的支持,可以通过以下命令下载测试程序:

{{< copyable "shell-regular" >}}

```shell
git clone -b 5.0-mysql-support-opt-2.1 https://github.com/pingcap/benchmarksql.git
```

安装 java 和 ant,以 CentOS 为例,可以执行以下命令进行安装

{{< copyable "shell-regular" >}}

```shell
sudo yum install -y java ant
```

进入 benchmarksql 目录并执行 ant 构建

{{< copyable "shell-regular" >}}

```shell
cd benchmarksql
ant
@@ -72,8 +78,10 @@ NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39

之后可以通过下面的命令来启动 TiDB:

{{< copyable "shell-regular" >}}

```shell
nohup taskset -c 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38 bin/tidb-server
nohup taskset -c 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38 bin/tidb-server && \
nohup taskset -c 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39 bin/tidb-server
```

@@ -115,20 +123,26 @@ loadWorkers=32 # 导入数据的并发数

首先用 MySQL 客户端连接到 TiDB-Server 并执行:

{{< copyable "sql" >}}

```sql
create database tpcc
```

之后在 shell 中运行 BenchmarkSQL 建表脚本:

{{< copyable "shell-regular" >}}

```shell
cd run
./runSQL.sh props.mysql sql.mysql/tableCreates.sql
cd run && \
./runSQL.sh props.mysql sql.mysql/tableCreates.sql && \
./runSQL.sh props.mysql sql.mysql/indexCreates.sql
```

运行导入数据脚本:

{{< copyable "shell-regular" >}}

```shell
./runLoader.sh props.mysql
```
@@ -141,6 +155,8 @@ cd run

执行 BenchmarkSQL 测试脚本:

{{< copyable "shell-regular" >}}

```shell
nohup ./runBenchmark.sh props.mysql &> test.log &
```
@@ -35,6 +35,8 @@ Sysbench 版本:1.0.17

准备数据命令:

{{< copyable "shell-regular" >}}

```sh
sysbench oltp_common \
--threads=16 \
@@ -49,6 +51,8 @@ sysbench oltp_common \

执行测试命令:

{{< copyable "shell-regular" >}}

```sh
sysbench $testname \
--threads=$threads \
@@ -93,6 +97,8 @@ enabled = true

并设置全局变量:

{{< copyable "sql" >}}

```sql
set global tidb_hashagg_final_concurrency=1;
set global tidb_hashagg_partial_concurrency=1;
@@ -30,6 +30,8 @@ IDC 机器:

本文使用开源的 BenchmarkSQL 5.0 作为 TPC-C 测试工具并添加对 MySQL 协议支持, 可以通过以下命令下载测试程序:

{{< copyable "shell-regular" >}}

```shell
git clone -b 5.0-mysql-support-opt https://github.com/pingcap/benchmarksql.git
```
@@ -40,8 +40,13 @@ TiDB Lightning 默认会对导入数据计算校验和 (checksum),如果校验

TiDB 也支持从 MySQL 命令行运行 `ADMIN CHECKSUM TABLE` 指令来计算校验和。

```text
mysql> ADMIN CHECKSUM TABLE `schema`.`table`;
{{< copyable "sql" >}}

```sql
ADMIN CHECKSUM TABLE `schema`.`table`;
```

```
+---------+------------+---------------------+-----------+-------------+
| Db_name | Table_name | Checksum_crc64_xor | Total_kvs | Total_bytes |
+---------+------------+---------------------+-----------+-------------+
@@ -105,6 +110,8 @@ sql-mode = ""

如果 `tidb-lightning` 曾经异常退出,集群可能仍留在“导入模式” (import mode),不适合在生产环境工作。此时需要强制切换回“普通模式” (normal mode):

{{< copyable "shell-regular" >}}

```sh
tidb-lightning-ctl --switch-mode=normal
```
@@ -285,12 +285,16 @@ Direct 模式就是把写入请求直接封装成 I/O 指令发到磁盘,这

- 随机读测试:

{{< copyable "shell-regular" >}}

```bash
./fio -ioengine=psync -bs=32k -fdatasync=1 -thread -rw=randread -size=10G -filename=fio_randread_test.txt -name='fio randread test' -iodepth=4 -runtime=60 -numjobs=4 -group_reporting --output-format=json --output=fio_randread_result.json
```

- 顺序写和随机读混合测试:

{{< copyable "shell-regular" >}}

```bash
./fio -ioengine=psync -bs=32k -fdatasync=1 -thread -rw=randrw -percentage_random=100,0 -size=10G -filename=fio_randread_write_test.txt -name='fio mixed randread and sequential write test' -iodepth=4 -runtime=60 -numjobs=4 -group_reporting --output-format=json --output=fio_randread_write_test.json
```
@@ -533,6 +537,8 @@ TiDB 支持改变 [per-session](/dev/reference/configuration/tidb-server/tidb-sp

1. 通过在数据库中写 SQL 的方式来调整优先级:

{{< copyable "sql" >}}

```sql
select HIGH_PRIORITY | LOW_PRIORITY count(*) from table_name;
insert HIGH_PRIORITY | LOW_PRIORITY into table_name insert_values;
@@ -731,16 +737,18 @@ DB2、Oracle 到 TiDB 数据迁移(增量+全量),通常做法有:

- 在 Sqoop 中,`--batch` 是指每个批次提交 100 条 statement,但是默认每个 statement 包含 100 条 SQL 语句,所以此时 100 * 100 = 10000 条 SQL 语句,超出了 TiDB 的事务限制 5000 条,可以增加选项 `-Dsqoop.export.records.per.statement=10` 来解决这个问题,完整的用法如下:

```bash
sqoop export \
-Dsqoop.export.records.per.statement=10 \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop ${user} \
--password ${passwd} \
--table ${tab_name} \
--export-dir ${dir} \
--batch
```
{{< copyable "shell-regular" >}}

```bash
sqoop export \
-Dsqoop.export.records.per.statement=10 \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop ${user} \
--password ${passwd} \
--table ${tab_name} \
--export-dir ${dir} \
--batch
```

- 也可以选择增大 tidb 的单个事物语句数量限制,不过这个会导致内存上涨。

@@ -878,8 +886,13 @@ Count 就是暴力扫表,提高并发度能显著的提升速度,修改并

通过 `admin show ddl` 查看当前 job 进度。操作如下:

{{< copyable "sql" >}}

```sql
tidb> admin show ddl\G;
admin show ddl;
```

```
*************************** 1. row ***************************
SCHEMA_VER: 140
OWNER: 1a1c4174-0fcd-4ba0-add9-12d08c4077dc
@@ -1006,6 +1019,8 @@ TiKV 操作繁忙,一般出现在数据库负载比较高时,请检查 TiKV

`GC Life Time` 间隔时间过短,长事务本应读到的数据可能被清理了,可使用如下命令增加 `GC Life Time`

{{< copyable "sql" >}}

```sql
update mysql.tidb set variable_value='30m' where variable_name='tikv_gc_life_time';
```

0 comments on commit 4f33245

Please sign in to comment.
You can’t perform that action at this time.