Fedora에서 2개 이상의 PostgreSQL 버전 업그레이드

Fedora에서 2개 이상의 PostgreSQL 버전 업그레이드

최근에 dnf. 달리려고 했더니 pg_upgrade성공했어

Cannot upgrade because the database in /var/lib/pgsql/data is of
       version 11 but it should be 12

따라서 업그레이드는 하나의 버전에만 적용됩니다.

두 개 이상의 버전을 업그레이드하는 방법은 무엇입니까?

답변1

아이디어는 다음과 같습니다.

  1. PGDG 저장소에서 이전 PostgreSQL 서버를 설치합니다.
  2. 모든 데이터를 파일로 덤프하는 데 사용합니다.
  3. 현재 서버를 반환합니다(Fedora 저장소에서).
  4. 덤프 파일에서 데이터를 가져옵니다.

이 작업은 모두 루트로 수행됩니다.

PostgreSQL 저장소를 설치합니다.

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-34-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora의 PostgreSQL(PGDG와 충돌)을 제거하고 PGDG 저장소에서 이전 버전을 설치합니다.

dnf remove postgresql postgresql-server
dnf install postgresql11 postgresql11-server

이전 데이터를 현재 설치 디렉터리에 복사합니다.

rsync -av /var/lib/pgsql/data/ /var/lib/pgsql/11/data/

이전 서버를 실행합니다.

systemctl start postgresql-11.service

모든 데이터를 파일로 덤프합니다.

su - postgres -c "pg_dumpall -p 5432 > /tmp/dump_file.sql"

위 작업을 실행 취소합니다(서버 중지, PGDG 패키지 종료, Fedora 패키지 다시 설치).

systemctl stop postgresql-11.service
dnf remove postgresql11 postgresql11-server postgresql11-libs postgresql13 postgresql13-server postgresql13-libs
dnf install postgresql postgresql-server pg_top postgresql-contrib

아마 필요하지 않을 것입니다 pg_top및/또는 postgresql-contrib. 반품,

/var/lib/pgsql/data/pg_hba.conf업데이트가 필요한 경우(아마도 trust로컬 연결을 위한 방법을 설정합니까?)

이전 데이터 디렉터리를 해제하고 현재 PostgreSQL 디렉터리를 다시 초기화합니다.

mv /var/lib/pgsql/data/ /var/lib/pgsql/data-old
mkdir /var/lib/pgsql/data
chown -R postgres:postgres /var/lib/pgsql/data/
postgresql-setup initdb

현재 서버(Fedora 저장소에 있는 서버)를 활성화하고 시작합니다.

systemctl enable postgresql
systemctl start postgresql

데이터 가져오기:

su - postgres -c "pgsql -p 5432 < /tmp/dump_file.sql"

psqlEDIT 2023-12-11: 새 버전의 Fedora에는 대신 명령이 있는 것 같습니다 .pgsql.

결과에 만족하면 이 과정에서 생성된 데이터를 삭제할 수 있습니다.

  • /var/lib/pgsql/11- PGDG에서 설치된 이전 서버의 데이터 디렉터리입니다.
  • /var/lib/pgsql/data-old- 이 모든 혼란 이전의 원본 데이터.

일반적으로 PGDG 저장소를 사용하지 않는 경우 이를 삭제할 수도 있습니다.

dnf remove pgdg-fedora-repo

이것은 아마도 덜 서투른 접근 방식이지만 나에게는 효과적입니다. 또한, 재구축 작업이라 history사소한 오류가 있을 수 있으나 내용은 괜찮을 것이라는 점을 참고하시기 바랍니다.

관련 정보