# 이중화(MariaDB Galera) 환경 서버 재기동시 실행 절차

**URL:** <https://forum.logpresso.com/t/mariadb-galera/205>\
**Category:** How To\
**Created:** [7월 28, 2026, 7:14오전 UTC](https://forum.logpresso.com/t/mariadb-galera/205 "2026-07-28T07:14:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![khlee](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.logpresso.com/khlee/32/107_2.png) [@khlee](https://forum.logpresso.com/u/khlee)\
**Post date:** [7월 28, 2026, 7:14오전 UTC](https://forum.logpresso.com/t/mariadb-galera/205/1 "2026-07-28T07:14:19Z")

</div>

### **개요**

- 서버가 예기치 않게 정지·재기동되는 상황에 대비하여, 이중화 환경에서 Logpresso와 MariaDB(Galera Cluster)의 상황별 기동·정지 절차를 정리한 가이드입니다.
- MariaDB(Galera)는 **한 대만 재기동되는 경우 일반 기동으로 클러스터에 재합류** 하지만, **두 대가 동시에 정지되는 경우 Galera 구조상 수동 부트스트랩이 반드시 필요** 합니다.

* * *

### 주의 사항

- 전체 정지 후 기동 시 반드시 **seqno가 가장 높은(마지막까지 살아 있던) 노드에서 부트스트랩**해야 합니다. 낮은 노드에서 부트스트랩하면 최신 트랜잭션이 유실됩니다.
- Logpresso 기동은 항상 **동일한 OS 계정** 으로 수행합니다. 기동 계정이 바뀌면 파일 소유권 문제로 Permission denied가 발생할 수 있습니다.
- MariaDB 노드 간 3306 / 4444 / 4567 / 4568 포트 통신이 가능해야 합니다. (SST/IST 동기화용)

* * *

### **적용 대상**

- **제품:** Logpresso Sonar (SNR)
- **대상 환경:**
  - 분석서버 2식 이중화 (Active / Standby)
  - MariaDB Galera Cluster 2노드
  - systemd 기반 Linux (RHEL, Rocky 등)

* * *

### **기준 경로**

- 본 가이드의 명령어는 아래 경로를 기준으로 작성되었습니다.

* * *

### **상황별 대응 요약**

| 상황 | 대응 |
| --- | --- |
| 한 대만 재기동 | 재기동된 노드에서 MariaDB 일반 기동 → 동기화 확인 → Logpresso 기동 |
| 계획된 전체 정지·기동 | 정지: Standby → Active 순 / 기동: 마지막 정지 노드에서 부트스트랩 |
| 두 대 동시 비정상 정지 (정전 등) | seqno가 높은 노드 확인 후 해당 노드에서 부트스트랩 |

- 각 상황별 상세 절차는 아래 **상세 절차 1) ~ 3)** 을 참고합니다.

* * *

### **상세 절차**

#### **1) 한 대만 재기동된 경우**

> 반대편 노드가 정상 동작 중인 경우입니다. 재기동된 노드에서만 아래 순서로 기동하며, 이때 부트스트랩(`galera_new_cluster`)이 아닌 **일반 기동** 을 사용합니다.

1. **MariaDB 기동**

- 살아 있는 노드에 자동으로 합류(IST/SST)합니다.

```shell
systemctl start mariadb

```

1. **클러스터 동기화 상태 확인**

```shell
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" # 결과: 2
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_local_state_comment'" # 결과: Synced

```

1. **Logpresso 기동**

```shell
cd /opt/logpresso
./logpresso start

```

* * *

#### **2) 계획된 전체 정지·기동 절차**

> 작업 등으로 두 노드를 모두 정지해야 하는 경우입니다. **마지막에 정지한 노드를 반드시 기록합니다.**

**[정지 순서]**

1. **Logpresso 정지 (양 노드)**

```shell
cd /opt/logpresso
./logpresso stop

```

1. **MariaDB 정지 (Standby 먼저 → Active 마지막)**

```shell
systemctl stop mariadb

```

**[기동 순서]**

1. **마지막에 정지한 노드에서 부트스트랩**

- `grastate.dat`에서 `safe_to_bootstrap: 1` 확인 후 기동합니다.

```shell
cat /var/lib/mysql/grastate.dat
galera_new_cluster

```

1. **반대 노드 MariaDB 기동**

```shell
systemctl start mariadb

```

1. **클러스터 상태 확인 후 Logpresso 기동 (양 노드, 순서 무관)**

```shell
cd /opt/logpresso
./logpresso start

```

* * *

#### **3) 두 대가 동시에 비정상 정지된 경우 (수동 복구 필수)**

> 정전 등으로 양 노드가 동시에 정지되면 양쪽 모두 `safe_to_bootstrap: 0` 상태가 되어 일반 기동이 거부됩니다. 아래 절차로 수동 복구합니다.

1. **양 노드에서 grastate.dat 확인**

- 양 노드 모두 `seqno`가 정상 기록되어 있으면 값을 비교해 높은 노드를 확인하고, 2번은 건너뜁니다.

```shell
cat /var/lib/mysql/grastate.dat

```

1. **마지막 커밋 위치(seqno) 확인 — seqno가 `-1`인 경우에만 수행 (해당 노드 각각)**

- 비정상 정지된 노드는 `seqno`가 `-1`로 남으므로, MariaDB에 기본 포함된 `galera_recovery` 스크립트로 InnoDB 로그에서 마지막 커밋 위치를 확인합니다. (DB가 기동되지는 않습니다.)

```shell
galera_recovery
# 출력 예시 → Recovered position: <uuid>:<seqno>

```

- 스크립트가 없는 환경(바이너리 설치 등)에서는 `mariadbd --wsrep-recover` 실행 후 로그의 `Recovered position` 라인을 확인합니다.

1. **seqno가 더 높은 노드에서 부트스트랩**

- 해당 노드의 `grastate.dat`에서 `safe_to_bootstrap` 값을 1로 수정 후 기동합니다.

```shell
vi /var/lib/mysql/grastate.dat
# safe_to_bootstrap: 0 → 1

galera_new_cluster

```

1. **나머지 노드 기동**

- 전체 동기화(SST)가 발생할 수 있으며, 데이터 용량에 따라 시간이 소요될 수 있습니다.

```shell
systemctl start mariadb

```

1. **클러스터 상태 확인 후 Logpresso 기동 (양 노드)**

```shell
cd /opt/logpresso
./logpresso start

```

* * *

### **검증**

1. **MariaDB 클러스터 상태 확인**

```shell
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" # 결과: 2
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_local_state_comment'" # 결과: Synced

```

1. **Logpresso 프로세스 확인**

```shell
ps -ef | grep araqne

```

1. **기동 로그 확인**

```shell
tail -f /opt/logpresso/log/araqne.log

```

1. **웹 콘솔 접속 및 로그 수집·적재 현황 확인**

---

<div class="post-metadata">

**Author:** ![stoneaxe](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.logpresso.com/stoneaxe/32/139_2.png) [@stoneaxe](https://forum.logpresso.com/u/stoneaxe)\
**Post date:** [7월 28, 2026, 7:41오전 UTC](https://forum.logpresso.com/t/mariadb-galera/205/2 "2026-07-28T07:41:21Z")

</div>

> [@khlee](#):
>
> ```auto
> ./logpresso start
> 
> ```

여기서 언급할 내용은 아니지만 공식 매뉴얼 기준으로는 아래와 같은데요.

logpresso start/stop 하는게 맞을까요?

- [패키지 설치 | 로그프레소 소나 설치 설명서](https://docs.logpresso.com/ko/sonar/5.0/installation/section-install-control-node#outline9)

---

<div class="post-metadata">

**Author:** ![khlee](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.logpresso.com/khlee/32/107_2.png) [@khlee](https://forum.logpresso.com/u/khlee)\
**Post date:** [7월 28, 2026, 7:54오전 UTC](https://forum.logpresso.com/t/mariadb-galera/205/3 "2026-07-28T07:54:39Z")

</div>

안녕하세요 로그프레소 이규호입니다

공식 매뉴얼 기준으로 logpresso 런처를 통해 systemd 에 등록하신 경우 systemd로 기동하시는게 맞습니다.

systemd 에 enabled 가 되어있을 경우 서버재기동 시 Requires=mariadb.service 옵션에 따라서 mariadb 가 기동되고 로그프레소 서비스가 자동으로 실행되게 됩니다.

감사합니다.
