이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

24.4. 릴리스 간 마이그레이션

이 섹션에서는 다음에서 데이터베이스 데이터를 마이그레이션하는 방법에 대해 설명합니다. 하나포스트그레SQL다음으로 릴리스 새로운 것. 소프트웨어 설치 절차그 자체로이 섹션의 주제가 아닙니다. 자세한 내용은 다음에 나와 있습니다.토토 베이 : 문서 : 9.0 : 소스 코드에서 설치.

포스트그레SQL주요 버전은 다음과 같습니다. 버전 번호의 처음 두 자리 그룹으로 표시됩니다. 예: 8.4.포스트그레SQL미성년자 버전은 버전 숫자의 세 번째 그룹으로 표시됩니다. 예를 들어 8.4.2는 8.4의 두 번째 마이너 릴리스입니다. 마이너 릴리스 내부 저장 형식을 절대 변경하지 않으며 항상 동일한 버전의 이전 및 이후 마이너 릴리스와 호환 가능 주요 버전 번호(예: 8.4.2는 8.4, 8.4.1과 호환됨) 8.4.6. 호환되는 버전 간에 업데이트하려면 간단히 서버가 다운된 동안 실행 파일을 교체하고 다시 시작합니다. 서버. 데이터 디렉토리는 변경되지 않은 상태로 유지됩니다. 사소한 업그레이드는 간단해요.

전공출시 의포스트그레SQL, 내부 데이터 저장 형식은 변경될 수 있으므로 업그레이드가 복잡해집니다. 데이터를 새로운 주요 버전으로 이동하는 전통적인 방법은 다음과 같습니다. 데이터베이스를 덤프하고 다시 로드합니다. 기타, 덜 검증된 아래에 설명된 대로 가능성이 있습니다.

새로운 주요 버전은 일반적으로 사용자에게 표시되는 일부 기능을 도입합니다. 비호환성으로 인해 응용 프로그램 프로그래밍이 변경될 수 있습니다. 필수. 신중한 사용자는 자신의 클라이언트를 테스트하고 싶어할 것입니다. 완전히 전환하기 전에 새 버전의 애플리케이션을 실행하세요. 따라서 동시 설정을 설정하는 것이 좋은 경우가 많습니다. 이전 버전과 새 버전의 설치. 테스트할 때포스트그레SQL대규모 업그레이드, 다음과 같은 가능한 변경 범주를 고려하세요.

관리

관리자가 모니터링할 수 있는 기능 서버를 자주 변경하고 개선하는 것을 제어합니다. 주요 릴리스입니다.

SQL

일반적으로 여기에는 새로운 SQL 명령 기능과 특별히 언급되지 않는 한 행동에는 변화가 없습니다. 릴리스 노트.

라이브러리 API

일반적으로 다음과 같은 라이브러리libpq새로운 기능만 추가하세요. 릴리스 노트에 언급되지 않는 한 다시 한번 말하겠습니다.

시스템 카탈로그

시스템 카탈로그 변경은 일반적으로 데이터베이스에만 영향을 미칩니다 관리 도구입니다.

서버 C 언어 API

여기에는 백엔드 기능 API의 변경이 포함됩니다. C 프로그래밍 언어로 작성되었습니다. 그러한 변화 내부 깊은 곳에서 백엔드 함수를 참조하는 코드에 영향을 미칩니다. 서버.

24.4.1. 다음을 통해 데이터 마이그레이션 중pg_dump

하나의 주요 버전에서 데이터를 덤프하려면PostgreSQL그리고 다른 것으로 다시 로드하세요. 사용해야 합니다pg_dump; 파일 시스템 레벨 백업 방법은 작동하지 않습니다. (체크가 되어있습니다. 다음과 같은 데이터 디렉토리를 사용하는 것을 방지합니다. 호환되지 않는 버전포스트그레SQL큰 해를 끼칠 수는 없습니다. 데이터에서 잘못된 서버 버전을 시작하려고 시도하여 디렉토리.)

다음을 사용하는 것이 좋습니다.pg_dump그리고pg_dumpall최신 버전의 프로그램 의포스트그레SQL, 취하다 이러한 개선 사항의 이점 프로그램. 덤프 프로그램의 현재 릴리스는 데이터를 읽을 수 있습니다. 모든 서버 버전에서 7.0으로 돌아갑니다.

