데이터베이스 관리
경로: /database
외부 데이터베이스를 KIOPS와 연결하고, 데이터 동기화 및 복원을 관리하는 페이지입니다. 여러 데이터베이스를 중앙에서 관리하고 자동화된 동기화 작업을 설정할 수 있습니다.

이 페이지에 접근할 수 없다면 기관 관리자에게 데이터베이스 관리 권한을 요청하세요.
왜 데이터베이스 관리가 필요한가요?
DevSecOps 환경에서는 개발, 테스트, 운영 등 여러 환경의 데이터베이스를 관리해야 합니다. KIOPS의 데이터베이스 관리 기능을 사용하면:
- 중앙 집중 관리: 여러 DB 연결 정보를 한 곳에서 안전하게 관리
- 자동 동기화: 환경 간 데이터를 정기적으로 동기화하여 일관성 유지
- 빠른 복구: 문제 발생 시 특정 시점으로 빠르게 복원
- 보안 강화: SSH 터널링과 SSL 연결로 안전한 DB 접근
지원 데이터베이스
KIOPS는 MySQL/MariaDB 계열을 우선 지원하며, 환경에 따라 추가 데이터베이스 연결도 시도할 수 있습니다.
- MySQL (5.7 이상): 연결, 동기화, 백업/복원을 지원합니다. 가장 널리 사용되는 데이터베이스입니다.
- MariaDB (10.3 이상): 연결, 동기화, 백업/복원을 지원합니다. MySQL과 호환되어 동일 드라이버로 연결되며, 기존 MySQL 애플리케이션도 대부분 그대로 동작합니다.
- PostgreSQL / Oracle 등: 환경에 따라 연결 지원 가능성이 있습니다. 실제 지원 범위는 운영 환경 설정에 따라 달라질 수 있습니다.
주요 기능
DB 연결
데이터베이스 연결을 등록하고 관리하는 핵심 기능입니다.
- 연결 등록: 새로운 DB 연결 정보를 저장합니다. 새 DB를 추가할 때 사용합니다.
- 연결 테스트: 연결이 정상인지 즉시 확인합니다. 등록 전이나 문제 발생 시 사용합니다.
- 연결 방식 선택 (
connection_type): 네트워크 환경에 맞게 세 가지 방식 중 선택합니다.- direct: KIOPS에서 DB로 직접 연결합니다.
- ssh: SSH 터널을 통해 DB에 접근합니다.
- ssh+jump: 점프 서버(bastion host)를 한 번 더 거쳐 DB에 접근합니다.
- SSL/TLS 연결: 암호화된 보안 연결이 필요한 경우 사용합니다.
SSH 터널링은 SSH 연결을 통해 데이터베이스 트래픽을 전달하는 방식으로, 점프 서버(bastion host)를 통해 내부망 DB에 안전하게 접속할 수 있습니다.
동기화 작업
소스 DB와 대상 DB 간의 데이터를 동기화합니다. 개발/테스트 환경에 운영 데이터를 복사하거나, 백업 용도로 활용할 수 있습니다.
- 수동 동기화: 즉시 1회 실행합니다. 테스트 또는 긴급 상황에서 사용합니다.
- 자동 동기화: 스케줄에 따라 반복 실행합니다. 정기적 데이터 갱신에 사용합니다.
- 전체 동기화: 모든 테이블을 동기화합니다. 초기 설정 또는 전체 복제에 사용합니다.
- 선택 동기화: 지정한 테이블만 동기화합니다. 특정 데이터만 필요할 때 사용합니다.
- 소스 우선: 소스 DB 데이터로 대상 DB를 덮어씁니다 (데이터 손실 가능)
- 대상 우선: 충돌 시 대상 DB 데이터를 유지합니다 (소스 변경 무시)
운영 환경에서는 반드시 테스트 후 적용하세요!
데이터 복원
백업 파일이나 스냅샷을 이용해 특정 시점으로 데이터를 복원합니다.
마이그레이션
데이터베이스를 다른 환경으로 이전하거나 업그레이드할 때 사용하는 기능입니다. 마이그레이션은 일회성 이전 작업(개발→스테이징→운영 환경 이전, DB 서버 교체 등)이고, 동기화는 반복적인 데이터 복제 작업입니다.
마이그레이션 탭은 "Source 형태" 라디오로 두 가지 작업을 제공합니다.
- 등록된 DB 연결 (스키마 비교): 소스 DB와 타겟 DB의 스키마를 비교하고, 차이가 발견되면 소스 DB의 구조를 타겟 DB에 적용합니다.
- 스키마 비교: 테이블 구조, 컬럼, 인덱스, FK 관계의 차이를 표 형태로 보여줍니다.
- 마이그레이션 실행: 스키마 차이를 발견한 경우, 소스 DB의 스키마를 타겟 DB에 반영합니다.
- 마이그레이션 전 백업: 스위치를 켜면 실행 전에 타겟 DB를 자동 백업합니다(권장). 문제 발생 시 복구에 활용할 수 있습니다.
- 보관된 데이터 패키지 (1회성 적용): 데이터 패키지 탭에 저장된 SQL 패키지를 타겟 DB에 1회성으로 적용합니다.
- 패키지와 타겟 DB의 엔진 정합성을 자동으로 검사합니다. 같은 엔진(MySQL↔MariaDB 포함)만 변환 없이 적용할 수 있습니다.
- 엔진이 다른 이종 DB(예: MySQL 패키지 → PostgreSQL 타겟)는 "이종 DB — 마이그레이션 불가" 경고와 함께 적용 버튼이 비활성화됩니다.
- 적용 전 패키지 내용 미리보기(포함 테이블·SQL 종류)와 **마이그레이션 검증(dry-run)**으로 오류·충돌을 미리 확인할 수 있습니다.
마이그레이션 탭은 등록된 DB 연결을 비교하거나, 이미 데이터 패키지 탭에 보관된 SQL 패키지를 적용하는 두 가지 경로만 제공합니다. 새 SQL 덤프 파일을 KIOPS로 가져오려면 데이터 패키지 탭의 SQL 파일 업로드 기능을 사용하세요(아래 데이터 패키지 저장소 참고).
데이터 패키지 저장소
보유한 SQL 덤프 파일을 KIOPS 안에 업로드해 보관해 두는 저장소입니다. 한 번 등록해 두면 여러 환경에 같은 데이터를 그대로 다시 적용할 수 있습니다. SQL 덤프 파일을 KIOPS로 가져오는 입구는 이 탭의 SQL 파일 업로드 버튼뿐입니다.
- 위치: [데이터베이스 관리] 페이지의 데이터 패키지 탭
- 컬럼 구성: 이름 / 종류(임포트 또는 엑스포트) / DB 타입 / 크기 / 상태 / 생성일 / 작업
- 임포트(import): 사용자가 보유한 SQL 파일을 업로드해 등록한 패키지
- 엑스포트(export): KIOPS가 직접 source DB를 dump한 패키지 (해당 기능 활성화 시)
- 상태 태그 (패키지의 진행 상태를 이 태그로 추적합니다):
ready(파랑, "준비") — 적용 가능한 준비 완료 상태applying(주황, "적용 중") — 현재 어떤 target DB에 적용 중applied(초록, "적용됨") — 적용에 성공한 상태failed(빨강, "실패") — 적용 중 오류 발생 (상태 태그에 마우스를 올리면 오류 메시지 표시)deleted(회색, "삭제됨") — 삭제 처리된 항목
- 주요 액션:
- SQL 파일 업로드:
.sql또는.sql.gz파일을 선택하면 즉시 업로드되어 저장소에 보관됩니다(별도 모달 없이 파일 선택만으로 진행). 업로드 시점에는 적용하지 않으며, 상태가ready가 됩니다. - 다운로드: 저장된 패키지를 로컬 PC로 받아옵니다. 다른 곳에 보내거나 별도 보관할 때 사용합니다.
- 적용: 저장된 덤프를 골라 target DB에 적용합니다 (버튼 툴팁: "적용"). 클릭하면 패키지 적용 모달이 열립니다.
- 삭제: 더 이상 필요 없는 패키지를 제거합니다 (확인 팝업 표시).
- 새로고침: 목록을 최신 상태로 갱신합니다.
- SQL 파일 업로드:
- 버튼 활성화 규칙:
applying/deleted상태의 패키지는 적용 버튼이 비활성화되며,deleted상태에서는 다운로드도 불가합니다.
- 30일 보관 정책: 등록된 패키지는 생성 후 30일이 지나면 자동으로 정리됩니다. 장기 보존이 필요한 덤프는 로컬에 다운로드해 두세요.
- 기관당 5GB 한도: 한 기관이 저장소에 보관할 수 있는 총 용량은 5GB까지입니다. 업로드/적용 시점에 한도가 초과되면 작업이 거부됩니다.
DB 백업 관리
데이터베이스를 직접 백업하고 복원하는 기능입니다. KIOPS의 인프라 백업(etcd, Docker)과 별도로 DB 데이터만 백업할 수 있습니다.
- 수동 백업: 즉시 백업을 생성합니다. 중요한 작업 전 현재 상태를 보존할 때 사용합니다.
- 예약 백업: 지정된 스케줄에 따라 자동으로 백업합니다. 매일 새벽, 매주 일요일 등 원하는 주기를 설정할 수 있습니다.
- 백업 보관 정책: 환경 설정에 따라 보관 기간 또는 보관 개수 기준으로 오래된 백업을 정리할 수 있습니다 (실제 정책은 운영 환경에 따라 다름).
- 특정 시점 복원: 백업 목록에서 원하는 시점을 선택하여 복원합니다.
백업 중에는 DB 성능이 일시적으로 저하될 수 있고, 대용량 DB는 시간이 오래 걸릴 수 있으므로 운영 DB는 서비스 영향이 적은 시간(새벽)에 실행하는 것을 권장합니다.
UI 구성
데이터베이스 관리 페이지는 다음 6개 탭으로 구성됩니다. 각 탭은 사용자 권한에 따라 표시 여부가 달라질 수 있으며, 동기화 작업 / 마이그레이션 탭은 해당 권한이 있는 사용자에게만 표시됩니다.
- DB 연결: 데이터베이스 연결 정보를 등록하고 관리합니다. 연결 목록, 상태, 타입을 확인하고 새 연결을 추가할 수 있습니다.
- 동기화 작업: 두 DB 간 데이터 동기화를 설정하고 실행합니다. 작업 목록, 스케줄, 다음 실행 시간을 확인할 수 있습니다. (동기화 권한 필요)
- 마이그레이션: "Source 형태" 라디오로 ① 등록된 DB 연결 간 스키마 비교 + 마이그레이션, ② 보관된 데이터 패키지의 1회성 적용 두 가지를 제공합니다. (마이그레이션 권한 필요)
- 백업 관리: DB 백업을 생성하고 복원합니다. 정기 백업 스케줄 설정과 복원 이력을 관리할 수 있습니다.
- 데이터 패키지: 보유한 SQL 덤프 파일을 KIOPS 안에 업로드해 저장하고 재적용/다운로드/삭제할 수 있는 저장소입니다. 30일 보관, 기관당 5GB 제한이 적용됩니다.
- 실행 이력: 동기화, 마이그레이션, 백업 등 모든 작업의 실행 기록을 조회합니다. 실행 시간, 결과, 오류 메시지를 확인할 수 있습니다.
통계 카드
페이지 상단에는 한눈에 현황을 확인할 수 있는 통계 카드가 표시됩니다. 통계 카드는 DB 연결 / 마이그레이션 / 백업 / 동기화 작업의 4개만 노출되며, 데이터 패키지는 통계 카드에 포함되지 않습니다.
- DB 연결 개수: 현재 등록된 DB 연결의 총 개수
- 마이그레이션: 마이그레이션 작업 수 및 최근 상태
- 백업: 등록된 백업 정책/이력 수
- 동기화 작업: 등록된 동기화 작업의 수
PlatformAdmin 전용 페이지
탐색기(/db-explorer)와 모니터링(/db-monitoring)은 PlatformAdmin 전용 라우트로 분리되어 있으며, 일반 사용자의 [데이터베이스 관리] 페이지에는 노출되지 않습니다. PlatformAdmin 권한이 있는 경우에만 별도 메뉴를 통해 접근할 수 있습니다.
연결 목록에서 확인할 수 있는 정보
- 이름: 연결을 쉽게 식별할 수 있는 이름 (예: "운영DB", "개발DB")
- 타입: MySQL, MariaDB, PostgreSQL 등
- 호스트: DB 서버 주소
- 포트: DB 포트 번호
- 연결 상태: 현재 연결 가능 여부 (초록색: 정상, 빨간색: 연결 불가)
용어 설명
처음 접하는 용어들을 쉽게 설명합니다.
- 스키마(Schema): 데이터베이스의 논리적 구조(테이블, 관계 등)입니다. MySQL에서는 데이터베이스와 같은 의미로 사용됩니다.
- SSL/TLS: 네트워크 통신을 암호화하는 보안 프로토콜입니다. HTTPS에서 사용하는 것과 동일합니다.
- SSH 터널링: SSH 연결을 통해 다른 서비스의 트래픽을 안전하게 전달하는 기술입니다.
- cron 표현식: Unix 계열 OS에서 정기 작업 스케줄을 지정하는 표준 문법입니다.
- 덤프(Dump): 데이터베이스의 구조와 데이터를 SQL 파일로 내보내는 것입니다.
- 점프 서버: 외부에서 내부망에 접근하기 위한 중계 서버입니다 (bastion host라고도 합니다).
사용 방법
1. DB 연결 등록하기
새로운 데이터베이스 연결을 등록하는 방법입니다.

