Search
Duplicate

보조 클러스터(DR) 구성

문서번호 : 11-297911
보조 클러스터를 구성하는 절차입니다.
[정보]
사용자(user), 역할(role), 그룹(group), 권한(grant)과 같은 보안정보는 복제하지 않습니다.
다음 정보로 예를 듭니다.
기본 클러스터 사용자 : dr_user@192.168.0.10 / dr_pw
기본 클러스터 노드들 : MA 192.168.0.10 / LF1 192.168.0.11 / LF2 192.168.0.12
보조 클러스터 사용자 : dr_user@192.168.0.20 / dr_pw
보조 클러스터 노드들 : MA 192.168.0.20 / LF1 192.168.0.21 / LF2 192.168.0.22
DB 포트 : 3306 (모두 같음)
대상 데이터베이스 : test
[주의]
기본 클러스터와 보조 클러스터의 모든 노드들은 서로 연결이 가능해야 합니다. 클러스터의 노드 보기 (SHOW AGGREGATORS; SHOW LEAVES)를 통해 보여지는 노드의 IP/PORT 와 통신이 가능한지 사전에 확인하십시오.

1. 클러스터 버전 간 복제 호환성 확인

일반적으로 기본(소스) 클러스터의 SingleStore DB 버전이 보조(타겟) 클러스터의 버전보다 이전 인 경우 데이터를 복제할 수 있습니다 . 그러나 다음과 같은 몇 가지 예외가 있습니다.
1.
5.8 이전에서 6.0 이상으로 복제할 수 없습니다. 소스 클러스터를 6.0 이상으로 업그레이드해야 합니다.
2.
6.8 이하에서 7.0 이상으로 복 제할 수 없습니다. 소스 클러스터를 7.0 이상으로 업그레이드해야 합니다. (참고, 7.0 부터 복제 방식이 변경됨)
3.
7.0 ( 또는 7.1) 이상 에서 6.8 이하로 복제할 수 없습니다. 대상 클러스터를 소스 클러스터 버전 이상으로 업그레이드해야 합니다.

2. 클러스터 간 네트워크 연결 확인

기본 클러스터와 보조 클러스터의 모든 노드들은 서로 연결이 가능해야 합니다.

1) 노드의 아이피, 포트 확인

클러스터의 모든 노드의 아이피와 포트를 확인합니다.
명령어 : SHOW AGGREGATORS; 와 SHOW LEAVES;
예시
singlestore> show aggregators; +--------------+------+…+ | Host | Port || +--------------+------+…+ | 192.168.0.10 | 3306 || +--------------+------+…+ singlestore> show leaves; +--------------+------+…+ | Host | Port || +--------------+------+…+ | 192.168.0.11 | 3306 || | 192.168.0.12 | 3306 || +--------------+------+…+
Bash
복사

2) 노드 간 통신 확인

보조 클러스터의 모든 노드에서 기본 클러스터의 모든 노드와 연결이 가능한지 확인합니다.
명령어 : telnet <IP> <PORT>
예시(연결됨) : Trying 다음 라인의 로그를 확인하십시오.
telnet 192.168.0.11 3306 Trying 192.168.0.11... Connected to 192.168.1.200. Escape character is '^]'.
Bash
복사
예시(연결 안됨) :
telnet 192.168.0.11 3306 Trying 192.168.0.11...
Bash
복사

3. 복제 설정

데이터베이스의 복제를 위한 설정을 추가하고 확인합니다.
[정보]
사용자 생성 및 권한 부여는 최소한의 범위로 설정하는 것을 권장하며, 호스트(host)는 실제 접속되는 정보를 확인하여 설정하십시오.
이미 권한이 부여된 사용자 (root 등)일 경우 생략될 수 있습니다.

1) 기본 클러스터의 사용자 생성 및 권한 부여

기본 클러스터에 기본 데이터베이스에 접속 할 사용자를 생성하고 REPLICATION SLAVE 권한을 부여 합니다.
1.
기본 클러스터의 MA 접속
2.
사용자 생성
명령어 : CREATE USER '<user_id>'@'<host>' IDENTIFIED BY '<user_password>';
예시
singlestore> CREATE USER dr_user@192.168.0.10 IDENTIFIED BY 'dr_pw;
Bash
복사
3.
권한 부여
명령어 : GRANT CREATE DATABASE ON * TO '<user_id>'@'<host>';
예시
singlestore> GRANT REPLICATION SLAVE ON * TO dr_user@192.168.0.10;
Bash
복사

2) 보조 클러스터의 사용자 생성 및 권한 부여

