Introduction
CockroachDB is a distributed SQL database built to handle large-scale, high-availability workloads. Installing CockroachDB as a cluster on Debian 12 allows you to harness its scalability and fault tolerance for your applications. In this guide, we'll walk you through the step-by-step process of setting up a CockroachDB cluster on Debian 12.
Prerequisites
Before you begin, make sure you have the following:
- Multiple Debian 12 servers for setting up the cluster
- Root access to each server
- A stable network connection between the servers
Step 1: Install CockroachDB on Debian 12 Servers
First, SSH into each Debian 12 server and download the CockroachDB binary:
wget -qO- https://binaries.cockroachdb.com/cockroach-v22.1.0.linux-amd64.tgz | tar xvz
Move the extracted binary to a directory in your system's PATH:
sudo mv cockroach-v22.1.0.linux-amd64/cockroach /usr/local/bin/
Step 2: Configure CockroachDB Nodes
On each server, create a directory to store CockroachDB data:
sudo mkdir -p /var/lib/cockroach
Initialize the first node as the cluster leader:
cockroach init --certs-dir=/var/lib/cockroach/certs --host=your_first_node_ip
Step 3: Start CockroachDB Nodes
On each server, start the CockroachDB node:
cockroach start --certs-dir=/var/lib/cockroach/certs --advertise-host=your_node_ip
Step 4: Join Nodes to the Cluster
On each server, join the node to the cluster:
cockroach start --certs-dir=/var/lib/cockroach/certs --advertise-host=your_node_ip --join=your_first_node_ip:26257
Step 5: Access CockroachDB Web Interface
Access the CockroachDB web interface using any node's IP address:
http://your_node_ip:8080
Step 6: Verify Cluster Status
Check the status of the CockroachDB cluster using the built-in SQL client:
cockroach sql --certs-dir=/var/lib/cockroach/certs --host=your_first_node_ip:26257 --execute="SHOW CLUSTER STATUS"
Conclusion
Congratulations! You've successfully installed and configured a CockroachDB cluster on Debian 12. You can now leverage CockroachDB's distributed architecture for your high-availability database workloads.