DBAtlas · 데이터베이스 운영 아틀라스

버전 업그레이드 마법사

패치인가 메이저인가, 제자리인가 마이그레이션인가? 업그레이드를 단계적으로 계획한다. 각 분기는 사전 점검, 방법, 업그레이드 후 작업을 다룬다. 운영 환경을 건드리기 전에 여기서 리허설한다.

어떤 종류의 업그레이드를 하는가?

패치/마이너 버전(같은 메이저 버전 내, 예: 16.2 -> 16.4, 또는 SQL Server CU)은 위험이 낮고 보통 in-place로 수행한다. 메이저 버전(예: 15 -> 16)은 데이터 형식 변경이 포함될 수 있어 더 신중한 계획이 필요하다.

SELECT * FROM v$version;
SELECT patch_id, action, status FROM dba_registry_sqlpatch ORDER BY action_time DESC;
  • 마이너 버전 / 패치 (같은 메이저 버전, CU)
  • 메이저 버전 (메이저 버전 변경)
  • 차이를 모르겠다. 설명해 달라

패치인가 메이저인가?

패치: 메이저 버전이 같다(16.2 -> 16.4). 데이터 파일 형식이 바뀌지 않으며 보통 바이너리 교체 + 재시작이다. 메이저: 메이저 버전이 바뀐다(15 -> 16). 카탈로그/형식이 바뀔 수 있어 pg_upgrade / AutoUpgrade / dump-restore가 필요하며 애플리케이션 호환성을 테스트해야 한다.

  • 패치다 (같은 메이저 버전)
  • 메이저다 (메이저 버전이 바뀜)

백업과 롤백 계획이 준비되었는가?

패치는 위험이 낮지만 모든 업그레이드의 철칙은 먼저 전체 백업(가능하면 스냅샷도)이다. 문제가 생기면 돌아갈 지점이 필요하다.

  • 예, 백업 + 롤백 준비 완료
  • 아니요, 아직 아님

먼저 백업 + 롤백 계획

업그레이드를 시작하기 전에 안전망을 마련한다.

패치 적용

같은 메이저 버전 내 패치다. 클러스터에서 롤링 방식(replica부터)으로 적용하면 다운타임이 줄어든다.

메이저 업그레이드 방법

두 가지 주요 경로: (1) 제자리: 기존 서버에서 변환한다(pg_upgrade, Oracle AutoUpgrade/DBUA, MySQL in-place). 빠르지만 롤백이 어렵다. (2) 마이그레이션: 새 버전으로 새 서버를 구축하고, 데이터를 옮긴 뒤(dump/restore 또는 복제), 전환한다. 더 안전하며 다운타임이 최소화된다.

  • 먼저 준비/호환성 점검을 실행하겠다
  • 제자리
  • 새 서버로 마이그레이션 (최소 다운타임)

호환성 / 준비 상태 점검

업그레이드 전에 대상 버전의 경고를 수집한다: 제거된(deprecated) 기능, 유효하지 않은 객체, 호환성 수준.

-- AutoUpgrade analyze mode: java -jar autoupgrade.jar -config cfg -mode analyze
  • 출력 깨끗함, 계속
  • 경고/비호환이 있다

먼저 경고를 해결한다

업그레이드 전에 리포트의 모든 경고를 해결한다. 그렇지 않으면 업그레이드가 중간에 실패하거나 애플리케이션이 깨질 수 있다.

제자리 메이저 업그레이드

기존 서버에서 변환한다. 빠르지만 롤백은 보통 백업에서 복원하는 것을 의미하므로 스냅샷이 필수다.

마이그레이션으로 업그레이드 (최소 다운타임)

새 버전으로 새 서버를 구축하고 데이터를 옮긴 뒤 짧은 cutover로 전환한다. 가장 안전한 방법이며 기존 시스템은 그대로 남는다.

DBAtlas에서 열기 →