수신 데이터베이스에서 적절한 역할을하지 않고 덤프를 복원하려고합니다.
언급 한 바와 같이 여기 뿐만 아니라 여기에 , 당신은이 필요 --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에서 실행 중입니다.
건배