본문으로 건너뛰기

2.3 Role, tablespace, upgrade

pg_dump는 database 내부 object를 다루고 cluster-wide role과 tablespace 정의는 포함하지 않습니다. pg_dumpall --globals-only로 별도 보존합니다.

pg_dumpall --globals-only > globals.sql

Role password hash가 포함될 수 있으므로 dump를 secret으로 취급합니다. Target 환경에서 불필요한 superuser와 tablespace path를 그대로 만들지 않도록 검토합니다.

Major version 이동

Logical dump와 restore는 다른 major version으로 이동하는 방법 중 하나입니다. Target version의 pg_dump를 사용해 오래된 server를 dump하는 방식을 우선 검토합니다. Extension은 target에 compatible package가 먼저 설치돼 있어야 합니다.

확인할 항목은 다음과 같습니다.

  • Removed 또는 changed data type과 function
  • Collation provider와 version
  • Extension version과 upgrade script
  • Encoding과 locale
  • Role과 ownership mapping
  • Application driver와 SQL compatibility

순서

  1. Role과 필요한 tablespace를 준비합니다.
  2. Database schema와 data를 restore합니다.
  3. Extension과 privilege를 확인합니다.
  4. ANALYZE 후 핵심 plan을 비교합니다.
  5. Application smoke와 consistency test를 수행합니다.

Logical migration은 physical PITR를 대체하지 않습니다. 전환 직전까지의 변경을 어떻게 동기화할지 별도 계획이 필요합니다.