|
Помогите скопировать базу PostgreSQL |
☑ |
0
AlexYurg
07.10.11
✎
22:20
|
Знатоки PostgreSQL, помогите!
Пытаюсь целиком скопировать базу "DB1" в другую базу "DB2":
pg_dump -Fc -b -f test.backup DB1
pg_restore -d DB2 test.backup
pg_dump проходит нормально, а pg_restore ругается, сыпет ошибками,
что, мол, в базе это уже есть. Как ему объяснить, что я хочу просто
заменить содержимое второй базы на зеркальную копию первой?
|
|
1
Варвар
07.10.11
✎
22:31
|
-c
--clean
Clean (drop) database objects before recreating them.
|
|
2
AlexYurg
07.10.11
✎
22:36
|
(1) Точно! Спасибо! А я как-то прозевал этот ключик!
Чита-читал, блин...
|
|
3
AlexYurg
07.10.11
✎
22:51
|
(1) Не помогло. Все равно ругается.
Может быть, надо сервер 1С предприятия останавливать перед рестором?
(Не хотелось бы, т.к. в других базах люди работают)
|
|
4
ilkoder
07.10.11
✎
23:06
|
Не надо ничего останавливать, у нас каждый час дамп делается и никого не выкидываем. Только базу (в которую будешь копировать) лучше сначала создать пустую средствами 1с, потом в процессе востановления сначала пишет кучу ошибок - и пофигу на них, потом появляется в консоли сообщение - "create shema" - значит начала создаваться - вот после этого ошибок быть не должно. Постоянно так копию рабочей базы для экспериментов делаю.
|
|
5
AlexYurg
07.10.11
✎
23:22
|
(4) Не хотелось бы создавать базу средствами 1С вручную,
мне нужно простое автоматическое копирование из bat-файла.
В этом случае ключа (1) достаточно?
|
|
6
ansh15
08.10.11
✎
00:11
|
(0) DB2 удалите, создайте ее же заново, а потом pg_restore
|
|
7
ansh15
08.10.11
✎
00:16
|
dropdb DB2
createdb DB2
pg_restore ...
|
|
8
AlexYurg
08.10.11
✎
13:55
|
dropdb не проходит, говорит что в базе сидят два пользователя.
Хотя никто там не сидит, это точно, разве что сам сервер 1С...
Что с этим делать?
|
|
9
AlexYurg
08.10.11
✎
14:37
|
Продолжение к (8)
Попробовал остановить сервер 1С - не помогло.
Все равно говорит, что база используется двумя другими сеансами.
|
|
10
ansh15
08.10.11
✎
14:51
|
(9)В диспетчере задач, в процессах посмотрите зависшие процессы, ну и завершите их. Можно службу postgresql перезапустить, тогда они сам отвалятся.
|
|
11
AlexYurg
08.10.11
✎
18:00
|
Всем спасибо, особенно, ansh15. Вроде разобрался.
pg_dump / dropdb / createdb / pg_restore - работает нормально.
Правда, pg_restore все равно ошибки выдает и возвращает errorlevel = 1.
|
|
12
pwei
08.10.11
✎
19:00
|
я psql использую. на линуксе. не знаю, есть ли в винде.
|
|
13
AlexYurg
08.10.11
✎
20:48
|
(12) psql в винде есть. Спасибо за идею. Попробую.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший