CockroachDB là một cơ sở dữ liệu SQL phân tán có khả năng phục hồi và mở rộng cao được thiết kế để dễ dàng xử lý khối lượng công việc dữ liệu quy mô lớn. Khi được cài đặt trên Ubuntu, nó cung cấp một giải pháp cơ sở dữ liệu nguồn mở, gốc đám mây mang lại tính nhất quán mạnh mẽ, tính khả dụng cao và khả năng mở rộng theo chiều ngang. Kiến trúc của CockroachDB cho phép nó tự động sao chép và phân phối dữ liệu trên nhiều nút, đảm bảo tính toàn vẹn của dữ liệu và giảm thiểu thời gian chết bất chấp lỗi phần cứng. Khả năng tương thích với PostgreSQL khiến nó trở thành lựa chọn linh hoạt cho các nhà phát triển đang tìm kiếm một hệ thống cơ sở dữ liệu mạnh mẽ có khả năng xử lý các ứng dụng đòi hỏi khắt khe. Cài đặt CockroachDB trên Ubuntu cho phép người dùng tận dụng các tính năng nâng cao này trong khi vẫn được hưởng lợi từ tính bảo mật và tính ổn định của hệ điều hành Ubuntu.
CockroachDB lưu trữ dữ liệu của bạn ở nhiều vị trí, giúp việc phân phối dữ liệu nhanh hơn. Ngoài ra, nó dễ dàng mở rộng quy mô và cung cấp tính khả dụng cao cùng khả năng chịu lỗi cho các ứng dụng của bạn.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt cụm CockroachDB trên máy chủ Ubuntu 24.04.
Trước tiên, hãy chạy lệnh bên dưới để thêm người dùng hệ thống mới
sudo adduser --home /opt/cockroachdb --system --group cockroach
Bây giờ hãy thay đổi quyền sở hữu của thư mục
sudo chown -R cockroach:cockroach /opt/cockroachdb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Truy cập trang GitHub CockroachDB và lấy liên kết cho phiên bản mới nhất. Tải xuống bằng lệnh
wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz
Sau khi tải xuống hoàn tất, hãy giải nén CockroachDB và di chuyển
tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/
Bây giờ hãy kiểm tra phiên bản CockroachDB bằng lệnh sau:
cockroach --version
Trong kết quả đầu ra bên dưới, bạn có thể thấy CockroachDB v24 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22366%22%3E%3C/svg%3E
Trước khi thực hiện tiếp, hãy chạy lệnh bên dưới trên cả
mkdir -p /opt/cockroachdb/{certs,private}
Trên
cockroach cert create-ca
–certs-dir=/opt/cockroachdb/certs
–ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22117%22%3E%3C/svg%3E
Bây giờ hãy tải lên
scp /opt/cockroachdb/private/ca.key [emailprotected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [emailprotected]:/opt/cockroachdb/certs/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Để tạo và ký chứng chỉ máy khách cho người dùng
cockroach cert create-client \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22142%22%3E%3C/svg%3E
Trên
cockroach cert create-node \
server1 \
192.168.5.15 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E
Bây giờ, hãy di chuyển đến
cockroach cert create-node \
server2 \
192.168.5.16 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh bên dưới trên cả
sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}
Tạo tệp dịch vụ systemd mới
sudo nano /etc/systemd/system/cockroachdb.service
Đối với
Đối với
Lưu và thoát khỏi tệp khi bạn hoàn tất.
Bây giờ hãy chạy
sudo systemctl daemon-reload
Sau đó, hãy khởi động và bật dịch vụ
sudo systemctl enable --now cockroachdb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22170%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra trạng thái dịch vụ
sudo systemctl status cockroachdb
Bạn sẽ thấy dịch vụ
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22208%22%3E%3C/svg%3E
Trên
cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.15:26257
Bây giờ hãy chạy lệnh bên dưới để kiểm tra nhật ký khởi tạo cụm. Nếu cụm CockroachDB đang chạy, bạn sẽ nhận được đầu ra
grep ‘node starting’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22119%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh
sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 ls
sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 status
Bạn có thể thấy bên dưới rằng
Bây giờ hãy chạy lệnh
sudo cockroach sql --certs-dir=/opt/cockroachdb/certs --host=server1:26257
Chạy các truy vấn sau để tạo người dùng quản trị mới
TẠO NGƯỜI DÙNG alice VỚI MẬT KHẨU 'p4ssw0rd';
CẤP quyền quản trị CHO alice;
Nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Để truy cập bảng điều khiển quản trị web CockroachDB, hãy truy cập http://server1:8080 bằng trình duyệt web của bạn. Nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E
Nếu bạn có tên người dùng và mật khẩu chính xác, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22414%22%3E%3C/svg%3E
CockroachDB lưu trữ dữ liệu của bạn ở nhiều vị trí, giúp việc phân phối dữ liệu nhanh hơn. Ngoài ra, nó dễ dàng mở rộng quy mô và cung cấp tính khả dụng cao cùng khả năng chịu lỗi cho các ứng dụng của bạn.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt cụm CockroachDB trên máy chủ Ubuntu 24.04.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo rằng bạn có những điều sau:- Hai hoặc ba Ubuntu 24.04 máy chủ.
- Người dùng không phải root có quyền quản trị viên.
Thiết lập người dùng
Trước khi cài đặt CockroachDB, bạn sẽ tạo một người dùng và nhóm hệ thống mớicockroach
. Lệnh này sẽ được sử dụng để chạy dịch vụ CockroachDB.Trước tiên, hãy chạy lệnh bên dưới để thêm người dùng hệ thống mới
cockroach
với thư mục gốc /opt/cockroachdb
.sudo adduser --home /opt/cockroachdb --system --group cockroach
Bây giờ hãy thay đổi quyền sở hữu của thư mục
/opt/cockroachdb
thành người dùng và nhóm cockroach
bằng lệnh sau:sudo chown -R cockroach:cockroach /opt/cockroachdb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Tải xuống tệp nhị phân CockroachDB
Để cài đặt CockroachDB, bạn có thể dễ dàng tải xuống từ trang GitHub và di chuyển tệp nhị phân CockroachDB vào Thư mụcbin
trên hệ thống Ubuntu của bạn.Truy cập trang GitHub CockroachDB và lấy liên kết cho phiên bản mới nhất. Tải xuống bằng lệnh
wget
như sau:wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz
Sau khi tải xuống hoàn tất, hãy giải nén CockroachDB và di chuyển
cockroach
tệp nhị phân vào thư mục /usr/bin
.tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/
Bây giờ hãy kiểm tra phiên bản CockroachDB bằng lệnh sau:
cockroach --version
Trong kết quả đầu ra bên dưới, bạn có thể thấy CockroachDB v24 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22366%22%3E%3C/svg%3E
Đang tạo chứng chỉ TLS
Để tạo cụm CockroachDB, bạn phải tạo chứng chỉ SSL/TLS để bảo mật cụm. Bạn cần tạo và phân phối chứng chỉ CA trên nhiều máy chủ, sau đó tạo chứng chỉ cho người dùng và máy chủ.Trước khi thực hiện tiếp, hãy chạy lệnh bên dưới trên cả
server1
và server2
. Với lệnh này, bạn sẽ tạo các thư mục certs
và private
cho các chứng chỉ TLS chuỗi.mkdir -p /opt/cockroachdb/{certs,private}
Tạo chứng chỉ CA
Trong phần này, bạn sẽ tạo chứng chỉ CA từserver1
và tải lên server2
thông qua scp
hoặc sao chép an toàn.Trên
server1
, chạy lệnh bên dưới để tạo chứng chỉ CA (Cơ quan cấp chứng chỉ). Chứng chỉ CA ca.crt
và ca.key
sẽ được tạo.cockroach cert create-ca
–certs-dir=/opt/cockroachdb/certs
–ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22117%22%3E%3C/svg%3E
Bây giờ hãy tải lên
ca.crt
và ca.key
vào server2
bằng scp
hoặc bản sao an toàn. Hãy đảm bảo rằng bạn có thể đăng nhập vào server2
mà không có vấn đề gì.scp /opt/cockroachdb/private/ca.key [emailprotected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [emailprotected]:/opt/cockroachdb/certs/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Tạo chứng chỉ máy khách
Sau khi tạo chứng chỉ CA, bạn sẽ tạo chứng chỉ máy khách để quản lý cụm CockroachDB. Chỉ những người dùng có chứng chỉ này mới có thể kết nối và quản lý cụm CockroachDB.Để tạo và ký chứng chỉ máy khách cho người dùng
root
Chạy lệnh cockroach
sau.cockroach cert create-client \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22142%22%3E%3C/svg%3E
Tạo chứng chỉ máy chủ
Trong phần này, bạn sẽ tạo chứng chỉ máy chủ trên cảserver1
và server2
.Trên
server1
, chạy lệnh bên dưới để tạo chứng chỉ máy chủ. Hãy đảm bảo thay đổi địa chỉ IP và tên máy chủ bằng thông tin của bạn.cockroach cert create-node \
server1 \
192.168.5.15 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E
Bây giờ, hãy di chuyển đến
server2
và tạo chứng chỉ nút với nội dung sau. Thay đổi địa chỉ IP và tên máy chủ bằng thông tin server2
.cockroach cert create-node \
server2 \
192.168.5.16 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh bên dưới trên cả
server1
và server2
để thay đổi quyền sở hữu của certs
và private
thư mục tới người dùng cockroach
.sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}
Chạy CockroachDB dưới dạng dịch vụ
Sau khi tạo chứng chỉ SSL/TLS, bạn sẽ tạo tệp dịch vụ systemd cho từng máy chủ CockroachDB. Điều này cho phép bạn chạy CockroachDB ở chế độ nền và bạn có thể dễ dàng quản lý nó bằngsystemctl
.Tạo tệp dịch vụ systemd mới
/etc/systemd/system/cockroachdb.service
bằng nano
trình soạn thảo.sudo nano /etc/systemd/system/cockroachdb.service
Đối với
server1
, hãy chèn cấu hình bên dưới. Trên tùy chọn --advertise-addr
, nhập địa chỉ IP server1
. Trong tùy chọn --join
, nhập cả server1
và server2
Địa chỉ IP.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.15 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
server2
, chèn cấu hình bên dưới. Trên tùy chọn --advertise-addr
, nhập địa chỉ IP server2
. Trong tùy chọn --join
, nhập cả server1
và server2
Địa chỉ IP.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.16 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
Bây giờ hãy chạy
systemctl
lệnh bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi của bạn.sudo systemctl daemon-reload
Sau đó, hãy khởi động và bật dịch vụ
cockroachdb
trên server1
và server2
.sudo systemctl enable --now cockroachdb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22170%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra trạng thái dịch vụ
cockroachdb
bằng lệnh sau:sudo systemctl status cockroachdb
Bạn sẽ thấy dịch vụ
cockroachdb
đang chạy trên server1
và server2
.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22208%22%3E%3C/svg%3E
Tạo cụm CockroachDB
Vì vậy, CockroachDB đang chạy trên cảserver1
và server2
. Bây giờ bạn có thể khởi tạo cụm CockroachDB từ một trong những máy chủ này.Trên
server1
, hãy chạy lệnh cockroach init
bên dưới để khởi tạo cụm CockroachDB. Nếu thành công, bạn sẽ thấy đầu ra Cluster successfully initialized
.cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.15:26257
Bây giờ hãy chạy lệnh bên dưới để kiểm tra nhật ký khởi tạo cụm. Nếu cụm CockroachDB đang chạy, bạn sẽ nhận được đầu ra
CockroachDB node starting
.grep ‘node starting’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22119%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh
cockroach
bên dưới để xác minh danh sách máy chủ và trạng thái cụm CockroachDB.sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 ls
sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 status
Bạn có thể thấy bên dưới rằng
server1
và server2
có sẵn trên cụm CockroachDB với trạng thái active
.Bây giờ hãy chạy lệnh
cockroach sql
bên dưới để truy cập shell CockroachDB. Bạn có thể quản lý cơ sở dữ liệu và người dùng trong cụm CockroachDB từ đây.sudo cockroach sql --certs-dir=/opt/cockroachdb/certs --host=server1:26257
Chạy các truy vấn sau để tạo người dùng quản trị mới
alice
với mật khẩu p4ssw0rd
.TẠO NGƯỜI DÙNG alice VỚI MẬT KHẨU 'p4ssw0rd';
CẤP quyền quản trị CHO alice;
Nhập
quit
để thoát khỏi Máy chủ CockroachDB.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Truy cập quản trị web CockroachDB
Theo mặc định, quản trị web CockroachDB đang chạy trên cổng8080
. Điều này cho phép bạn quản lý CockroachDB thông qua trình duyệt web.Để truy cập bảng điều khiển quản trị web CockroachDB, hãy truy cập http://server1:8080 bằng trình duyệt web của bạn. Nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E
Nếu bạn có tên người dùng và mật khẩu chính xác, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22414%22%3E%3C/svg%3E