TiDB 是 PingCAP 公司自主設計、研發的開源分散式關係型資料庫,是一款同時支持線上事務處理與線上分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分散式資料庫產品,具備水平擴容或者縮容、金融級高可用、實時 HTAP... ...
一、準備工作
1. 四台伺服器(開通外網)
-
117.50.96.236 centos 7.3 64位
-
117.50.96.235 centos 7.3 64位
-
117.50.96.234 centos 7.3 64位
-
117.50.96.233 centos 7.3 64位
2、修改個機器主機名(永久修改)
hostnamectl set-hostname centos701
3. 選取主控機, 並做些簡單的配置
我選了 117.50.96.236 作為主控機器
ssh 到主控機
ssh root@117.50.96.236
添加用戶
useradd -m -d /home/tidb tidb
賦予許可權,並免密
visudo
// 在文件尾部添加如下一行
tidb all=(all) nopasswd: all
切換到 tidb 用戶
su - tidb
創建 ssh 密鑰
ssh-keygen -t rsa
安裝 tidb 依賴工具
安裝 git
sudo yum install git -y
安裝 ansible
sudo yum install ansible -y
克隆 tidb-ansible
git clone -b v3.0.0 https://github.com/pingcap/tidb-ansible.git tidb-ansible-v3.0.0
進入克隆後的文件夾中
cd tidb-ansible-v3.0.0/
二、通過 tidb-ansible 為所有伺服器添加用戶和密鑰
編輯 hosts.ini 文件
vim hosts.ini
[server] #下放所有伺服器的內網 ip
117.50.96.236
117.50.96.235
117.50.96.234
117.50.96.233
[all:vars] #下放你希望為 tidb 服務創建的用戶名(這個用戶等下會在所有機器中被創建)
username = tidb
ntp_server = pool.ntp.org
使用 tidb-ansible 在剛纔配的所有機器中創建用戶
ansible-playbook -i hosts.ini create_users.yml -u root -k
註意:交互部分輸入 root 密碼
配置 tidb 拓撲結構(分配伺服器資源)
編輯 inventory.ini 文件
vim inventory.ini
-
配置拓撲結構為:1個 tidb,3個 pd,3個tikv,1個 主控機
-
[tidb_servers] 放一個 ip,聲明這個伺服器是 tidb 工人
-
[tikv_servers] 放三個 ip,聲明這個三個伺服器是 tikv 工人
-
[pd_servers] 放三個 ip,聲明這三個伺服器是 pd 工人
-
[monitoring_servers] 放一個 ip,聲明這個伺服器是監控(jiangong)
-
[grafana_servers] 同上
-
[monitored_servers] 放所有 ip,聲明這些伺服器需要被監控
-
[alertmanager_servers] 和監控機保持一致
-
[all:vars] 這個要放各個伺服器掛載的磁碟路徑
-
其他配置可以先不動,也可以根據自己需求來。
三、啟動 tidb 集群
預處理配置信息(按照拓撲結構分配資源)
ansible -i inventory.ini all -m shell -a 'whoami'
ansible -i inventory.ini all -m shell -a 'whoami' -b
ansible-playbook local_prepare.yml
此步驟如果出現 Ansible run Faild,ansible version is too low等等錯誤,可能是由於沒有安裝pip,安裝命令如下:
1、沒有python-pip包就執行命令
yum -y install epel-release
2、執行成功之後,再次執行
yum install python-pip
3、對安裝好的pip進行升級
pip install --upgrade pip
4、安裝requirements.txt依賴(需要再tidb目錄下執行此命令)
pip install -r requirements.txt
接下來就要啟動 tidb 集群了,如果伺服器的配置達不到 tidb 要求,集群是無法啟動的。不過,我們可以取消 tidb 的強制驗證策略(僅限測試,生產環境請不要這樣做)
修改 vim bootstrap.yml 取消系統檢查
vim bootstrap.yml
註釋以下內容
#- name: check system # hosts: all # any_errors_fatal: true # roles: #- check_system_static #- { role: check_system_optional, when: not dev_mode|default(false) } #- name: tikv_servers machine benchmark # hosts: tikv_servers # gather_facts: false # roles: #- { role: machine_benchmark, when: not dev_mode|default(false) } // 想要深入看下具體的系統要求和性能要求可以查看這兩個文件 // roles/check_system_optional/defaults/main.yml // roles/machine_benchmark/defaults/main.yml
###運行以下命令取消檢測
ansible-playbook bootstrap.yml --extra-vars "dev_mode=True"
啟動 tidb 集群
ansible-playbook bootstrap.yml
ansible-playbook deploy.yml
ansible-playbook start.yml
測試
查看主控機的埠狀態(如果有如下這些埠,且上述步驟沒有紅色報錯,說明啟動成功了) netstat -tnpl
在瀏覽器中訪問 117.50.96.236:3000(主控機 ip【[grafana_servers]下得IP】加3000埠), 可以看到監控界面(初始用戶和密碼:admin/admin)
啟動集群
此操作會按順序啟動整個TiDB集群所有組件 (包括PD、TiDB、TiKV等組件可監控組件)。
ansible-playbook start.yml
關閉集群
此操作會按順序關閉整個TiDB集群所有組件 (包括PD、TiDB、TiKV等組件可監控組件)。
ansible-playbook stop.yml
清除集群數據
此操作會關閉TiDB、Pump、TiKV、PD服務,並清空Pump、TiKV、PD數據目錄。
ansible-playbook unsafe_cleanup_data.yml
銷毀集群
此操作會關閉集群,並清空部署目錄,若部署目錄為掛載點,會報錯,可忽略。
ansible-playbook unsafe_cleanup.yml
本文轉載自:http://www.toyou.plus/web/wzjs/54.html,更多信息請訪問此網站查看