2017-04-19 2 views
0

PostgreSQL 9.6이 EnterpriseDB에서 제공하는 우분투 16.04에 설치되어 있습니다. 로컬 서버에 연결하여 여러 달 동안 사용했습니다. 나는 백업이 시점에서 서버를해야 생각, 그래서 나는 다음과 같이 pg_dump의 명령을 사용하여 시도 : PostgreSQL 9.6 백업 실행 문제 (pg_dump/pg_dumpall)

  • 실행 pg_dump의 sudo pg_dumpall > /sata_ssd2/pgdump/0419.bkp
  • 를 통해 /opt/PostgreSQL/9.6/bin에서 포스트 그레스 빈에

    1. CD를

      이것은 오류를 제공합니다 : Error: You must install at least one postgresql-client-<version> package. 통해 설치를 시도 : sudo apt-get install postgresql-client-9.6 그 패키지가 존재하지 않는 것 같습니다.

      또한 pgAdmin4를 통해 pg_dump 및 pg_dumpall을 실행하려고했습니다. 처음에는 EDB Advanced Server Binary Path와 PostgreSQL Binary Path에 대한 바이너리 경로를 채웠습니다. 나는 opt/PostgreSQL/9.6/bin/을 넣었다. 이것은 pg_dump 실행 파일이있는 곳이다. 백업을 실행할 때 오류가 발생했습니다 : 'ascii' codec can't decode byte 0xe1 in position 1: ordinal not in range(128). postgresql.conf의 client_encoding = SQLascii에서 client_encoding = utf8으로 변경하는 것을 권장하는 다른 곳의 답변을 찾았지만 도움이되지 않았습니다.

      여기에서 어디로 가야할지 조언을 구하는 사람이 있습니까?

    +0

    세션에 대해 PGDATA, PGHOME 및 PGLOCALEDIR 환경 변수가 정의되어 있습니까? – Dan

    +1

    'cd to postgres bin/opt/PostgreSQL/9.6/bin' 왜? PATH에'/ opt/PostgreSQL/9.6/bin'이 없습니까? (당신은 안된다.) – wildplasser

    +0

    'sudo pg_dumpall ...'root로 실행하면 안된다 root는 (보통) * postgres * 사용자가 아니다. 사용자'postgres' 대신 (postgres 수퍼 유저) postgres 사용자는 정확한 PATH 및 기타 환경 설정을 가질 가능성이 큽니다. – wildplasser

    답변

    0

    unix/linux 시스템에서 현재 디렉토리 .PATH에없고 바이너리를 검색하지 않습니다.

    pg_basebackup/opt/PostgreSQL/9.6/bin/에 실행하려면 /opt/PostgreSQL/9.6/bin/pg_basebackup을 실행합니다.

    pg_basebackup 명령을 실행하려는 경우 현재 디렉토리에 있음을 알았다면 ./pg_basebackup을 쓸 수 있습니다. 하지만 불필요하게 cd 대신 전체 경로를 사용하는 것이 좋습니다.