CockroachDB是一个可扩展的分布式SQL数据库,可以在本地,云端甚至跨云部署,它是一个始终在线的数据库集群,可以具有附加位置,以确保用户的低延迟,无论他们身在何处,CockroachDB还能够在磁盘、机器、机架甚至数据中心故障中幸存,并且延迟时间几乎为零,无需人工干预。
我们将帮助你完成在Ubuntu Server 18.04上安装CockroachDB集群的过程。
前期的准备工作
为了使此过程有效,您需要准备:
* 三台按照Ubuntu Server 18.04的服务器或云服务器。
* 具有sudo权限的帐户
对于我们的Ubuntu服务器,我们将使用以下主机名/ IP地址:
* cockroachdbcontrol 192.168.1.7
* cockroachnode2 192.168.1.8
* cockroachnode3 192.168.1.9
当然,您可以使用您需要的任何主机名和IP地址,如果您确实更改了这些,请务必在本教程中进行更改。
同步时间
首先,确保服务器的时钟同步,为此,请安装chrony。
在每台服务器上打开一个终端窗口并发出命令:
sudo apt-get install chrony -y
安装后,您需要使用您所在国家/地区的NTP池配置chrony。在每台服务器上,发出命令:
sudo nano /etc/chrony/chrony.conf
您需要编辑默认的NTP池行,并将其替换为您所在国家/地区的行。例如,在美国,这些行将是:
pool 0.us.pool.ntp.org iburst maxsources 1
pool 1.us.pool.ntp.org iburst maxsources 1
pool 2.us.pool.ntp.org iburst maxsources 2
pool 3.us.pool.ntp.org iburst maxsources 2
保存并关闭这些文件,使用以下命令重新启动并启用chrony:
sudo systemctl restart chrony
sudo systemctl enable chrony
安装CockroachDB
CockroachDB未通过标准方式安装。相反,您需要下载二进制文件,将其解压缩并将其移动到正确的目录中。这是通过以下命令完成的:
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz
sudo cp cockroach - * / cockroach / usr / local / bin /
创建必要的证书
接下来,为了彼此通信,每个CockroachDB服务器都需要证书,这可以通过USntu Server附带的OpenSSL来完成。首先要做的是创建必要的目录来存放证书,然后为目录设置环境变量。这是在所有三台服务器上完成的。
首先,使用以下命令创建必要的目录:
mkdir -p $ {HOME} /.cockroach-certs /
接下来,使用以下命令设置环境变量:
export COCKROACH_CERTS_DIR ='$ {HOME} /.cockroach-cert
转到cockroachdbcontrol并使用以下命令生成证书颁发机构:
cockroach cert create-ca --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key
现在,我们可以使用scp命令将该密钥复制到其他服务器,并使用以下命令(在cockroachdbcontrol上运行):
scp~ / .cockroach-certs / ca.crt~ / .cockroach-certs / ca.key USER@192.168.1.8:~ / .cockroach-certs /
scp~ / .cockroach-certs / ca.crt~ / .cockroach-certs / ca.key USER@192.168.1.9:〜/ .cockroach-certs /
USER是用于在两个节点上创建证书目录的用户帐户。
接下来,我们需要创建将用于保护SQL shell和集群之间通信的客户端证书。必须在所有三台服务器上运行以下命令:
cockroach cert create-client root --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key
最后,我们必须创建服务器证书。在cockroachdbcontrol上发出以下命令:
cockroach cert create-node localhost $(hostname)192.168.1.7 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key
在cockroachnode2上发出以下命令:
cockroach cert create-node localhost $(hostname)192.168.1.8 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key
在cockroachnode3上发出以下命令:
cockroach cert create-node localhost $(hostname)192.168.1.9 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key
初始化群集
是时候初始化我们的集群了。在cockroachdbcontrol上,发出命令:
cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.7 --listen-addr = 192.168.1.7
您可以使用以下命令检查群集节点状态:
cockroach node status --host=192.168.1.7
加入节点
在控制器接受连接的情况下,我们现在可以加入节点。转到cockroachnode2并发出命令:
cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.8 --listen-addr = 192.168.1.8 --join = 192.168.1.7:26257
接下来,转到cockroachnode3并发出命令:
cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.9 --listen-addr = 192.168.1.9 --join = 192.168.1.7:26257
返回到cockroachdbcontrol并发出命令:
cockroach node status --host=192.168.1.7
您现在应该看到所有节点都已连接到集群
创建数据库用户
回到cockroachdbcontrol并首先使用以下命令登录shell来创建数据库:
cockroach sql --certs-dir = $ COCKROACH_CERTS_DIR --host = 192.168.1.7
使用以下命令创建数据库用户:
CREATE USER username WITH PASSWORD 'password';
其中username是用户名,密码是强密码。
创建用户后,您可以通过http:// SERVER_IP:8080(其中SERVER_IP是cockroachdbcontrol的IP地址)登录到CockroachDB Web界面,并使用您在CockroachDB shell中创建的用户名和密码登录服务。登录后,您可以从用户友好的基于Web的界面开始管理数据库
准备开始运行
这就是设置CockroachDB集群的全部内容,您的可伸缩数据库现在已准备就绪,借助Web界面,您可以轻松创建和管理数据库和群集。
上一条: 什么是机柜托管?它是如何工作的?
下一条: 如何在Apache中设置内容安全策略