У меня есть резервные копии всех баз данных PostgreSQL во время инкрементного резервного копирования с помощью WHM, который создает $ dbName.деготь файл.
Данные хранятся в этих файлах .tar, но я не знаю, как восстановить их обратно в отдельные базы данных через SSH. В частности, расположение файла.
Я использовал:
pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar
который генерирует ошибку "не удалось открыть входной файл: доступ запрещен"
Любая помощь приветствуется.
Найдена правильная строка кода, на случай, если кто-то еще найдет эту ветку.
pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W
Срыв произошел от http://www.postgresql.org/docs/7.3/static/app-pgrestore.html и немного проб и ошибок.
По сути ...
-c to clean the database
-i to ignore any database version checks
-U to force a user
-d to select the database
-v verbose mode, don't know why
"$$" the location of the files to import in tmp to get around permission issues
-W to force asking for the password to the user (postgres)
Надеюсь, что это поможет кому-то другому.
Когда я использовал PgAdmin III для восстановления, он работал безупречно, используя следующую команду, которую он создал сам:
pg_restore --host localhost --port 5432 --username "my_user_name" --dbname "my_db_name" --role "my_user_name" --no-password --verbose "/Users/me/Desktop/backup_file.tar"
Обратите внимание: чтобы избежать предупреждений, рекомендуется иметь роль владельца объектов в файле резервной копии, уже существующем на целевом сервере. Также у вас уже должна быть целевая БД, созданная и принадлежащая этой роли.
Я не уверен, что он может импортировать файл .tar. Я бы сделал
tar -zxvf client03.tar
чтобы извлечь все, что было внутри файла, и снова попробуйте pg_restore. Я знаю, что pg_restore работает, так как у нас есть тот же метод восстановления из восстановления с нуля.
Ниже был сгенерирован для меня из pgAdmin iii, щелкнув базу данных, щелкнув правой кнопкой мыши и выбрав восстановление. Я перешел к имеющемуся у меня файлу .tar, и он сделал это сам.
/usr/bin/pg_restore --host localhost --port 5434 --username "postgres" \
--dbname "dvdrental" --no-password --schema public --verbose \
"/home/npena/Desktop/dvd/dvdrental.tar"
Для версии 9.5 выполните в командной строке следующее:
pg_restore -W -c -U [username] -d [database_name] -v "[path to extracted tar]"
КОНСОЛЬ GNU / LINUX:
pg_restore -h 127.0.0.1 -p 5432 -U "postgres" -d "dvdrental_tpl" -v "/var/backups/dvdrental.tar";
- Подробная помощь
pg_restore --help