|   |   | 
| 
 | Помогите скопировать базу 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 | 
        http://www.postgresql.org/docs/8.4/static/app-pgrestore.html
  -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 в винде есть. Спасибо за идею. Попробую.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |