Имя: Пароль:
IT
Админ
Восстановление базы 1С из дампа PosgreeSQL
0 Nikoss
 
18.03.17
07:25
Винда сервер 2012

Делаю так

"C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\psql.exe" -U postgres b123 < "E:\123.dump"

Непредвиденная лексема "-U" в выражении или операторе.
Непредвиденная лексема "postgres" в выражении или операторе.
Оператор "<" зарезервирован для использования в будущем.
и т.д.

Пробовал убирать "-U", "posgres", "<". Ничего не получается.
Что я делаю не так?
1 Звездец
 
18.03.17
08:04
ой ты наверное сейчас еще скажешь что и гуглил? в документации все написано

http://postgresql.ru.net/manual/backup-dump.html#BACKUP-DUMP-RESTORE
2 ansh15
 
18.03.17
10:52
v8: Помогите с BACKUP в Postgres, не выгоняя пользователей в 1С

По ссылке в (1) и здесь https://postgrespro.ru/docs/postgrespro/9.6/app-pgdump можно почитать более подробно о том, что каждый параметр pg_dump означает.
3 Nikoss
 
18.03.17
11:43
(1), ну правильно, там и написано:

Общий вид команды для восстановления дампа:
psql имя_БД < файл_дампа
4 Nikoss
 
18.03.17
11:45
может я не там пишу? я пишу в powershell
5 ansh15
 
18.03.17
12:08
(3) Последний абзац - "Следующая команда делает дамп базы данных, используя специальный формат дампа:

pg_dump -Fc имя_БД > имя_файла

Специальный формат дампа не является скриптом для psql и должен восстанавливаться с помощью команды pg_restore, например:

pg_restore -d имя_БД имя_файла"
Нужно восстанавливать посредством pg_restore.
psql имя_БД < файл_дампа не годится для баз 1С. Рекомендации 1С по этому поводу есть на ИТС.
6 Nikoss
 
18.03.17
12:16
(5)
PS C:\Windows\system32> "C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_restore.exe" -d b123 E:\testdump\b123.dump
строка:1 знак:61
+ "C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_restore.exe" -d b123 E: ...
+                                                             ~~
Непредвиденная лексема "-d" в выражении или операторе.
строка:1 знак:64
+ "C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_restore.exe" -d b123 E: ...
+                                                                ~~~~~~~~~~~~~~
Непредвиденная лексема "b123" в выражении или операторе.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken
7 ansh15
 
18.03.17
12:27
(6) Попробуй всю строку заключить в кавычки, PowerShell определенным образом интерпретирует и ковычки и пробелы.
Вот, почитал... http://windowsnotes.ru/powershell-2/powershell-i-kavychki/
8 Nikoss
 
18.03.17
14:28
мда, попробовал положить команду из (0) в бат. Все заработало.

(7), а в кавычках он мне просто все что в них есть дублирует в строку ниже и всё. Будто я ему сказал "напечатай, что я напечатал")
9 ansh15
 
18.03.17
23:42
(8) http://windowsnotes.ru/powershell-2/zapusk-programmy-iz-powershell/

& 'C:\Program Files\PostgresPro 1C\9.6\bin\pg_dump.exe' "-Fc" "-b" "-fC:\pgsql\bench.bak" "bench"
& 'C:\Program Files\PostgresPro 1C\9.6\bin\pg_restore.exe' "-dbench" "C:\pgsql\bench.bak"
База bench должна быть вновь созданной.
Так работает.
10 rphosts
 
19.03.17
05:56
делаю дамп базы:

SET PGBIN=C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\
SET PGDATABASE=<base>
SET PGHOST=127.0.0.1
SET PGPORT=5432
SET PGUSER=<admdb>
SET PGPASSWORD=<pswdadmdb>
"C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_dump.exe"  -i -b -v -E UTF-8 -f C:\PG_Backup\Dump\dump_base_<base>.sql

восстанавливаю (перед восстановлением в консоли адм пг удаляю базу, если она есть):

SET PGBIN=C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\
SET PGDATABASE=<base>
SET PGHOST=127.0.0.1
SET PGPORT=5432
SET PGUSER=<admdb>
SET PGPASSWORD=<pswdadmdb>
createdb.exe
psql -f D:\dump_base_<base>.sql >D:\restore_<base>.log


где
<base> - имя базы
<admdb> - суперюзер постгри
<pswdadmdb> - пароль суперюзера
11 rphosts
 
19.03.17
05:58
разумеется всё из батников... бэкап делается по расписанию... ну и вручную, если внезапно приспичило