3节点的无证书CockroachDB 集群搭建, 由于CRDB只有一个单二进制文件, 所以部署也非常简单.
物理机部署
将cockroach二进制包上传至服务器的目录/opt, 解压
tar zxf cockroach-v19.1.1.linux-amd64.tar.gz -C /opt
cd /opt
mv cockroach-v19.1.1.linux-amd64 cockroach
cd cockroach
启动cockroach第一个节点
nohup /opt/cockroach/cockroach start --insecure --store=node --host=172.16.104.19 --port=26257 --http-port=18080 &
查看状态
./cockroach node status --insecure --host=172.16.104.19
重复以上命令依次重启第二个,第三个节点,启动时使用–join加入第一个节点
nohup /opt/cockroach/cockroach start --insecure --store=node --host=172.16.104.20 --port=26257 --http-port=18080 --join 172.16.104.19 &
nohup /opt/cockroach/cockroach start --insecure --store=node --host=172.16.104.21 --port=26257 --http-port=18080 --join 172.16.104.19 &
查看集群信息, 3个节点已经组成了一个集群
测试集群
./cockroach node status --insecure --host=172.16.104.19
Docker部署
第一个节点
docker run -d --name=roach1 --hostname=roach1 -p 26257:26257 -p 8080:8080 -v "${PWD}/cockroach-data/roach1:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.5 start --insecure
上述命令创建了一个容器,并在其中启动了第一个CockroachDB集群节点。 涉及指令和参数的介绍:
docker run
:用Docker命令启动一个容器-d
: 指定容器运行在后台--name
:指定容器的名字--hostname
:指定容器的主机名,和name
不同,这个是其他容器加入其所在集群的标签。-p 26257:26257 -p 8080:8080
:指定内部节点和客户端节点的通信端口(26257)映射以及Admin界面从容器到主机的HTTP访问端口映射。-v "${PWD}/cockroach-data/roach1:/cockroach/cockroach-data"
: 挂载一个主机目录作为容器的磁盘,意味着数据和日志将会存在${PWD}/cockroach-data/roach1
cockroachdb/cockroach:v2.0.5 start --insecure
:启动CockroachDB节点命令
添加节点二
docker run -d --name=roach2 --hostname=roach2 -v "${PWD}/cockroach-data/roach2:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.5 start --insecure --join=roach1
添加节点三
docker run -d --name=roach3 --hostname=roach3 -v "${PWD}/cockroach-data/roach3:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.5 start --insecure --join=roach1
测试集群
docker exec -it roach1 ./cockroach sql --insecure
常用操作
登录cockroach, 查看当前存在的数据库
./cockroach sql --insecure --host=172.16.104.19 --port=26257
新建数据库
CREATE database unicorn;
导入数据库表结构
./cockroach sql --insecure --host=172.16.104.19 --port=26257 --database=unicron <unicron.sql
查看用户信息
./cockroach --insecure --host=172.16.104.19 --port=26257 user get root
停止一个节点
./cockroach quit --insecure --host=172.16.104.19