CockroachDB 사용방법
노드 3개를 가지고 있는 클러스터를 만들어 보겠습니다.
1. 클러스터 시작
1. cockroach start
명령을 사용하여 첫 번째 노드를 생성합니다.
$ cockroach start \
--insecure \
--store=node1 \
--listen-addr=localhost:26257 \
--http-addr=localhost:8080 \
--join=localhost:26257,localhost:26258,localhost:26259 \
--background
다음과 같은 메시지가 표시됩니다.
*
* WARNING: RUNNING IN INSECURE MODE!
*
* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.
*
* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/v20.1/secure-a-cluster.html
*
*
* INFO: initial startup completed.
* Node will now attempt to join a running cluster, or wait for `cockroach init`.
* Client connections will be accepted after this completes successfully.
* Check the log file(s) for progress.
*
각 플래그 설명
- insecure : 비 보안 모드로 실행.
- store : 저장 장치에 대한 파일 경로 설정.
- listen-addr : 다른 노드 및 클라이언트의 연결을 수신하기 위한 IP/PORT. 여기에 설정된 주소로 해당 노드에 접근할 수 있습니다.
- http-addr : Admin UI에 접근하기 위한 IP/PORT.
- join : 클러스터에 추가할 노드 설정.
- background : 백그라운드에서 실행.
2. 2개 노드를 추가로 생성합니다.
$ cockroach start \
--insecure \
--store=node2 \
--listen-addr=localhost:26258 \
--http-addr=localhost:8081 \
--join=localhost:26257,localhost:26258,localhost:26259 \
--background
$ cockroach start \
--insecure \
--store=node3 \
--listen-addr=localhost:26259 \
--http-addr=localhost:8082 \
--join=localhost:26257,localhost:26258,localhost:26259 \
--background
3.cockroach init
명령을 사용하여 클러스터를 초기화합니다.
$ cockroach init --insecure --host=localhost:26257
2. SQL Client 사용하기
1. cockroach sql
명령을 사용하여 노드 1에 접속합니다.
$ cockroach sql --insecure --host=localhost:26257
2. SQL 문을 실행합니다.
> CREATE DATABASE test;
> CREATE TABLE test.test (a int ,b varchar);
> INSERT INTO test.test (1, 'hello');
> SELECT * FROM test.test;
a | b
----+--------
1 | hello
(1 row)
Time: 2.046ms
3. 노드 1에서 SQL shell을 종료하고 노드 2에서 새로운 shell을 열어봅니다.
> \q
$ cockroach sql --insecure --host=localhost:26258
4. SELECT를 실행합니다.
> SELECT * FROM test.test;
a | b
----+--------
1 | hello
(1 row)
Time: 2.046ms
노드 1과 노드 2에서 동일한 결과를 얻는 것을 확인할 수 있습니다.
5. 노드 2에서 SQL shell을 종료합니다.
> \q
3. Admin UI에 접근
Admin UI에 접근하여 클러스터 전반적인 상태를 확인할 수 있습니다.
1. 웹브라우저에서 http://localhost:8080으로 접근할 수 있습니다.
4. 클러스터 중지
1. cockroach quit 명령을 사용하여 노드를 정상적으로 종료합니다.
$ cockroach quit --inseucre --host=localhost:26257
$ cockroach quit --inseucre --host=localhost:26258
$ cockroach quit --inseucre --host=localhost:26259
마지막 노드를 종료할 때 몇 분의 시간이 소요될 수 있습니다. 너무 오래 걸린다면 강제로 종료하시기 바랍니다.
2. 클러스터를 다시 시작할 계획이 없는 경우 노드의 데이터 저장소를 제거하면 됩니다.
$ rm -rf node1 node2 node3
cockroachDB는 Docker 및 Kubernetes에서도 실행이 가능합니다. 궁금하시다면 아래 링크를 참조하시기 바랍니다.
www.cockroachlabs.com/docs/v20.1/orchestrate-a-local-cluster-with-kubernetes.html