보조 클러스터에 REPLICATE DATABASE 명령을 실행할 사용자를 생성하고 CREATE DATABASE 권 한을 부여합니다.
1.
보조 클러스터의 MA 접속
2.
사용자 생성
명령어 : CREATE USER '<user_id>'@'<host>' IDENTIFIED BY '<user_password>';
예시
singlestore> CREATE USER dr_user@192.168.0.20 IDENTIFIED BY 'dr_pw;
Bash
복사
3.
권한 부여
명령어 : GRANT CREATE DATABASE ON * TO '<user_id>'@'<host>';
예시
singlestore> GRANT CREATE DATABASE ON * TO dr_user@192.168.0.20;
Bash
복사

3) 사용자 권한 부여 (참고)

사용자에 부여된 권한은 다음 명령어로 확인할 수 있습니다.
명령어 : SHOW GRANTS FOR '<user_id>'@'<host>';
예시
singlestore> SHOW GRANTS FOR dr_user@192.168.0.20;
Bash
복사

4. 데이터베이스 복제 시작

1) 보조 클러스터 MA 접속

명령어 : singlestore -p<db_root_password>
예시
singlestore -proot_pw
Bash
복사

2) 데이터베이스 복제 시작

명령어 : REPLICATE DATABASE db_name [WITH FORCE DIFFERENTIAL] FROM master_user[:'master_password']@master_host[:master_port][/master_db_name];
예시
singlestore> replicate database test from dr_user:'dr_pw'@'192.168.0.10':3306/test;
Bash
복사

5. 데이터베이스 복제 상태 확인

1) 방법 1 : SHOW DATABASES EXTENDED

명령어 : SHOW DATABASES EXTENDED;
예시
singlestore> show databases extended; +----------+ …중략… | Database | Commits | Role | State | Position | Details | AsyncSlaves | SyncSlaves | ConsensusSlaves | CommittedPosition | HardenedPosition | ReplayPosition | Term | LastPageTerm | Memory (MBs) | Pending IOs | Pending blob fsyncs | +----------+ …중략… | test | 0 | async slave | replicating | 0:162 | | 2 | 0 | 0 | 0:161 | 0:162 | 0:161 | 1206001419 | 1206001419 | 0.53 | 0 | …생략…
Bash
복사

2) 방법 2 : SHOW REPLICATION STATUS

명령어 : SHOW REPLICATION STATUS;
예시
singlestore> show replication status; +-------------+ …중략… | Role | Database | Master_URI | Master_State | Master_CommitLSN | Master_HardenedLSN | Master_ReplayLSN | Master_TailLSN | Master_Commits | Connected | Throttling | Slave_URI | Slave_State | Slave_CommitLSN | Slave_HardenedLSN | Slave_ReplayLSN | Slave_TailLSN | Slave_Commits | +-------------+ …중략… | async slave | test | 192.168.0.10:3306/test | online | 0:162 | 0:162 | 0:160 | 0:162 | NULL | yes | no | NULL | replicating | 0:161 | 0:162 | 0:161 | 0:162 | NULL | | master | test | NULL | replicating | 0:161 | 0:162 | 0:161 | 0:162 | NULL | yes | no | 192.168.0.21:3306/test | replicating | 0:161 | 0:162 | 0:161 | 0:162 | NULL | | master | test | NULL | replicating | 0:161 | 0:162 | 0:161 | 0:162 | NULL | yes | no | 192.168.0.22:3306/test | replicating | 0:161 | 0:162 | 0:161 | 0:162 | NULL |
Bash
복사

3) 방법 3 : information_schema.DISTRIBUTED_DATABASES 뷰 확인

명령어 : SELECT * FROM information_schema.DISTRIBUTED_DATABASES;
예시
singlestore> select * from information_schema.distributed_databases; +-------------+ …중략… | DATABASE_ID | DATABASE_NAME | NUM_PARTITIONS | CLUSTER_ID | REMOTE_NAME | IS_SYNC | IS_SYNC_DURABILITY | IS_PAUSED | SITE_ID | +-------------+ …중략… | 2035 | cluster_14276742266378600454 | 0 | 14276742266378600454 | cluster | 0 | 0 | 0 | 0 | | 2036 | test | 8 | 14276742266378600454 | test | 1 | 0 | 0 | 1 | …생략…
Bash
복사

4) 방법 4 : SHOW CLUSTER STATUS

명령어/예시 : SHOW CLUSTER STATUS;
일시 정지(PAUSE)에 대한 상태를 확인할 수는 없습니다.
일자
작성자
비고
2022.5.20
min