PostgreSQL Major Version 업그레이드하기 위해서 사용
pg_upgrade (이전 명칭 pg_migrator )를 사용하면 PostgreSQL 데이터 파일 에 저장된 데이터를 일반적으로 주요 버전 업그레이드(예: 12.14에서 13.10 또는 14.9에서 15.5)에 필요한 데이터 덤프/복원 없이 이후 PostgreSQL 주요 버전으로 업그레이드할 수 있습니다. 12.7에서 12.8 또는 14.1에서 14.5로의 마이너 버전 업그레이드에는 필요하지 않습니다.
주요 PostgreSQL 릴리스는 시스템 테이블의 레이아웃을 자주 변경하는 새로운 기능을 정기적으로 추가하지만 내부 데이터 저장 형식은 거의 변경되지 않습니다. pg_upgrade는 이 사실을 사용하여 새로운 시스템 테이블을 만들고 단순히 이전 사용자 데이터 파일을 재사용하여 빠른 업그레이드를 수행합니다. 향후 주요 릴리스에서 이전 데이터 형식을 읽을 수 없게 만드는 방식으로 데이터 저장 형식을 변경하는 경우 pg_upgrade는 이러한 업그레이드에 사용할 수 없습니다. (커뮤니티는 이러한 상황을 피하려고 시도합니다.)
pg_upgrade는 이전 및 새 클러스터가 바이너리 호환되도록 최선을 다합니다. 예를 들어, 32/64비트 바이너리를 포함하여 호환되는 컴파일 타임 설정을 확인합니다. 모든 외부 모듈도 바이너리 호환되는 것이 중요하지만, 이는 pg_upgrade 로 확인할 수 없습니다 .
pg_upgrade는 스냅샷과 베타 릴리스를 포함하여 9.2.X 이상에서 현재 PostgreSQL 주요 릴리스로의 업그레이드를 지원합니다.
pg_upgrade.exe
--old-datadir "C:/Program Files/PostgreSQL/9.6/data"
--new-datadir "C:/Program Files/PostgreSQL/11/data"
--old-bindir "C:/Program Files/PostgreSQL/9.6/bin"
--new-bindir "C:/Program Files/PostgreSQL/11/bin"
일반적으로 재구축 스크립트가 완료될 때까지 재구축 스크립트에서 참조된 테이블에 액세스하는 것은 안전하지 않습니다. 그렇게 하면 잘못된 결과나 성능 저하가 발생할 수 있습니다. 재구축 스크립트에서 참조되지 않은 테이블은 즉시 액세스할 수 있습니다.