分享知识,分享快乐

0%

新建用户

1
2
useradd tidb
su - tidb

在中控机上部署 TiUP 组件

在中控机上部署 TiUP 组件有两种方式:在线部署和离线部署。

在线部署

以普通用户身份登录中控机。以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成:

  1. 执行如下命令安装 TiUP 工具:

    1
    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  2. 按如下步骤设置 TiUP 环境变量:

    1. 重新声明全局环境变量:

      1
      source .bash_profile
    2. 确认 TiUP 工具是否安装:

      1
      which tiup
  3. 安装 TiUP cluster 组件:

    1
    tiup cluster
  4. 如果已经安装,则更新 TiUP cluster 组件至最新版本:

    1
    tiup update --self && tiup update cluster

    预期输出 “Update successfully!” 字样。

  5. 验证当前 TiUP cluster 版本信息。执行如下命令查看 TiUP cluster 组件版本:

    1
    tiup --binary cluster

优化系统配置

vim /etc/sysctl.conf

1
2
3
4
5
6
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_syncookies = 0
net.core.somaxconn = 32768
vm.swappiness = 0
vm.overcommit_memory = 0
fs.file-max = 1000000
阅读全文 »

迁移全量数据

关闭 GC。

为了保证增量迁移过程中新写入的数据不丢失,在开始备份之前,需要关闭上游集群的垃圾回收 (GC) 机制,以确保系统不再清理历史数据。

执行如下命令关闭 GC:

1
MySQL [test]> SET GLOBAL tidb_gc_enable=FALSE;

备份数据。

在上游集群中执行 BACKUP 语句备份数据:

1
MySQL [(none)]> BACKUP DATABASE * TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://${HOST_IP}:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;

恢复数据。

在下游集群中执行 RESTORE 语句恢复数据:

阅读全文 »

修复tablet

注意: 要连接fe的leader节点

找到错误的tablet

1
SHOW PROC '/statistic/12026';

找到tablet对应错误的 IsErrorState 的节点

1
2
show tablet 341603
SHOW PROC '/dbs/12026/335109/partitions/335078/335110/341603';

setBad

1
ADMIN SET REPLICA STATUS PROPERTIES("tablet_id" = "341603", "backend_id" = "10006" , "status" = "bad");
阅读全文 »

搭建 MinIO 作为备份存储系统 ,兼容S3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio

# 配置访问 minio 的 access-key access-screct-id

export HOST_IP='172.20.192.151'
export MINIO_ROOT_USER='minio'
export MINIO_ROOT_PASSWORD='miniostorage'

# 创建数据目录, 其中 backup 为 bucket 的名称

mkdir -p data/backup

# 启动 minio, 暴露端口在 6060

/opt/module/minio server /opt/module/data --address :6060 &

单节点部署多磁盘

1
/opt/module/minio server --address :6060  /dfs/data1/s3data /dfs/data2/s3data /dfs/data3/s3d &

备份 还原 TIDB数据

1
2
3
4
5
6
7
8
mycli -h172.20.192.70 -P4000 -uroot

BACKUP DATABASE test TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;


mycli -h172.20.192.115 -P4000 -uroot

mysql> RESTORE DATABASE test FROM 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true';
阅读全文 »

cloudcanl 2.2.4 安装部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sudo yum update

# base util

sudo yum install -y yum-utils
sudo yum install -y lsof
sudo yum install -y bc
sudo yum install -y p7zip p7zip-plugins

# install docker

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
systemctl enable docker
sudo wget "https://pc.clougence.com/docker-compose-1.28.3" -O /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# check

docker -v
docker compose version

系统准备

clougence用户ulimit上限调整为102400

1
2
vi  /etc/security/limits.d/20-nproc.conf
## 调节clougence用户的资源限制
1
2
3
# 解压*
7z x cloudcanal-2.2.4.7z -o./cloudcanal_home
cd cloudcanal_home

5. 启动CloudCanal

  • 执行启动命令: sh startup.sh
  • 当终端出现 cloudcanal start 时,即启动成功
    7b00e562-cd45-4905-a626-1356503d8213-image.png

6. 确认启动成功

  • 启动过程将耗时 1 分钟左右,访问控制台 http://{您部署机器的ip}:8111 正确登录并开始操作
阅读全文 »

