时间同步服务配置
备注:所有机器都执行
内部网络建议关闭防火墙 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、有时候会异常中断,有可能是时钟同步服务没有启动导致 集群异常中断。