일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mysql 삭제
- PHP
- mysql 재설치
- 도커
- mysql
- next.js tailwind css
- next.js css framework
- react tailwindcss
- react tailwind css
- Docker ubuntu
- 리액트
- mysql error
- mysql purge
- 리액트 tailwindcss
- react
- 리눅스
- Android
- react typescript
- 리액트 tailwind css
- Docker
- mysql broken install
- react 기초
- mysql 재설치 명령어
- mysql fix install
- next.js tailwindcss
- 리액트 문법
- javascript
- mysql uninstall
- Python
- 안드로이드
- Today
- Total
Developer_hong
[RDBMS] Cluster AUTO_INCREMENT Multiple Increase 본문
데이터 베이스 클러스터링
INSERT 작업하면 AUTO_INCREMENT가 3,6,9 이상하게 증가하는 경우가 있는데
클러스터의 모든 노드가 동시에 같은 테이블에 행을 삽입하려고하는 상황을 방지하기 위함이라고 한다
(이러한 충돌을 피하기 위해 Galera는 클러스터의 노드 수를 기반으로 열 값을 증가한다 의도적으로 설계된 것)
SHOW VARIABLES LIKE '%auto_inc%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| wsrep_cluster_size | 3 |
+-------------------------+-------+
[첫번째 노드]
SHOW VARIABLES LIKE '%auto_inc%'
+-----------------------------------+-------+
| Variable_name | Value |
+----------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 1 |
| wsrep_auto_increment_control | ON |
+-----------------------------------+-------+
[두번째 노드]
SHOW VARIABLES LIKE '%auto_inc%'
+-----------------------------------+-------+
| Variable_name | Value |
+-----------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 2 |
| wsrep_auto_increment_control | ON |
+-----------------------------------+-------+
[세번째 노드]
SHOW VARIABLES LIKE '%auto_inc%'
+-----------------------------------+-------+
| Variable_name | Value |
+-----------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 3 |
| wsrep_auto_increment_control | ON |
+-----------------------------------+-------+
INSERT 결과
+----+----------+
| id | string |
+----+----------+
| 1 | test |
| 3 | test |
| 6 | test |
| 9 | test |
| 12 | test |
+----+----------+
wsrep_auto_increment_control 옵션을 종료하고
> set global wsrep_auto_increment_control=off
INSERT 결과
+----+----------+
| id | string |
+----+----------+
| 1 | test |
| 2 | test |
| 3 | test |
| 4 | test |
| 5 | test |
+----+----------+
그러나 클러스터링 된 3개의 노드에서 동시에 INSERT 작업을 하게되면 데드락 오류가 발생한다
ERROR 1213 (40001) at line 2: WSREP detected deadlock/conflict and aborted the transaction. Try restarting the transaction
'프로그래밍 > RDBMS' 카테고리의 다른 글
mysql 삭제, mysql 재설치 (0) | 2023.01.06 |
---|---|
[RDBMS] ERROR 1006 (HY000): Can't create database (0) | 2021.05.17 |
[DATABASE] ERROR 2002 (HY000): MYSQL 서버 오류 (0) | 2021.05.13 |
percona-xtradb-cluster 설치 (0) | 2021.05.10 |