postgres-역할이없는 pg_dump 및 pg_restore


12

수신 데이터베이스에서 적절한 역할을하지 않고 덤프를 복원하려고합니다.

언급 한 바와 같이 여기 뿐만 아니라 여기에 , 당신은이 필요 --no-owner, 옵션으로의 하나 pg_dump또는 pg_restore또는 둘 다

다음 명령 줄을 사용하여 덤프를 만들었습니다.

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar

복원 라인은 다음과 같습니다

"C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password  --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar"

보시다시피, 둘 다 --no-owner옵션이 있지만 결국 아래 오류가 있습니다.

여기에 이미지 설명을 입력하십시오

나에게 끔찍한 버그는 아래 로그입니다.

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2633 ; 0 0 ACL adm avo******
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  role « avo****** » does not exist

--no-owner가 지정된 경우에도 역할이 필요하다고 말하는 이유는 무엇 입니까?

내가 뭘 놓 쳤니?

부록 : Postgres 9.3에서 실행 중입니다.

건배

답변:


14

pg_restoreACL을 설정할 때 오류가 발생 합니다. 명령 --no-acl을 방지 하는 데 사용할 수 있습니다 GRANT.

-Ft옵션을 사용하면의 pg_dump역할 및 ACL 만 건너 뛸 수 있습니다 pg_restore. --list자세한 내용이 필요한 경우 카탈로그를 편집 할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.