1、通过ansible安装tidb3.0.4版
每台机器安装好系统,初始化数据硬盘
parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
mkfs.ext4 /dev/sdb
lsblk -f
UUID=7d15bc41-a1e1-428e-9fa3-b25c73132669 /data1 ext4 defaults,nodelalloc,noatime 0 2
mkdir /data1 && mount -a && mount -t ext4
初始化执行脚本,加dns和关闭selinux和firewalld服务
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config && sed -i '/plugins/a\dns=no' /etc/NetworkManager/NetworkManager.conf && sed -i 'a\nameserver 192.168.1.1' /etc/resolv.conf && systemctl stop firewalld && systemctl disable firewalld && reboot
中控机上执行
yum -y install epel-release git curl sshpass python2-pip
useradd -m -d /home/tidb tidb
passwd tidb
修改tidb用户为sudo用户
visudo 加入一条
tidb ALL=(ALL) NOPASSWD: ALL
生成 ssh key: 执行 su 命令从 root 用户切换到 tidb 用户下。
su – tidb
ssh-keygen -t rsa
一路回车生成密钥
然后下载tidb-ansible的脚本
git clone v3.0.4 https://github.com/pingcap/tidb-ansible.git
执行初始化
cd /home/tidb/tidb-ansible
sudo pip install -r ./requirements.txt
ansible –version
在中控机上配置部署机器 ssh 互信及 sudo 规则
cd /home/tidb/tidb-ansible
vi hosts.ini ,将所有的数据库机器都加入
[servers]
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
192.168.1.16
[all:vars]
username = tidb
ntp_server = pool.ntp.org
自动将以上的机器做免密处理
ansible-playbook -i hosts.ini create_users.yml -u root -k
自动将所有的机器进行时间同步
cd /home/tidb/tidb-ansible
ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b
测试环境修改默认参数
/home/tidb/tidb-ansible/roles/check_system_optional/defaults/main.yml
/home/tidb/tidb-ansible/roles/machine_benchmark/defaults/main.yml的内容改为:
配置完成后开始执行
1、执行以下命令如果所有 server 返回 tidb 表示 ssh 互信配置成功
ansible -i inventory.ini all -m shell -a 'whoami'
2、执行以下命令如果所有 server 返回 root 表示 tidb 用户 sudo 免密码配置成功。
ansible -i inventory.ini all -m shell -a 'whoami' –b
3、执行 local_prepare.yml playbook,联网下载 TiDB binary 到中控机:
ansible-playbook local_prepare.yml
4、初始化系统环境,修改内核参数
ansible-playbook bootstrap.yml
5、部署 TiDB 集群软件
ansible-playbook deploy.yml
6、启动 TiDB 集群
ansible-playbook start.yml
2、ansible tidb 3.0.4升级到tiup tidb 4.0.5
下载新的TIUP安装包
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source .bash_profile
which tiup
tiup cluster
tiup update cluster
导入旧的3.04版本的初始配置文件内容,导入前最好将/home/tidb/tidb-ansible 复制备份一份
cp /home/tidb/tidb-ansible /home/tidb/tidb-ansible-3.0.4 -r
tiup cluster import -d /home/tidb/tidb-ansible
查看导入的初始配置文件是否正确,仔细对比,确保没有问题才开始更新。
tiup cluster edit-config test-cluster
如果需要修改初始参数用edit-config不允许时,可以直接修改文件
/home/tidb/.tiup/storage/cluster/clusters/tidb-test/meta.yaml
tiup cluster upgrade test-cluster v4.0.5
3、升级扩容
模版文件参考
https://github.com/pingcap-incubator/tiup-cluster/blob/b41c1b79d0d10eeb833ebc8005603980b28b6329/examples/topology.example.yaml#L179
扩容请执行以下命令,开启binlog,要tiup cluster edit-config tidb-test进行修改并重启
server_configs:
tidb:
log.slow-threshold: 300
binlog.enable: true
binlog.ignore-error: true
先修改scale-out.yaml,
tiup cluster scale-out tidb-test scale-out.yaml
**scale-out.yaml
pump_servers:
- host: 192.168.1.31
ssh_port: 22
port: 8250
deploy_dir: "/data1/deploy/pump-8249"
data_dir: "/data1/deploy/pump-8249/data"
log_dir: "/data1/deploy/log" - host: 192.168.1.32
ssh_port: 22
port: 8250
deploy_dir: "/data1/deploy/pump-8249"
data_dir: "/data1/deploy/pump-8249/data"
log_dir: "/data1/deploy/log"
drainer_servers:
- host: 192.168.1.33
ssh_port: 22
port: 8249
data_dir: "/data1/deploy/drainer-8249/data"
commit_ts: -1
deploy_dir: "/data1/deploy/drainer-8249"
log_dir: "/data1/deploy/log"
config:
syncer.db-type: "mysql"
syncer.to.host: "192.168.1.34"
syncer.to.user: "root"
syncer.to.password: ""
syncer.to.port: 3306