본문 바로가기
IT/⚇⚉cause

[DB] postgresql 마이너 업데이트 (바이너리 업데이트)

by 라떼조아효 2025. 7. 11.
728x90

기존 서비스에서 v15.1을 사용하고 있었는데 보안에 취약한 이슈로 v15.11 업데이트를 해야되는 일이 있었다.

 

일단 바이너리 업데이트와 마이그레이션의 차이점을 알아보자

 

✅ 1. 바이너리 업데이트 (Binary Update)

  • 정의: PostgreSQL의 같은 메이저 버전(예: 15.x) 내에서, 버전만 올리는 작업.
  • 예시: 15.1 → 15.11
  • 특징:
    • 데이터 디렉터리($PGDATA) 그대로 사용 가능
    • 기존 DB 재구성(마이그레이션) 필요 없음
    • PostgreSQL 프로세스만 재시작하면 됨
  • 방법:
    • 새 버전 바이너리를 받아서 기존 심볼릭 링크만 바꿔주면 돼
    • initdb 절대 하면 안 돼 (데이터 날아감)

🔁 이건 단순히 PostgreSQL의 "실행 파일"만 최신으로 교체하는 거야. 데이터 구조는 그대로 유지돼.


⚠️ 2. 마이그레이션 (Migration)

  • 정의: PostgreSQL의 메이저 버전이 바뀌는 경우 전체 데이터를 옮기는 과정
  • 예시: 14.x → 15.x 또는 15.x → 16.x
  • 특징:
    • pg_upgrade 또는 dump/restore 방식으로 전체 DB 이전 필요
    • 데이터 호환성 체크 필요
    • 시간이 오래 걸림 + 신중하게 진행해야 함

그리고 rpm과 tar 방식이 있는데 난 tar 방식으로 했어 이유는 rpm으로 하면 원복하게될 경우에는 까다롭고 tar로 하게되면 기존 디렉터리만 압축해서 백업을 해둔다음에 기존 디렉터리에 덮어씌우는 방식이 더 좋다고 생각했어

 

data는 기존 데이터를 사용하기때문에 시간도 훨씬 단축되고 배치 또는 라이브러리만 확인해서 따로 make 해주면 돼 

 

1. 15.11 버전 압축 해제

2. 기존 실행파일 심볼릭 링크 확인

: ls -l /usr/bin/psql
: ls -l /usr/bin/postgres

3. 심볼릭 링크 교체 (sudo권한 필수)

: sudo ln -sf /opt/pgsql-15.11/bin/psql /usr/bin/psql 

4. 데이터 디렉터리 그대로 유지

5. 서버 재시작

 

이걸 진행하기 전에 확인해야될거

1. 기존에 사용하던 확장(Extension) 또는 외부 라이브러리 확인

: SELECT * FROM pg_extension;

2. 15.11 버전 make(컴파일)하고 그 이후에  라이브러리도 압축풀고 make(컴파일)해줘

3. orafce, postgres_fdw 이걸 사용하고 있어서 postgres_fdw 는 15.11 파일안에있어서 거기서 make 해줬고 orafce는 zip 으로 받아서 서버에서 진행했어 진행한 방법은 orafce.so, orafce.control, orafce--*.sql 파일 15.11로 이동시켜서 쿼리로 EXTENSION 날려서 외부확장(라이브러리)를 사용할수 있게 명령어 실행했어

 

*그리고 기존에 quartz도 사용하고있어서 was 도 내렸다가 올려야지 quartz 연결이 돼 이것도 필수!

'IT > ⚇⚉cause' 카테고리의 다른 글

참고  (0) 2023.07.20
[Maven] mvnw 를 사용할 때 JDK가 필요한가?  (0) 2023.05.10
[개발자 도구] 개발자 도구에서 소스가 안보일때  (0) 2023.03.14
[datadog] 참고 사이트  (0) 2023.03.07
[kubernetes] pv, pvc 생성  (0) 2023.03.07