Step 1: 연결 추가 시작
- [데이터베이스 관리] 페이지로 이동합니다.
- DB 연결 탭을 선택합니다.
- 우측 상단의 연결 추가 버튼을 클릭합니다.
Step 2: 기본 정보 입력
- 연결 이름 (필수): 식별 가능한 이름입니다. 예: "운영-사용자DB"
- DB 타입 (필수): 데이터베이스 종류입니다. 예: MySQL
- 호스트 (필수): 서버 IP 또는 도메인입니다. 예: 192.168.1.100
- 포트 (필수): DB 포트 번호입니다. 기본 포트는 MySQL/MariaDB는 3306, PostgreSQL은 5432, Oracle은 1521이며, 기본 포트가 아닌 경우 실제 사용하는 포트를 입력하세요.
- 데이터베이스 (필수): DB 이름(스키마)입니다. 예: kiwi_prod
- 사용자명 (필수): DB 계정입니다. 예: admin
- 비밀번호 (필수): DB 비밀번호입니다.
Step 3: 고급 설정 (선택)
- SSL 사용: 암호화 연결이 필요한 경우 활성화
- SSH 터널: 방화벽 뒤 DB 접속 시 설정
- 연결 타임아웃: 느린 네트워크 환경에서는 값을 늘려주세요
Step 4: 연결 테스트 및 저장
- 연결 테스트 버튼을 클릭하여 연결 상태 확인
- "연결 성공" 메시지가 표시되면 저장 클릭
연결 테스트가 실패하면 호스트/포트/계정 정보의 정확성, DB 서버 방화벽의 포트 개방 여부, DB 사용자의 원격 접속 권한을 차례로 확인하세요.
2. SSH 터널 설정하기
방화벽 뒤에 있는 DB에 접근할 때 SSH 터널링을 사용합니다.
언제 SSH 터널이 필요한가요?
- DB 서버가 내부망에 있어 직접 접근이 불가능할 때
- 보안 정책상 점프 서버(bastion host)를 통해서만 접근 가능할 때
- 외부에서 사내 DB에 안전하게 접속해야 할 때
연결 방식(connection_type) 선택:
- direct: SSH 없이 KIOPS에서 DB로 직접 연결
- ssh: SSH 서버를 경유하는 단일 터널
- ssh+jump: 점프 서버를 한 번 더 거치는 다중 홉 터널
설정 방법:
-
연결 추가/편집 화면에서 SSH 터널 사용 옵션을 활성화하거나 연결 방식을
ssh/ssh+jump로 선택합니다. -
SSH 서버 정보 입력:
- SSH 호스트: 점프 서버 IP입니다. 예: 10.0.0.50
- SSH 포트: SSH 포트입니다 (기본 22). 예: 22
- SSH 사용자: SSH 접속 계정입니다. 예: deploy
- 인증 방식: 비밀번호 또는 SSH 키를 선택합니다.
- 비밀번호: SSH 비밀번호를 입력합니다.
- SSH 키: SSH 개인 키 파일(.pem, .key)을 업로드합니다.
-
DB 호스트 주소 입력 시 SSH 서버 기준으로 작성
- DB가 SSH 서버와 같은 머신에 있다면:
localhost또는127.0.0.1 - DB가 내부망의 다른 서버에 있다면: 해당 서버의 내부 IP
- DB가 SSH 서버와 같은 머신에 있다면:
-
연결 테스트 후 저장
SSH 터널을 사용하면 KIOPS에서 점프 서버까지 암호화된 통로([KIOPS] → [SSH 터널] → [점프 서버] → [DB 서버])가 만들어지고, 그 통로를 통해 DB에 접근합니다.
3. 동기화 작업 생성하기
두 데이터베이스 간 데이터를 동기화하는 작업을 설정합니다.
Step 1: 작업 추가
- 동기화 작업 탭 선택
- 작업 추가 버튼 클릭
Step 2: 기본 설정
- 작업 이름: 알아보기 쉬운 이름 (예: "운영→개발 동기화")
- 소스 DB: 데이터를 가져올 원본 DB 연결 선택
- 대상 DB: 데이터를 저장할 목적지 DB 연결 선택
Step 3: 동기화 옵션 선택
- 전체 동기화: 모든 테이블을 동기화합니다.
- 선택 동기화: 필요한 테이블만 선택하여 동기화합니다.
- 충돌 처리:
- 소스 우선 - 충돌 시 소스 데이터로 덮어씀
- 대상 우선 - 충돌 시 대상 데이터 유지
Step 4: 스케줄 설정 (자동 동기화)
- 시간 단위: N시간마다 실행합니다 (예: 6시간마다).
- 일 단위: 매일 지정된 시각에 실행합니다 (예: 매일 03:00).
- cron 표현식: 사용자 지정 스케줄입니다. 예:
0 3 * * 1은 매주 월요일 오전 3시.
cron 표현식 형식은 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 0=일요일)입니다. 자주 사용하는 예시는 0 3 * * * (매일 오전 3시), 0 */6 * * * (6시간마다), 0 0 * * 0 (매주 일요일 자정) 등이 있습니다.
Step 5: 저장 설정을 검토하고 저장 버튼을 클릭합니다.
4. 동기화 즉시 실행하기
설정된 동기화 작업을 바로 실행합니다.
- 동기화 작업 탭에서 실행할 작업을 찾습니다.
- 해당 작업의 실행 버튼을 클릭합니다.
- 확인 팝업에서 확인을 클릭합니다.
- 진행률 표시줄로 진행 상황을 확인합니다.
- 완료 후 동기화 이력 탭에서 결과를 확인합니다.
동기화 실행 시 대상 DB의 데이터가 변경되고 대용량 테이블은 시간이 오래 걸릴 수 있으므로, 운영 DB는 서비스 영향이 적은 시간(새벽)에 실행하세요.
5. 마이그레이션 실행하기
마이그레이션 탭에서는 "Source 형태" 라디오로 두 가지 작업을 수행합니다.
5-1. 등록된 DB 연결 비교 후 마이그레이션
두 DB의 스키마를 비교하고 차이를 타겟 DB에 반영합니다.
Step 1: Source 형태 선택
- 마이그레이션 탭을 선택합니다.
- "Source 형태"에서 **등록된 DB 연결 (스키마 비교)**를 선택합니다 (기본값).
Step 2: 소스/타겟 설정
- 소스 DB (원본): 비교 기준이 되는 DB를 선택합니다.
- 타겟 DB (대상): 구조를 적용할 대상 DB를 선택합니다.
- 두 DB 모두 연결 확인된 상태여야 선택 목록에 나타납니다. 최소 2개의 연결된 DB가 필요합니다.
Step 3: 백업 옵션 설정
- 마이그레이션 전 백업 스위치를 켜면 실행 전 타겟 DB를 자동 백업합니다. 문제 발생 시 복구에 활용할 수 있으므로 권장합니다.
Step 4: 스키마 비교
- 스키마 비교 버튼을 클릭합니다.
- 테이블 차이, 컬럼 차이, FK 관계가 표로 표시됩니다.
Step 5: 마이그레이션 실행
- 스키마 차이가 발견되면 마이그레이션 실행 버튼이 나타납니다.
- 타겟 DB에 기존 데이터가 있는 테이블이 포함된 경우 데이터 손실 경고가 표시됩니다.
- 실행하면 소스 DB의 스키마가 타겟 DB에 적용됩니다.
대용량 DB 마이그레이션은 시간이 오래 걸릴 수 있고 서비스 영향이 발생할 수 있으므로, 운영 DB는 점검 시간에 실행하고 반드시 마이그레이션 전 백업 옵션을 활성화하세요.
5-2. 보관된 데이터 패키지 적용 (1회성)
데이터 패키지 탭에 보관된 SQL 패키지를 타겟 DB에 적용합니다.
Step 1: Source 형태 선택
- 마이그레이션 탭을 선택합니다.
- "Source 형태"에서 **보관된 데이터 패키지 (1회성 적용)**를 선택합니다.
Step 2: 패키지/타겟 선택
- 소스 — 데이터 패키지: 보관된 SQL 패키지를 선택합니다.
- 타겟 DB (대상): 적용할 대상 DB를 선택합니다 (연결 확인된 DB만 표시).
- 패키지와 타겟 DB의 엔진 정합성이 자동 검사됩니다.
- 같은 엔진(MySQL↔MariaDB 포함)이면 "엔진 정합성 OK" 안내가 표시됩니다.
- 엔진이 다르면 "이종 DB — 마이그레이션 불가" 경고가 표시되고 적용 버튼이 비활성화됩니다.
Step 3: 미리보기 및 검증 (선택)
- 패키지 내용 미리보기: 패키지에 포함된 테이블, SQL 종류(스키마/데이터)를 확인합니다.
- 마이그레이션 검증(dry-run): 격리된 공간에서 패키지 SQL을 실제 실행해 FK 위반·문법 오류·충돌을 미리 검증합니다. 실제 타겟 DB는 변경되지 않습니다.
Step 4: 적용 모드 선택 및 실행
- 신규 임포트 (append): 패키지의 CREATE/INSERT를 그대로 적용합니다. PK/UK 충돌 시 실패할 수 있습니다.
- 전체 초기화 후 임포트 (replace): 대상 스키마/데이터를 비우고 패키지 내용으로 채웁니다.
- 패키지 적용 버튼을 클릭하면 적용이 시작됩니다.
replace 모드는 대상 DB의 기존 테이블/데이터를 비우고 패키지 내용으로 채웁니다. 한 번 적용하면 되돌릴 수 없으니, 운영 DB에는 적용 전 반드시 백업을 만들거나 append 모드로 먼저 시도해 보세요.
5-3. 데이터 패키지 사용하기
보유한 SQL 덤프 파일을 KIOPS 안에 업로드해 보관하고 재사용하는 방법입니다. 일상에 비유하면 업로드는 보유한 USB를 책장에 꽂아두는 것, 다운로드는 책장의 USB를 내 PC로 빼내는 것, 적용은 책장의 USB를 다른 컴퓨터에 그대로 풀어 놓는 것, 삭제는 USB를 폐기하는 것에 해당합니다.
덤프 파일(pg_dump 또는 mysqldump 명령으로 생성)을 직접 만들기 어렵다면, 소스 DB의 IT 담당자 또는 DB 관리자에게 덤프 파일 생성을 요청하세요. 받은 .sql 또는 .sql.gz 파일을 데이터 패키지 탭에 업로드하면 됩니다.
패키지 업로드 (보관만)
- 데이터 패키지 탭을 선택합니다.
- SQL 파일 업로드 버튼(업로드 아이콘)을 클릭합니다.
.sql또는.sql.gz파일을 선택하면 별도 모달 없이 즉시 업로드됩니다 (최대 1GB까지) — 상태가ready가 됩니다. 이 시점에는 적용되지 않고 저장소에만 보관됩니다.
저장된 패키지 적용
- 적용할 패키지 행의 적용 버튼(번개 모양 아이콘)을 클릭합니다.
- 패키지 적용 모달이 열리면 target DB와 적용 모드(append/replace, 기본값 replace)를 선택합니다.
- target DB / SSH / Jump 비밀번호를 입력하고 적용을 클릭합니다.
- 진행 상황은 데이터 패키지 탭의 상태 태그로 확인합니다 — 적용 중에는
applying, 성공 시applied, 실패 시failed로 바뀝니다.
패키지 다운로드
- 다운로드할 패키지 행의 다운로드 버튼(다운로드 아이콘)을 클릭합니다.
- 로컬 PC로 원본 파일이 그대로 저장됩니다 (다른 환경 이관, 장기 보관 용도).
패키지 삭제
- 삭제할 패키지 행의 삭제 버튼(삭제 아이콘)을 클릭합니다.
- 확인 팝업에서 동의하면 영구 삭제됩니다.
목록 새로고침
- 우측 상단의 새로고침 버튼(새로고침 아이콘)을 눌러 최신 목록을 받아옵니다.
6. DB 백업 생성하기
데이터베이스를 백업하여 안전하게 보관합니다.
수동 백업 생성:
- 백업 관리 탭을 선택합니다.
- 백업 생성 버튼을 클릭합니다.
- 백업 대상 DB 연결을 선택합니다.
- 백업 옵션을 설정합니다:
- 백업 이름: 식별하기 쉬운 이름 (예: "운영DB-2024-03-15")
- 포함 항목: 전체 또는 특정 테이블 선택
- 백업 시작을 클릭합니다.
예약 백업 설정:
- 백업 관리 탭에서 스케줄 설정 버튼을 클릭합니다.
- 백업 대상 DB를 선택합니다.
- 스케줄을 설정합니다:
- 매일: 매일 지정 시간에 실행 (예: 03:00)
- 매주: 특정 요일에 실행 (예: 일요일 02:00)
- 매월: 특정 일에 실행 (예: 1일 01:00)
- 보관 정책을 설정합니다:
- 보관 기간: 예를 들어 30일 후 자동 삭제
- 보관 개수: 예를 들어 최근 10개만 유지
- 저장을 클릭합니다.
7. DB 복원하기
백업에서 데이터를 복원합니다.
- 백업 관리 탭을 선택합니다.
- 백업 목록에서 복원할 백업을 찾습니다.
- 해당 백업의 복원 버튼을 클릭합니다.
- 복원 대상 DB를 선택합니다 (원본과 다른 DB도 가능)
- 복원 옵션을 설정합니다:
- 기존 데이터 처리: 삭제 후 복원 / 병합
- 복원 시작을 클릭합니다.
복원 작업은 대상 DB의 기존 데이터를 변경합니다. 운영 환경에서 복원 전 반드시 현재 상태를 백업하세요!
실행 이력 상태
동기화, 마이그레이션, 백업/복원 등 모든 작업의 진행 상태를 실행 이력 탭에서 확인할 수 있습니다.
- completed (완료): 작업이 정상적으로 완료되었습니다.
- running (실행중): 작업이 현재 진행 중입니다.
- failed (실패): 작업 중 오류가 발생했습니다 (상세 내용 확인 필요)
- pending (대기중): 스케줄에 따라 실행을 대기 중입니다.
실패한 작업은 실행 이력 탭에서 클릭해 상세 오류 메시지를 확인합니다. 일반적인 원인은 연결 실패 (네트워크/방화벽 확인), 권한 오류 (DB 사용자 권한 확인), 스키마 불일치 (소스와 대상 테이블 구조 차이 → 마이그레이션 검증 선행), 용량 부족 (대상 서버 디스크 공간 확인) 등입니다.
시나리오
자주 발생하는 상황별 작업 흐름입니다.
시나리오 1: 보유한 SQL 덤프 파일을 KIOPS 운영 DB로 적용
협력 업체나 외부 개발자에게 받은 SQL 덤프 파일을 KIOPS 운영 DB에 적용하는 절차입니다.
- 보유한 파일이
.sql또는.sql.gz형식인지 확인합니다. - [데이터베이스 관리] → 데이터 패키지 탭 → SQL 파일 업로드 클릭.
- 파일을 선택하면 즉시 업로드되어 저장소에
ready상태로 보관됩니다 (최대 1GB). - 업로드된 패키지 행의 적용 버튼을 클릭합니다.
- 패키지 적용 모달에서 운영 DB 연결을 target으로 선택합니다 (패키지 엔진과 target DB 엔진이 같아야 적용 가능).
- 적용 모드는 깨끗한 첫 적용이라면 replace, 기존 데이터에 추가라면 append를 선택합니다.
- 비밀번호 입력 후 적용을 누르고, 데이터 패키지 탭의 상태 태그로 진행 상황을 확인합니다 (
applying→applied).
시나리오 2: 보관된 패키지를 다른 환경에 재적용 (패키지 재사용)
한 번 업로드한 패키지를 여러 환경에 동일하게 배포하는 절차입니다.
- 시나리오 1에서 업로드한 패키지는 데이터 패키지 탭에 그대로 남아 있습니다.
- 다른 환경에 동일 데이터를 적용하려면 해당 패키지 행에서 적용 버튼을 클릭합니다.
- 패키지 적용 모달에서 새 target DB를 선택하고 적용 모드를 고릅니다.
- 비밀번호 입력 후 시작하면 동일한 패키지가 새 환경에 그대로 적용됩니다.
- 또는 마이그레이션 탭에서 "Source 형태"를 **보관된 데이터 패키지 (1회성 적용)**로 선택해, 적용 전 미리보기·dry-run 검증을 거쳐 적용할 수도 있습니다.
한 번 등록한 패키지는 30일 동안만 자동 보관되고, 한 기관이 사용할 수 있는 총 용량은 5GB입니다. 장기 보존이 필요하면 다운로드 버튼으로 로컬에 별도 백업을 받아 두세요.
시나리오 3: DB 종류(엔진)가 다를 때
패키지의 DB 엔진과 적용할 target DB의 엔진이 다른 경우(예: MySQL 패키지 → PostgreSQL 타겟), 현재 KIOPS 화면에서는 변환 없이 적용할 수 없습니다.
- 마이그레이션 탭의 패키지 적용 경로는 엔진 정합성을 검사해 "이종 DB — 마이그레이션 불가" 경고와 함께 적용 버튼을 비활성화합니다.
- 데이터 패키지 적용 모달에는 사전 차단 가드가 없지만, 이종 엔진으로 적용을 시도하면 SQL 문법 불일치로 적용이 실패합니다.
- 같은 호환 그룹(MySQL ↔ MariaDB)끼리는 변환 없이 적용할 수 있습니다.
이종 DB 간 데이터를 옮겨야 한다면, target 엔진 문법으로 만든 덤프를 미리 준비해 업로드하거나 운영팀에 문의하세요. 자세한 내용은 DB 종류가 다를 때의 주의사항 가이드를 참고하세요.
자주 묻는 질문
Q. 보유한 SQL 덤프 파일을 KIOPS에 적용하려면? → A. 데이터 패키지 탭의 SQL 파일 업로드로 업로드한 뒤 행의 적용 버튼을 사용하세요. 데이터 패키지 저장소 섹션과 시나리오 1을 참고하세요.
Q. MySQL 덤프를 PostgreSQL에 적용할 수 있나요?
현재 KIOPS 화면에서는 불가능합니다. 패키지 엔진과 target DB 엔진이 다른 이종 DB는 변환 없이 적용할 수 없으며, 마이그레이션 탭은 적용 버튼을 비활성화하고 데이터 패키지 적용은 실패합니다. 같은 호환 그룹(MySQL ↔ MariaDB)끼리만 변환 없이 적용할 수 있습니다. 자세한 제약은 DB 종류가 다를 때의 주의사항 가이드를 참고하세요.
Q. 데이터 패키지는 얼마 동안 보관되나요? → A. 데이터 패키지 저장소 - 보관 기간과 용량 한도 섹션을 참고하세요(30일 / 기관당 5GB).
Q. 패키지 적용에 실패하면 어떻게 되나요?
데이터 패키지의 상태 태그가 failed로 표시되고, 상태 태그에 마우스를 올리면 오류 메시지를 확인할 수 있습니다. replace 모드에서 실패한 경우 일부 테이블이 비워진 상태일 수 있으니, 운영 DB에는 사전 백업 후 적용하는 것을 강력히 권장합니다.
베스트 프랙티스
안전하고 효율적인 데이터베이스 관리를 위한 권장 사항입니다.
- SSL 연결 사용: 특히 외부 네트워크 통신 시 필수
- 전용 계정 사용: 동기화 전용 DB 계정을 만들어 최소 권한 부여 (비밀번호는 모두 암호화 저장됨)
- 동기화 시간: 운영 DB는 서비스 영향이 적은 새벽 시간에 동기화
- 연결 테스트: 중요한 작업 전 항상 연결 테스트 실행
- 이력 모니터링: 정기적으로 동기화 이력을 확인하여 실패 여부 체크
- 백업 후 복원: 복원 전 현재 상태를 반드시 백업