tidb的docker部署(低配版 測試用)

2021-09-29 18:32:27 字數 4068 閱讀 3023

tidb 簡介

tidb 是 pingcap 公司設計的開源分布式 htap (hybrid transactional and analytical processing) 資料庫,結合了傳統的 rdbms 和 nosql 的最佳特性。tidb 相容 mysql,支援無限的水平擴充套件,具備強一致性和高可用性。tidb 的目標是為 oltp (online transactional processing) 和 olap (online analytical processing) 場景提供一站式的解決方案。

tidb 具備如下特性:

高度相容 mysql

大多數情況下,無需修改**即可從 mysql 輕鬆遷移至 tidb,分庫分表後的 mysql 集群亦可通過 tidb 工具進行實時遷移。

水平彈性擴充套件

通過簡單地增加新節點即可實現 tidb 的水平擴充套件,按需擴充套件吞吐或儲存,輕鬆應對高併發、海量資料場景。

分布式事務

tidb 100% 支援標準的 acid 事務)。

真正金融級高可用

相比於傳統主從 (m-s) 複製方案,基於 raft 的多數派選舉協議可以提供金融級的 100% 資料強一致性保證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復 (auto-failover),無需人工介入。

一站式 htap 解決方案

tidb 作為典型的 oltp 行存資料庫,同時兼具強大的 olap 效能,配合 tispark,可提供一站式 htap 解決方案,乙份儲存同時處理 oltp & olap,無需傳統繁瑣的 etl 過程。

雲原生 sql 資料庫

tidb 是為雲而設計的資料庫,支援公有雲、私有雲和混合雲,使部署、配置和維護變得十分簡單。

tidb 的設計目標是 100% 的 oltp 場景和 80% 的 olap 場景,更複雜的 olap 分析可以通過 tispark 專案來完成。

tidb 對業務沒有任何侵入性,能優雅的替換傳統的資料庫中介軟體、資料庫分庫分表等 sharding 方案。同時它也讓開發運維人員不用關注資料庫 scale 的細節問題,專注於業務開發,極大的提公升研發的生產力。

(簡介摘自官方文件

首先環境要求

需要三颱主機(官方提示需要六臺,其中三颱為tikv主機,三颱為pd主機,一台tidb主機可在pd主機上)

ip分別為:

192.168.1.101 (tidb主機和tikv1主機)

192.168.1.102 (pd1主機與tikv2主機)

192.168.1.103 (pd2主機與tikv3主機)

以下我們用101、102、103來簡稱

在三颱主機上都部署tikv,在101部署tidb,在102和103上部署pd

一、配置yum源(三颱主機都要配置)

1. 配置pd節點

在102和103上配置pd節點

啟動容器

在102主機上

docker run -itd --name=pd1

-p 2379:2379

-p 2380:2380

-v /etc/localtime:/etc/localtime:ro

-v /data:/data

pingcap/pd:latest

–name=「pd1」

–data-dir="/data/pd1"

–client-urls=「

–advertise-client-urls=「

–peer-urls=「

–advertise-peer-urls=「

–initial-cluster=「pd1=

在103主機上

docker run -itd --name=pd2

-p 2379:2379

-p 2380:2380

-v /etc/localtime:/etc/localtime:ro

-v /data:/data

pingcap/pd:latest

–name=「pd2」

–data-dir="/data/pd2"

–client-urls=「

–advertise-client-urls=「

–peer-urls=「

–advertise-peer-urls=「

–initial-cluster=「pd1=

2.配置tikv節點

三颱主機都要配置

101主機上

docker run -d --name tikv1

-p 20160:20160

–ulimit nofile=1000000:1000000

-v /etc/localtime:/etc/localtime:ro

-v /data:/data

pingcap/tikv:latest

–addr=「0.0.0.0:20160」

–advertise-addr=「192.168.1.101:20160」

–data-dir="/data/tikv1"

-pd=「192.168.1.102:2379,192.168.1.103:2379」

102主機上

docker run -d --name tikv2

-p 20160:20160

–ulimit nofile=1000000:1000000

-v /etc/localtime:/etc/localtime:ro

-v /data:/data

pingcap/tikv:latest

–addr=「0.0.0.0:20160」

–advertise-addr=「192.168.1.102:20160」

–data-dir="/data/tikv2"

-pd=「192.168.1.102:2379,192.168.1.103:2379」

103主機上

docker run -d --name tikv3

-p 20160:20160

–ulimit nofile=1000000:1000000

-v /etc/localtime:/etc/localtime:ro

-v /data:/data

pingcap/tikv:latest

–addr=「0.0.0.0:20160」

–advertise-addr=「192.168.1.103:20160」

–data-dir="/data/tikv3"

-pd=「192.168.1.102:2379,192.168.1.103:2379」

3. 配置tidb節點

在101主機上

docker run -d --name tidb

-p 4000:4000

-p 10080:10080

-v /etc/localtime:/etc/localtime:ro

pingcap/tidb:latest

–store=tikv

–path=「192.168.1.102:2379,192.168.1.103:2379」

在啟動容器時,應當先啟動tikv,再啟動pd容器和tidb容器

四、連線測試

使用mysql標準客戶端連線tidb測試:

~]# mysql -h 127.0.0.1 -p 4000 -u root -d test

五、安裝時可能遇到的報錯

檢視容器日誌:

docker logs -f -t --since=「2019-11-11」 --tail=100 33

33 ---------------> 容器的id

2019-11-11 ----> 時間

100 ----------->最後多少行

TiDB測試環境的快速部署

方法一 使用tiup playground快速部署本地測試環境 宣告全域性變數 source bash profile 在當前session執行以下命令啟動集群 tiup playground 預設監聽本地服務,若開通外網訪問許可權,可以通過指定 host 0.0.0.0 也可以指定tidb版本以及...

Docker的使用 Docker中的網路配置

第一種 預設模式,即 docker run it name containername image tag,建立容器是不指定,由docker自由分配 1.docker 容器啟動時,docker會預設分配乙個ip,進入containerone中檢視,ifconfig 172.17.0.3,2.在開啟乙...

Docker的部署安裝

通常情況下,容器化部署應用,便於運維管理,也節省了成本 docker可以理解成輕量級的虛擬化。與虛擬機器不同的,docker這樣的叫容器技術,占用的空間更小,啟動更快,因為它只需要虛擬乙個小規模的環境,不需要虛擬出整個作業系統。這個思想來自於貨櫃 一艘大船上有很多貨櫃,每個貨櫃之間是互不干涉的,這艘...