Я пытаюсь выгрузить всю базу данных PG с хостинга на экземпляре GCP / GCE (виртуальная машина RHEL 8.x).
Цель - перенести файл. sql в другой RHEL 8. x ВМ на GCE и восстановление базы данных.
Я запускаю этот скрипт как пользователь ОС 'postgres'
#!/bin/bash
clear
export PGUSER=<pg_user>
export PG_DATABASE=<pg_db>
export PGHOSTADDR=<pg_ip_addr>
export PGPORT=5432
SQL_FILE=<pg_db>.sql
export PGPASSWORD=<passwd>
pg_dump \
--format plain \
--no-owner \
--verbose \
--file $SQL_FILE \
$PG_DATABASE
Если есть что-то еще рекомендуется в сценарии вывести базу данных в файл. sql для восстановления:
- все, что рекомендуется добавить в сценарий,
- или любой способ улучшить сценарий, который вы в курсе), пожалуйста, сообщите.
Я получаю эту ошибку при запуске сценария: (установлен PostGIS)
pg_dump: last built-in OID is 16383
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: error: query failed: ERROR: permission denied for table us_lex
pg_dump: error: query was: LOCK TABLE public.us_lex IN ACCESS SHARE MODE
Почему в работе разрешено отказывать Пользователь ОС postgres
.
Какое разрешение мне нужно добавить (полная / точная команда), чтобы добавить необходимые разрешения?
Или как я могу исключить эту таблицу? Я не думаю, что мне это нужно, и он будет воссоздан с установкой нового Postgres экземпляра.