tidb常用操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
tiup cluster deploy tidb-test-v1 v6.5.2 ./topology.yaml --user root -p
tiup cluster list
tiup cluster clean tidb-test-v1 --all
# tiup cluster destroy tidb-test-v1
tiup cluster start tidb-test-v1 --init
tiup cluster display tidb-test-v1
tiup cluster stop tidb-test-v1
tiup cluster restart tidb-test-v1
tiup cluster edit-config tidb-test-v1
tiup cluster check tidb-test-v1 scale-out.yml --cluster --user root -p
tiup cluster check tidb-test-v1 scale-out.yml --cluster --apply --user root -p
tiup cluster scale-out tidb-test-v1 scale-out.yml --user root -p
tiup ctl:v6.5.2 pd -u http://172.20.192.70:2379 store limit all engine tiflash 200 add-peer
-- 如果你使用 TiUP 部署,可以用 tiup ctl:v<CLUSTER_VERSION> pd 代替 pd-ctl -u <pd_ip:pd_port> 命令。
tiup ctl:v6.5.2 pd store
tiup ctl:v6.5.2 pd -u http://172.20.192.70:2379 store limit store id 8487838 220 add-peer
tiup ctl:v6.5.2 pd -i -u http://172.20.192.70:2379
tiup cluster restart tidb-test-v1 -N 172.20.192.74:9090
tiup cluster reload tidb-test-v1
tiup install bench
tiup diag config clinic.token eyJrIjoicFpJaDJ1a042ZjQ0a2E2NyIsInUiOjYwMywiaWQiOjU3Nn0=
tiup diag collect tidb-test-v1

备份与恢复

如果是 BR 备份,还原之后是同名的;
dumplings 备份的话,可以在还原的时候指定 route 来设置要恢复到的数据库。

1
2
3
4
5
6
7
8
mycli -h172.20.192.70 -P4000 -uroot

BACKUP DATABASE test TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;


mycli -h172.20.192.115 -P4000 -uroot

mysql> RESTORE DATABASE test FROM 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true';

不停机升级

tiup cluster upgrade tidb-prod v6.5.3

重启grafana

tiup cluster restart tidb-prod -R grafana

备份

阅读全文 »

用 arthas 来分析异常进程

arthas使用参考: https://arthas.aliyun.com/doc/quick-start.html

使用和目标进程一致的用户启动,否则可能 attach 失败

1
sudo -u hbase env PATH=$PATH java -jar arthas-boot.jar
1
dashboard

运行 dashboard 命令回车,就可以查看该进程占用资源的总体情况

1
thread -n 3

输出资源占用前三名的线程

通过 thread 命令来获取到进程的 Main Class

1
2
$ thread 1 | grep 'main('
at demo.MathGame.main(MathGame.java:17)
阅读全文 »

EFAK - Kafka可视化管理工具

提取 EFAK

这里我们解压到/data/soft/new目录并解压:

1
2

tar -zxvf efak-xxx-bin.tar.gz

如果之前安装过版本,删除修改后的版本,重命名当前版本,如下图:

1
rm -rf efakmv efak-xxx efak

然后,配置 EFAK 配置文件

1
vi /etc/profileexport KE_HOME=/data/soft/new/efakexport PATH=$PATH:$KE_HOME/bin

最后,我们使用. /etc/profile使配置立即生效。

配置EFAK系统文件 根据自身Kafka集群的实际情况配置EFAK,例如zookeeper地址、Kafka集群的版本类型(zk为低版本,kafka为高版本)、开启安全认证的Kafka集群等。

阅读全文 »

用 Sysbench 测试 TiDB

Sysbench 配置

以下为 Sysbench 配置文件样例:

1
2
3
4
5
6
7
8
9
mysql-host={TIDB_HOST}
mysql-port=4000
mysql-user=root
mysql-password=password
mysql-db=sbtest
time=600
threads={8, 16, 32, 64, 128, 256}
report-interval=10
db-driver=mysql

可根据实际需求调整其参数,其中 TIDB_HOST 为 TiDB server 的 IP 地址(配置文件中不能写多个地址),threads 为测试中的并发连接数,可在 “8, 16, 32, 64, 128, 256” 中调整,导入数据时,建议设置 threads = 8 或者 16。调整后,将该文件保存为名为 config 的文件。

配置文件参考示例如下:

1
2
3
4
5
6
7
8
9
mysql-host=172.16.30.33
mysql-port=4000
mysql-user=root
mysql-password=password
mysql-db=sbtest
time=600
threads=16
report-interval=10
db-driver=mysql

数据导入

注意

如果 TiDB 启用了乐观事务模型(默认为悲观锁模式),当发现并发冲突时,会回滚事务。将 tidb_disable_txn_auto_retry 设置为 off 会开启事务冲突后的自动重试机制,可以尽可能避免事务冲突报错导致 Sysbench 程序退出的问题。

阅读全文 »