새 제품을 설치하면 가동 중지 시간을 최소화할 수 있습니다. 서버를 다른 디렉터리에 두고 이전 디렉터리와 디렉터리를 모두 실행 중입니다. 다른 포트에 병렬로 새 서버를 설치합니다. 그러면 당신은 할 수 있습니다 다음과 같은 것을 사용하세요:

pg_dumpall -p 5432 | psql -d postgres -p 6543

데이터를 전송합니다. 또는 중간 파일을 사용할 수 있습니다 원한다면. 그런 다음 이전 서버를 종료하고 시작할 수 있습니다. 이전 서버가 실행 중이던 포트를 사용하여 새 서버를 만듭니다. 당신 이전 데이터베이스가 업데이트되지 않았는지 확인해야 합니다. 달리기 시작하다pg_dumpall, 그렇지 않으면 해당 업데이트가 손실됩니다. 참조제19장에 대한 정보 접근을 금지하는 방법.

두 개의 서버를 병렬로 실행할 수 없거나 실행하기를 원하지 않는 경우, 새 버전을 설치하기 전에 백업 단계를 수행할 수 있습니다. 이전 서버를 중단하고 이전 버전을 방해가 되지 않는 곳으로 옮기세요. 새 버전을 설치하고, 새 서버를 시작한 다음, 데이터. 예를 들면:

pg_dumpall  백업
pg_ctl 중지
mv /usr/local/pgsql /usr/local/pgsql.old
# 테이블스페이스 디렉토리의 이름도 바꿉니다.
CD ~/postgresql-9.0.23
gmake 설치
initdb -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
psql -f 백업 포스트그레스

참조메이저 토토 사이트 : 문서 : 9.0 : 서버 메이저 토토 사이트 및 작동방법에 대해 서버 및 기타 세부 정보를 시작하고 중지합니다. 설치 지침에 따라 수행할 전략적 장소를 알려줄 것입니다. 이 단계를 따르세요.

참고:당신이"오래된 것을 옮기다 설치가 방해가 되지 않습니다."더 이상 그렇지 않을 수도 있습니다 완벽하게 사용 가능합니다. 일부 실행 프로그램에는 다음이 포함되어 있습니다. 설치된 다양한 프로그램 및 데이터에 대한 절대 경로 파일. 이는 일반적으로 큰 문제는 아니지만 계획을 세울 경우 잠시 동안 두 개의 설치를 병렬로 사용하는 경우 다른 설치 디렉터리를 할당해야 합니다. 빌드 시간. (이 문제는 다음에서 해결되었습니다.PostgreSQL버전 8.0 이상이므로 설치된 것을 포함하는 모든 하위 디렉터리를 이동하는 한 파일을 함께; 예를 들어 만약/usr/local/postgres/bin/다음으로 이동/usr/local/postgres.old/bin/그러면/usr/local/postgres/share/반드시 가다/usr/local/postgres.old/share/. 8.0 이전 버전 이와 같은 설치 이동 릴리스는 그렇지 않습니다. 일하세요.)

24.4.2. 기타 데이터 마이그레이션 방법

기여프로그램pg_upgrade설치를 허용합니다. 하나의 전공에서 현재 위치로 마이그레이션됨PostgreSQL버전을 다음 버전으로 변경하세요. 유지 이 방법은 실행 범위를 제공하지 않습니다. 이전 버전과 새 버전을 동시에. 또한,pg_upgrade보다 전투 테스트가 훨씬 적습니다.pg_dump, 그래서 만일의 경우를 대비해 최신 백업을 강력히 권장합니다. 잘못됐어.

다음과 같은 특정 복제 방법을 사용하는 것도 가능합니다. 와 같이슬로니, 대기를 생성하려면 업데이트된 버전의 서버포스트그레SQL. 대기는 동일할 수 있습니다 컴퓨터 또는 다른 컴퓨터. 일단 동기화되면 마스터 서버(이전 버전 실행 중)PostgreSQL), 마스터를 전환하고 대기 데이터베이스를 마스터로 만들고 이전 데이터베이스를 종료합니다. 인스턴스. 이러한 전환은 단 몇 초만에 이루어집니다. 업그레이드를 위한 가동 중지 시간입니다.