Skip to content

Instantly share code, notes, and snippets.

@abhishekmishragithub
Forked from dmagda/database_startup.md
Created July 12, 2022 16:34
Show Gist options
  • Save abhishekmishragithub/5d6df375a9b021da5b4dfc83005ac6ea to your computer and use it in GitHub Desktop.
Save abhishekmishragithub/5d6df375a9b021da5b4dfc83005ac6ea to your computer and use it in GitHub Desktop.

Startup Scripts

Start a database instance within a few seconds on you machine.

PostgreSQL

Start

docker run --name postgresql -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password \
  -p 5432:5432 -v ~/postgresql_data/:/var/lib/postgresql/data -d postgres

and connect:

psql -h 127.0.0.1 --username=postgres

YugabyteDB Multi-Node Cluster

Start

rm -r ~/yb_docker_data
mkdir ~/yb_docker_data

docker network create yugabytedb_network

docker run -d --name yugabytedb_node1 --net yugabytedb_network \
  -p 7001:7000 -p 9000:9000 -p 5433:5433 \
  -v ~/yb_docker_data/node1:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest \
  bin/yugabyted start --listen=yugabytedb_node1 \
  --base_dir=/home/yugabyte/yb_data --daemon=false
  
docker run -d --name yugabytedb_node2 --net yugabytedb_network \
  -v ~/yb_docker_data/node2:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest \
  bin/yugabyted start --join=yugabytedb_node1 --listen=yugabytedb_node2 \
  --base_dir=/home/yugabyte/yb_data --daemon=false
      
docker run -d --name yugabytedb_node3 --net yugabytedb_network \
  -v ~/yb_docker_data/node3:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest \
  bin/yugabyted start --join=yugabytedb_node1 --listen=yugabytedb_node3 \
  --base_dir=/home/yugabyte/yb_data --daemon=false

and connect

psql -h 127.0.0.1 -p 5433 yugabyte -U yugabyte -w

YugabyteDB Geo-Partitioned Cluster

Start

mkdir ~/yb_docker_data

docker network create yugabytedb_network

docker run -d --name yugabytedb_node_us --net yugabytedb_network -p 7001:7000 -p 9000:9000 -p 5433:5433 \
  -v ~/yb_docker_data/node_us:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest bin/yugabyted start --listen=yugabytedb_node_us \
  --base_dir=/home/yugabyte/yb_data --daemon=false \
  --master_flags="placement_zone=A,placement_region=US,placement_cloud=CLOUD" \
  --tserver_flags="placement_zone=A,placement_region=US,placement_cloud=CLOUD"
  
docker run -d --name yugabytedb_node_eu --net yugabytedb_network \
  -v ~/yb_docker_data/node_eu:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest bin/yugabyted start --join=yugabytedb_node_us --listen=yugabytedb_node_eu \
  --base_dir=/home/yugabyte/yb_data --daemon=false \
  --master_flags="placement_zone=A,placement_region=EU,placement_cloud=CLOUD" \
  --tserver_flags="placement_zone=A,placement_region=EU,placement_cloud=CLOUD"
      
docker run -d --name yugabytedb_node_apac --net yugabytedb_network \
  -v ~/yb_docker_data/node_apac:/home/yugabyte/yb_data --restart unless-stopped \
  yugabytedb/yugabyte:latest bin/yugabyted start --join=yugabytedb_node_us --listen=yugabytedb_node_apac \
  --base_dir=/home/yugabyte/yb_data --daemon=false \
 --master_flags="placement_zone=A,placement_region=APAC,placement_cloud=CLOUD" \
  --tserver_flags="placement_zone=A,placement_region=APAC,placement_cloud=CLOUD"

Modify placement:

docker exec -i yugabytedb_node_us \
yb-admin -master_addresses yugabytedb_node_us:7100,yugabytedb_node_eu:7100,yugabytedb_node_apac:7100 \
modify_placement_info CLOUD.US.A,CLOUD.EU.A,CLOUD.APAC.A 3

and connect:

psql -h 127.0.0.1 -p 5433 yugabyte -U yugabyte -w

Clean Up

docker container stop $(docker ps -aq)
docker container rm -v $(docker ps -aq)
docker network rm yugabytedb_network
rm -r ~/yb_docker_data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment