# 새 서버 백업 추가 — 이 폴더 하나면 됩니다

운영서버(백업할 원본) 한 대를 백업 시스템에 추가하는 방법입니다.
할 일은 **두 곳, 세 단계**뿐입니다.

```
[운영서버]  1. setup-master.bat 실행  →  2. MySQL 재시작 1회
                                              ↓
[백업서버]  3. 관리화면에서 서버 등록 → 테이블 선택 → [시딩 시작]
                                              ↓
                                    끝 (나머지는 자동)
```

준비물: 운영서버의 **MySQL root 비밀번호**, **관리자 권한**, **저점 시간대**(재시작 1회 때문).

> **먼저** 백업서버 관리화면 **http://localhost/ → 서버 관리 → "서버 추가"** 를 열면
> 맨 위에 **`이 서버의 server-id : #11`** 처럼 겹치지 않는 값이 표시됩니다.
> 이 숫자를 적어두고 1단계 배치에 입력하세요.

---

## 1단계 — 운영서버: `setup-master.bat` 실행

1. 이 폴더의 **`setup-master.bat` 와 `setup-master.ps1` 두 파일을** 운영서버의 **같은 폴더**로 복사합니다 (USB/원격데스크톱 등).
   > ⚠️ 두 파일은 **한 쌍**입니다. `.bat`(실행기)이 옆에 있는 `.ps1`(실제 작업)을 불러 씁니다. 한쪽만 복사하면 안 됩니다.
   > ⚠️ **메모장으로 열어 다시 저장하지 마세요.** 인코딩이 바뀌어 실행 시 오류가 납니다. (수정이 필요하면 VS Code 에서 `.ps1`은 "UTF-8 with BOM", `.bat`은 그대로 두세요.)
2. **`setup-master.bat`** 을 **우클릭 → 관리자 권한으로 실행**. (`.ps1`을 직접 실행하지 말고 항상 `.bat`으로 실행하세요.)
3. 물어보는 값을 입력합니다:

   | 물어보는 것 | 넣을 값 |
   |---|---|
   | 백업서버 공인 IP | `42.125.196.178` (엔터=기본값) |
   | 이 마스터의 server-id | **관리화면 "서버 추가"에 표시된 # 값** (예: 11) |
   | 바이너리 로그 폴더 | `D:\mysql-binlog` (엔터=기본값) |
   | MySQL root 비밀번호 | 운영서버 root 비번 |
   | 복제 계정 비밀번호 | 아무 값(엔터=자동생성). **화면에 뜨는 값을 적어두세요** |

   → my.ini 설정 + 복제계정 + 방화벽이 자동으로 잡힙니다.
   (기존 my.ini 는 `my.ini.k3bak-날짜` 로 백업되니 안전합니다.)

4. 실행이 끝나면 화면에 **복제 계정 / 비밀번호 / 서비스명**이 표시됩니다. **적어두세요.** (3단계에서 씀)

## 2단계 — 운영서버: MySQL 재시작 (딱 1번)

바이너리 로그를 켜려면 재시작이 필요합니다. **저점 시간에** 하세요.
1단계 끝에 표시된 서비스명으로:

```
net stop <서비스명>
net start <서비스명>
```

> 서비스 중단은 이 재시작 몇 초뿐입니다. 이후 시딩·복제는 운영서버를 멈추지 않습니다.

---

## 3단계 — 백업서버: 관리화면에서 등록 (클릭만)

백업서버에서 브라우저로 **http://localhost/** 접속 (로그인).

1. **서버 관리 → 새 서버 등록**
   - 마스터 IP: 운영서버 공인 IP
   - 포트: `3306`
   - 복제 계정 / 비밀번호: **1단계에서 적어둔 값**
   - 저장 → 이 서버 전용 인스턴스(실시간+지연)가 **자동 생성**됩니다 (1~2분).

2. 잠시 후 그 서버의 **테이블 선택** 화면으로 들어갑니다.
   - 백업할 테이블 체크 (용량 큰 테이블 제외 가능) → **선택 저장**
   - **[시딩 시작]** 버튼 클릭

3. 이후는 **전부 자동**입니다:
   최초 백업(실시간+지연) → 복제 필터 적용 → 실시간 복제 연결.
   화면의 **백업 파이프라인** 표시로 진행 상황을 봅니다.
   **"복제 연결 완료"** 가 뜨면 끝입니다.

---

## 다 되면 이렇게 돌아갑니다

- **실시간 복제**: 운영서버 변경이 즉시 백업서버에 반영
- **3시간 지연 복제**: 실수로 지운 데이터도 3시간 안엔 여기 남아 있음
- **자동 감시**: 복제가 멈추면 5분 안에 자동 재시작
- 관리화면에서 특정 시점 SQL 다운로드, 코드 백업 조회 가능

## 문제가 생기면

- **[시딩 시작]이 비활성**: 인스턴스 생성이 아직 안 끝남 → 1~2분 후 새로고침, 또는 테이블을 아직 안 골랐음
- **파이프라인이 "실패"**: 대개 운영서버 방화벽/계정 문제 → 1단계를 다시 실행하고 재시도
- **되돌리기**: 운영서버 my.ini 문제 시 `my.ini.k3bak-날짜` 를 복원하고 MySQL 재시작

