说明:请使用root用户进行操作。
- 集群拓扑如下
| 实例 | 个数 | IP | 配置 |
|---|---|---|---|
| TiKV | 3 | 192.168.56.201 | 使用递增的端口号以避免冲突 |
| TiDB | 1 | 192.168.56.201 | 使用默认端口和其他配置 |
| PD | 1 | 192.168.56.201 | 使用默认端口和其他配置 |
| TiFlash | 1 | 192.168.56.201 | 使用默认端口和其他配置 |
| Monitor | 1 | 192.168.56.201 | 使用默认端口和其他配置 |
1. 安装介质
操作用户:root/Kylin123123
介质:https://tiup-mirrors.pingcap.com/install.sh
2. 虚拟机安装
# 查看box列表
vagrant box list
cd /cygdrive/e/learn_resource/tools/vagrant/box/KylinOS/
vagrant box add kylin10sp2base Vagrant-Kylin-10-SP2.VirtualBox-base.box
# 删除box
vagrant box remove kylin10sp2base
2.1. 编写VagrantFile
cd /cygdrive/d/boxes/
mkdir -p newsql/tidb853 && cd newsql/tidb853
vi Vagrantfile
内容如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "tidb853",
:eth1 => "192.168.56.201",
:mem => "12288",
:cpu => "6"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "kylin10sp2base"
# 第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开
config.ssh.username = 'root'
config.ssh.password = 'Kylin123123'
config.ssh.insert_key = true
# ssh config end
config.vm.box_check_update = false
if Vagrant.has_plugin?("vagrant-vbguest")
config.vbguest.auto_update = false
end
# 禁用系统默认的共享目录
config.vm.synced_folder '.', '/vagrant', disabled: true
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", opts[:name]]
v.customize ["modifyvm", :id, "--memory", opts[:mem]]
v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
end
2.2. 虚拟机基本操作
cd /cygdrive/d/boxes/newsql/tidb853
# 虚拟机操作
vagrant up # 安装或启动虚拟机
vagrant ssh # 实际使用较少,一般只有在ssh客户端连接不上时才使用,推荐使用MobaXterm、Xshell等ssh客户端工具
vagrant status # 查看虚拟机状态
vagrant reload # 重启虚拟机
vagrant halt # 关闭虚拟机
vagrant destroy # 销毁虚拟机
2.3. 主机列表配置(选)
# 设置主机名(集群所有节点)
sudo vi /etc/hosts
配置如下:
127.0.0.1 localhost
# 注意:务必注释# 127.0.1.1 ${HOST_NAME}
# 本机内网IP建议配置于第一行(多个域名情况下)
192.168.56.201 tidb853
2.4. 导出虚拟机
# 退出宿主机
vagrant halt
# 查看虚拟机名称(VagrantFile中box的名称:config.vm.hostname)
vboxmanage list vms
cd /cygdrive/e/learn_resource/tools/vagrant/box/KylinOS/
# 注意:--base后面指定的是虚拟机名称而不是box名称
vagrant package --base tidb853 --output Vagrant-Kylin-10-SP2.VirtualBox-tidb8.5.3.box
3. 安装TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source /root/.bash_profile
# 升级到最新版本
tiup update --seft
# 查看镜像配置
tiup mirror show
离线组件包(选):
# 设置版本
version=v8.5.3
# 手动拉取需要的组件
tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64
######################################
## 若拉取过程中遇到超时情况可以使用wget进行下载
sudo yum install -y wget
cd tidb-community-server-${version}-linux-amd64
wget https://tiup-mirrors.pingcap.com/ctl-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/pd-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/prometheus-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/spark-v2.4.3-any-any.tar.gz
wget https://tiup-mirrors.pingcap.com/tiflash-v8.5.3-linux-amd64.tar.gz
wget https://tiup-mirrors.pingcap.com/tikv-v8.5.3-linux-amd64.tar.gz
######################################
# 压缩
tar zcvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64
# 将压缩包上传或者远程复制到离线安装的服务器
# 解压
tar zxvf tidb-community-server-v8.5.3-linux-amd64.tar.gz
# 将当前镜像地址为离线镜像源
sh tidb-community-server-v8.5.3-linux-amd64/local_install.sh
tiup mirror show # /root/tidb-community-server-v8.5.3-linux-amd64
tiup list
4. TiDB单机伪分布式部署
4.1. 安装TiUP Cluster组件
# 首次安装
tiup cluster
# 更新安装
tiup update --self && tiup update cluster
4.2. 调整系统配置
调整sshd 服务的连接数限制,由默认值10增加至20。
vi /etc/ssh/sshd_config
配置内容如下:
MaxSessions 20
生效配置:
service sshd restart
4.3. 编辑拓扑配置文件
mkdir -p /tidb-deploy
mkdir -p /tidb-data
vi topo.yaml
配置如下:
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
server_configs:
tidb:
instance.tidb_slow_log_threshold: 300
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
replication.enable-placement-rules: true
replication.location-labels: ["host"]
tiflash:
logger.level: "info"
pd_servers:
- host: 192.168.56.201
tidb_servers:
- host: 192.168.56.201
tikv_servers:
- host: 192.168.56.201
port: 20160
status_port: 20180
config:
server.labels: { host: "logic-host-1" }
- host: 192.168.56.201
port: 20161
status_port: 20181
config:
server.labels: { host: "logic-host-2" }
- host: 192.168.56.201
port: 20162
status_port: 20182
config:
server.labels: { host: "logic-host-3" }
tiflash_servers:
- host: 192.168.56.201
monitoring_servers:
- host: 192.168.56.201
grafana_servers:
- host: 192.168.56.201
4.4. 伪分布式部署
tiup cluster deploy tidbcluster v8.5.3 ./topo.yaml --user root -p
# 查看集群列表
tiup cluster list
4.5. 启停TiDB集群
4.5.1. 普通启停
tiup cluster start tidbcluster
tiup cluster stop tidbcluster
4.5.2. 安全启停
tiup cluster start tidbcluster --init
tiup cluster stop tidbcluster
5. 安装MySQL客户端
# 1. 解压缩安装包
cd /data/module/software/
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
# 2. 安装MySQL Client RPM包
cd /data/module/software/
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm --nodeps --force
6. TiDB远程连接
6.1. MySQL Client
mysql --host 127.0.0.1 --port 4000 -u root -- 普通启动方式
mysql --host 127.0.0.1 --port 4000 -u root -p'${PWD}' -- 安全启动方式
6.2. Navicat Premium
此处以Navicat Premium-16.1.2 为例。
- 连接名 :vm-tidb-cluster(自定义)
- 主机 :192.168.56.201
- 端口 :4000
- 用户名 :root
- 密码 :空 | ${安全启动随机密码}
7. 验证
# 查看集群的拓扑结构和状态
tiup cluster display tidbcluster
- Prometheus(Web UI):http://192.168.56.201:9090。
- TiDB Dashboard(Web UI):http://192.168.56.201:2379/dashboard,`root` /空。
- Grafana(Web UI):http://192.168.56.201:3000,
admin/admin。
8. 回退方案
# 先退出tiup playground控制台
tiup clean --all
# 卸载MySQL客户端
sudo rpm -qa | grep mysql
sudo rpm -e --nodeps mysql-community-client-5.7.28-1.el7.x86_64
sudo rpm -e --nodeps mysql-community-libs-5.7.28-1.el7.x86_64
sudo rpm -e --nodeps mysql-community-common-5.7.28-1.el7.x86_64