운영 가이드 대개편: 실측 DB명(sokuree_platform_prod) 반영 및 수동 업데이트 절차 내 백업/복구 단계 통합

This commit is contained in:
choibk 2026-01-25 00:11:19 +09:00
parent aa12234bd1
commit 11fe30a683

View File

@ -56,33 +56,60 @@ git push origin v0.3.5
---
## 3. 운영 서버 수동 업데이트 방법 (Production Server)
## 3. 운영 서버 수동 업데이트 및 백업 절차 (Manual Update Full Process)
웹 UI 업데이트가 실패하거나 SSH를 통해 직접 서버에서 제어해야 할 경우 사용합니다.
* **서비스 경로**: `/volume1/web/smartims` (리눅스 운영 환경 기반)
웹 UI 업데이트가 실패하거나 SSH 터미널에서 직접 제어해야 할 경우 사용합니다. 모든 명령어는 **운영 서버(시놀로지)** 환경 기준입니다.
* **서비스 경로**: `/volume1/web/smartims`
* **백업 경로**: `/volume1/backup/smart_ims`
### STEP 1: 원격 정보 확인 및 체크아웃
---
### STEP 1: [필수] 안전을 위한 사전 데이터 백업
업데이트 전, 현재 상태를 보관하기 위해 이미지와 DB를 백업 폴더에 저장합니다.
#### 1-1. 업로드 이미지 압축 백업
```bash
# [위치: /volume1/web/smartims (루트)]
# [위치: /volume1/web/smartims]
tar -czvf /volume1/backup/smart_ims/backup_images_$(date +%Y%m%d).tar.gz server/uploads/
```
# 1. 원격 저장소의 최신 태그 목록 확인 (무엇이 최신인지 먼저 확인)
#### 1-2. 데이터베이스(DB) 덤프 백업
```bash
# [위치: /volume1/web/smartims]
# 시놀로지 MariaDB 10 전용 계정(choibk) 및 포트(3307) 사용
/usr/local/mariadb10/bin/mysqldump -u choibk -p --port 3307 sokuree_platform_prod > /volume1/backup/smart_ims/backup_db_$(date +%Y%m%d).sql
```
---
### STEP 2: 원격 정보 확인 및 체크아웃
최신 소스를 가져오고 특정 버전으로 전환합니다.
```bash
# [위치: /volume1/web/smartims]
# 1. 원격 저장소의 최신 태그 목록 확인
git ls-remote --tags origin
# 2. 태그 정보 강제 업데이트 (원격 저장소와 완벽 동기화)
# 2. 태그 정보 강제 업데이트 (원격 정보를 로컬로 완벽 동기화)
git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags
# 3. 대상 버전으로 강제 체크아웃
# 3. 대상 버전(태그)으로 강제 체크아웃
git checkout -f v0.3.5
```
### STEP 2: 프론트엔드 빌드 및 의존성 업데이트
---
### STEP 3: 프론트엔드 빌드 및 의존성 업데이트
```bash
# [위치: /volume1/web/smartims (루트)]
# [위치: /volume1/web/smartims]
npm install
npm run build
```
### STEP 3: 백엔드 반영 및 서비스 재시작
---
### STEP 4: 백엔드 반영 및 서비스 재시작
```bash
# [위치: /volume1/web/smartims/server]
cd server
@ -92,6 +119,23 @@ pm2 reload smartims-api
---
### STEP 5: [비상시] 데이터 복구 절차 (Restore)
업데이트 중 문제가 발생하여 이전 상태로 되돌려야 할 경우에만 수행합니다.
#### 5-1. 이미지 복구 (압축 해제)
```bash
# [위치: /volume1/web/smartims]
tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./
```
#### 5-2. 데이터베이스(DB) 복원
```bash
# [위치: /volume1/web/smartims]
/usr/local/mariadb10/bin/mysql -u choibk -p --port 3307 sokuree_platform_prod < /volume1/backup/smart_ims/backup_db_[날짜].sql
```
---
## 4. 유용한 Git 명령어 레퍼런스
* **태그 목록 확인**: `git tag -l` (모든 환경의 루트 폴더)
@ -105,52 +149,6 @@ pm2 reload smartims-api
---
## 5. 데이터 백업 및 복구 절차 (시놀로지 전용)
자동 업데이트는 데이터를 안전하게 유지하지만, 만약의 사태나 서버 이전을 위해 현재 운영 중인 백업 폴더(`/volume1/backup/smart_ims`)를 활용한 절차를 안내합니다.
### ✅ 자동 업데이트 시 데이터 안전성
* **파일 안전**: 시스템 관리 메뉴를 통한 **[자동 업데이트]** 실행 시, `server/uploads` 폴더는 Git 추적 제외 대상이므로 **삭제되거나 초기화되지 않고 그대로 유지**됩니다.
* **DB 안전**: 업데이트 시 기존 데이터베이스의 테이블 구조만 업데이트하며, 이미 등록된 자산 데이터는 보존됩니다.
---
### 📦 데이터 백업 절차 (Backup)
운영 서버 SSH 터미널에서 실행하여 지정된 백업 폴더에 저장합니다.
#### 1단계: 업로드 이미지 백업
```bash
# [위치: /volume1/web/smartims]
tar -czvf /volume1/backup/smart_ims/backup_images_$(date +%Y%m%d).tar.gz server/uploads/
```
#### 2단계: 데이터베이스(DB) 백업
시놀로지 MariaDB 10은 보안상 `root` 접근보다 **서비스 전용 계정** 사용을 권장하며, 기본 포트가 `3307`인 경우가 많습니다.
```bash
# [위치: /volume1/web/smartims]
# .env에 등록된 사용자(choibk)와 포트(3307)를 명시하여 백업
/usr/local/mariadb10/bin/mysqldump -u choibk -p --port 3307 smartims > /volume1/backup/smart_ims/backup_db_$(date +%Y%m%d).sql
```
---
### 🔄 데이터 복구 절차 (Restore / Recovery)
서버 재설치 등으로 데이터 복구가 필요한 경우 아래 순서대로 실행합니다.
#### 1단계: 이미지 복구 (압축 해제)
```bash
# [위치: /volume1/web/smartims]
tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./
```
#### 2단계: 데이터베이스(DB) 복원
```bash
# [위치: /volume1/web/smartims]
/usr/local/mariadb10/bin/mysql -u choibk -p --port 3307 smartims < /volume1/backup/smart_ims/backup_db_[날짜].sql
```
---
## 💡 최종 주의사항
1. **DB 계정 확인**: 위 명령어의 `-u choibk`는 본 시스템의 데이터베이스 사용자명입니다. 비밀번호 요청 시 `.env` 파일에 기록된 `DB_PASSWORD`를 입력하십시오.
2. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다.