cockroachDB数据库集群安装和开机启动设置

时间同步服务配置

备注:所有机器都执行
内部网络建议关闭防火墙 systemctl stop firewalld.service
并且禁止开机启动 systemctl disable firewalld.service


在集群中的第一台服务器上进行以下操作(192.168.1.236)

1.首先需要ntpd服务
2.查看ntpd服务 systemctl status ntpd
3.vi /etc/ntp.cnf

注解掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加两行
server 127.127.1.0 
fudge  127.127.1.0 stratum 0
 4.启动服务 systemctl start ntpd


5.在其他集群服务中都执行以下操作
vim /etc/ntp.conf
#注释掉其他上游时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
#配置上游时间服务器为本地的ntpd Server服务器
server 192.168.1.236 #第一台的服务器ip地址
fudge 192.168.1.236 stratum 0
 
#配置允许上游时间服务器主动修改本机的时间
restrict 192.168.1.236 nomodify notrap noquery

6.先执行  ntpdate -u 192.168.1.236 同步时间 。然后其余节点就重启 systemctl start ntpd

8.设置开机启动
查看是否有chronyd 服务 systemctl status chronyd.service
如果有就要设置开机禁止启动 systemctl disable chronyd.service
 systemctl enable ntpd

安装 cockroachDB

1.下载安装包https://binaries.cockroachdb.com/cockroach-v2.0.5.linux-amd64.tgz
2.在所有集群机器上解压 tar -zxvf cockXXX.tgz

安全模式:
在236 第一台节点服务器上运行(这里需要新建certs目录,然后直接运行命令就是了,我最开始还犹豫了很久这个命令看起来差不多)
./cockroach cert create-ca --certs-dir=certs   --ca-key=certs/ca.key    --allow-ca-key-reuse --overwrite 生成ca证书
./cockroach cert create-client root    --certs-dir=certs    --ca-key=certs/ca.key    --overwrite 生成client证书
将刚刚生成的certs中的四个文件 都传到其他的集群上面的 certs目录中 没得就新建。
scp -r certs 192.168.1.238:/home/cockroach2.0.5
scp -r certs 192.168.1.237:/home/cockroach2.0.5


然后再在236 执行 ./cockroach cert create-node  192.168.1.236     --certs-dir=certs    --ca-key=certs/ca.key   --overwrite
其余节点一样执行 只是ip地址换一下

新建data目录
启动集群第一台
./cockroach start    --port=26257  --http-port=8081     --store=path=/home/cockroach/data    --certs-dir=/home/cockroach/certs --host=192.168.1.236  --background
 或者执行这个(最好是执行这个)./cockroach start    --port=26257  --http-port=8081 --advertise-host=192.168.1.236  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background
第二台启动
./cockroach start --port=26257 --http-port=8081 --store=path=/home/cockroach/data  --join=192.168.1.236:26257   --join=192.168.1.237:26257 --certs-dir=/home/cockroach/certs    --host=192.168.1.237  --background
或者执行这个./cockroach start    --port=26257  --http-port=8081 --advertise-host=192.168.1.237  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background
第三台启动
./cockroach start --port=26257 --http-port=8081 --store=path=/home/cockroach/data  --join=192.168.1.236:26257   --join=192.168.1.237:26257 --certs-dir=/home/cockroach/certs    --host=192.168.1.238  --background
或者执行这个./cockroach start    --port=26257  --http-port=8081 --advertise-host=192.168.1.238  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background
然后初始化集群
 ./cockroach init --certs-dir=/home/cockroach/certs --host=192.168.8.34(这里随便一个集群的ip地址)
3.创建用户
./cockroach user set datacenter --certs-dir=certs --host=192.168.1.236  --password

新建数据库
create database datacenter;
4.给用户授权
./cockroach sql --certs-dir=certs --host=192.168.1.236  root登录后执行
grant all on database 数据库名 to 用户名;

其他用户登录
./cockroach sql --certs-dir=certs --host=192.168.1.236 --user=datacenter


5.集群退出
./cockroach quit --port=26257 --certs-dir=/home/cockroach/certs --host=192.168.1.236


6、设置开机启动
脚本赋权 两个脚本 rc.local 和 cockroach-service.sh
在节点1服务器的/home/cockroach目录下新建cocoroach-service.sh
写入 下面的内容ip自行改变成自己服务器的。
#!/bin/bash
echo "开始休眠5秒"
sleep 5
echo "启动节点1cr数据库"
./cockroach start    --port=26257  --http-port=8081 --advertise-host=192.168.1.236  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background

然后修改 vi /etc/rc.d/rc.local
在最后添加
nohup /home/cockroach/cockroach-service.sh &

在节点2同样的位置新建脚本名字一样
写入下面的内容,ip地址自行根据服务器进行改变
#!/bin/bash
echo "开始休眠7秒"
sleep 7
ntpdate -u 192.168.1.236 #这里需要和节点1同步一下时间
sleep 3
echo "启动节点2cr数据库"
./cockroach start    --port=26257  --http-port=8081 --advertise-host=192.168.1.237  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background

然后修改 vi /etc/rc.d/rc.local
在最后添加
nohup /home/cockroach/cockroach-service.sh &

在节点3同样的位置新建脚本名字一样
写入下面的内容,ip地址自行根据服务器进行改变
#!/bin/bash
echo "开始休眠9秒"
sleep 9
ntpdate -u 192.168.1.236 #这里需要和节点1同步一下时间
sleep 3
echo "启动节点3cr数据库"
/home/cockroach/cockroach  start    --port=26257  --http-port=8081 --advertise-host=192.168.1.238  --store=path=/home/cockroach/data  --join=192.168.1.236:26257,192.168.1.237:26257,192.168.1.238:26257  --certs-dir=/home/cockroach/certs --cache=.25 --max-sql-memory=.50 --background

然后修改 vi /etc/rc.d/rc.local
在最后添加
nohup /home/cockroach/cockroach-service.sh &


异常处理:
1、某一个节点突然挂掉,。重启命令中需要加入join=还存活的节点ip,然后执行 cockroach init --certs-dir=/home/cockroach/certs--host=集群中的随便一个ip地址
2、关机重启后 启动命令一样的,需要再执行一个cockroach init --certs-dir=/home/cockroach/certs --host=集群中的随便一个ip地址

3、有时候会异常中断,有可能是时钟同步服务没有启动导致 集群异常中断。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值