2013-05-10 2 views
0

한 서버에서 데이터베이스를 내보내고 phpPgAdmin을 사용하여 다른 서버에 저장하려고합니다. 내 처리는 다음과 같이이다 :두 PostgreSQL 데이터베이스에서 데이터베이스를 가져올 때 구문 오류가 발생했습니다.

  1. 만들 서버 1에서 데이터베이스를 선택하고
  2. 선택 내보내기 버튼을 누르 "데이터 구조를하고 드롭 다운에서 옵션을 선택"복사 "
  3. 다운로드를 1
  4. 을 실행
  5. 서버 1에서 데이터베이스와 동일한 이름을 가진 서버 2에서 같은 이름의 데이터베이스 내가 서버에서 다운로드 한 SQL 코드를 해당 데이터베이스를 선택하고 SQL 창을 열고 붙여 넣기

나는 오류 얻을 때 그 : 전체의

ERROR: syntax error at or near "OWNED" 
LINE 73: ALTER SEQUENCE address_customer_id_seq OWNED BY address.cust... 

라인 73은 다음과 같습니다

ALTER SEQUENCE address_customer_id_seq OWNED BY address.customer_id; 

나는 약간 다른 버전을 가지고했기 때문에 그것이 될 수 있음을 here 읽은를 내 두 서버에서 postgre. 그래서 저는 서버 기술자에게 물어 보았습니다. 서버 기술자는 그렇습니다. 그 문제가있었습니다. 그래서 그는 서버 2를 업그레이드했습니다. 그러나 같은 오류가 발생합니다.

어떤 일이 벌어 질 수 있는지 알고 싶습니다.

감사합니다.

+0

대상 데이터베이스가 이전 버전입니까? 당신이 언급 한 두 가지 버전은 "약간 다릅니다"는 무엇입니까? 어떤 pg_dump와 pg_restore 버전이 사용되고 있습니까? –

+0

@CraigRinger 도움에 감사드립니다. 나는이 질문들을 서버 관리자에게 쏘야 만했지만, 가능한 빨리 답변을 게시 할 것이다. – 1252748

+0

두 서버에서'SELECT 버전()', 덤프를 가져 오는 데 사용 된 컴퓨터의'pg_dump --version'. http://stackoverflow.com/tags/postgresql/info를 참조하십시오. 당신이나 당신의 서버 관리자가 "약간 다른"버전에 관해 혼동 스러우며 9.2와 9.1이 100 % SQL- 레벨 호환이 가능하다고 가정하고 있습니다. –

답변

3

8.1에 존재하지 않는 기능과 구문을 사용하기 때문에 PostgreSQL 8.4는 8.1로 복원되는 덤프를 생성하지 않습니다.

은 8.4 데이터베이스에 대해 8.1 's pg_dump을 실행하여 다운 그레이드 할 수 있지만 대부분 덤프가 실패 할 가능성이 큽니다.

다운 그레이드는 문제가 될 수 있으며 8.4의 pg_dump에 의해 생성 된 덤프를 손으로 편집하여 8.1 호환이 될 수 있습니다.

8.1은 고대이며 지원되지 않습니다. 마지막으로 수명이 다한 릴리즈는 2010 년 11 월이었습니다. 새 프로젝트 나 도구에이 파일을 사용하는 것을 고려하지 않아야하며 실제로 업그레이드를 계획해야합니다.

이 버전의 차이점은 the PostgreSQL version policy을 참조하십시오. 버전 8.2.0, 8.3.0 및 8.4.0의 release notes을 읽으면 자세한 내용을 알 수 있습니다. 응용 프로그램에서 보이는 동작이 변경되면이 각 릴리스에 있음을 이해하는 것이 중요합니다. 응용 프로그램을 테스트해야하며 일부 이전 버전과의 호환성 설정이 필요할 수 있습니다.

는 또한 읽어야 upgrading a PostgreSQL cluster 문서-하지만 pg_upgrade8.4 이상의 버전이 오래된 업그레이드을 사용할 수 없음에 유의하십시오.

설치가 7 년이 지나면 통증이 줄어들 것입니다.

+0

우수한 정보. 고맙습니다. 다른 프로세스에서 8.4.13으로 업그레이드하는 것이 더 쉬운 프로세스입니까? 최신 버전으로 업그레이드 된 데이터가 손상 될 위험이 있습니까? – 1252748

+0

서버 담당자의 말 : "버전이 패치되었으므로 번호가 정확하지 않습니다. 한 서버가 CentOS 5이고 다른 서버가 CentOS 6"이기 때문에 숫자가 다릅니다. – 1252748

+0

이 차이점으로 그는 그가 정확하고이 두 머신이'SELECT 버전()'이보고하는 것과 다른 버전을 실제로 실행하고있을 가능성이 있습니까? – 1252748

관련 문제