CockroachDB — Commands & Recipes
Cluster Setup
# Start single node (dev)
cockroach start-single-node --insecure --store=node1
# Start multi-node cluster
cockroach start --insecure --store=node1 --listen-addr=:26257 --join=node1:26257,node2:26257,node3:26257
cockroach start --insecure --store=node2 --listen-addr=:26258 --join=node1:26257,node2:26257,node3:26257
cockroach start --insecure --store=node3 --listen-addr=:26259 --join=node1:26257,node2:26257,node3:26257
# Initialize cluster
cockroach init --insecure --host=node1:26257
# SQL shell (uses PG wire protocol)
cockroach sql --insecure --host=node1:26257
# or: psql "postgresql://root@node1:26257/defaultdb?sslmode=disable"
Geo-Partitioning
-- Create multi-region database
ALTER DATABASE mydb SET PRIMARY REGION = 'us-east1';
ALTER DATABASE mydb ADD REGION 'eu-west1';
ALTER DATABASE mydb ADD REGION 'ap-southeast1';
-- Pin table data to region (GDPR compliance)
ALTER TABLE users SET LOCALITY REGIONAL BY ROW;
-- Each row's crdb_region column determines where it lives
Operations
# Cluster status
cockroach node status --insecure
# Decommission node (safe removal)
cockroach node decommission <node-id> --insecure
# Backup
cockroach sql -e "BACKUP DATABASE mydb INTO 's3://bucket/backup?AUTH=implicit'"
# Restore
cockroach sql -e "RESTORE DATABASE mydb FROM LATEST IN 's3://bucket/backup?AUTH=implicit'"
# CDC to Kafka
cockroach sql -e "CREATE CHANGEFEED FOR TABLE orders INTO 'kafka://broker:9092' WITH format=json;"
Sources