Re: pg_restore 12 "permission denied for schema" errors
От | Ron |
---|---|
Тема | Re: pg_restore 12 "permission denied for schema" errors |
Дата | |
Msg-id | 119d108c-0669-a15d-2afe-3c4116130118@gmail.com обсуждение исходный текст |
Ответ на | Re: pg_restore 12 "permission denied for schema" errors (Adrian Klaver <adrian.klaver@aklaver.com>) |
Ответы |
Re: pg_restore 12 "permission denied for schema" errors
|
Список | pgsql-general |
On 10/22/22 11:20, Adrian Klaver wrote: > On 10/20/22 14:34, Ron wrote: >> On 10/20/22 10:02, Adrian Klaver wrote: >>> On 10/20/22 06:20, Ron wrote: >>>> On 10/20/22 00:12, Tom Lane wrote: > >>>> I ran "pg_dumpall --globals-only --no-role-passwords" on the source >>>> instance, and applied it to the new instance before doing the >>>> pg_restore. If I hadn't done that, pg_restore would have thrown errors >>>> on all the GRANT and ALTER TABLE ... OWNER TO statements embedded in >>>> the backup. >>>> >>> >>> Some questions: >>> >>> 1) The backup was from a Postgres 12.x database using a version 12 or >>> higher instance of pg_backup? >> >> pg_dump and pg_restore are 12.11 from RHEL8. >> >>> 3) What if you run without --jobs? >> >> It runs without error. Add "--jobs=2" and the errors appear. >> > > Hmm, that is beyond me. > > 1) I did notice that the pg_restore errors all where; ERROR: permission > denied for schema strans > > 2) They all occurred during CREATE INDEX or COPY, which would be the part > where --jobs kicks in. > > To me it looks like out of order execution where the jobs starting on > their tasks before the main task got done granting permissions. I just > have no idea how that could happen. I was afraid you were going to say that. The work-around is to: pg_dump $SRCDB --schema-only | grep -e '^\(GRANT|REVOKE\)' > all_GRANT.sql pg_dump $SRCDB --schema-only | grep OWNER > all_OWNER.sql pg_restore --jobs=X --no-owner $NEWDB psql $NEWDB -f all_OWNER.sql psql $NEWDB -f all_GRANT.sql This is, of course, why we need to test the backup/restore process. -- Angular momentum makes the world go 'round.
В списке pgsql-general по дате отправления: