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
순서
- Role과 필요한 tablespace를 준비합니다.
- Database schema와 data를 restore합니다.
- Extension과 privilege를 확인합니다.
ANALYZE후 핵심 plan을 비교합니다.- Application smoke와 consistency test를 수행합니다.
Logical migration은 physical PITR를 대체하지 않습니다. 전환 직전까지의 변경을 어떻게 동기화할지 별도 계획이 필요합니다.