Добрый день.
Делаю резервную копию первой базы и пытаюсь восстановить ее во вторую базу, при восстановлении psql выдает ошибки:
LANGUAGE c IMMUTABLE STRICT
AS '$libdir/mchar', 'mchar_case_ne';
ERROR: syntax error at or near "0"
Копию базы делаю с помощью pg_dump:
pg_dump.exe -h localhost -p 5432 -U user1 -F c -v -b -f filename db
далее в pgAdminIII создаю новую базу с tablespace pg_default (если она существовала ранее то предварительно ее удаляю)
потом восстанавливаю с помощью psql
psql.exe -U user1 db2 < filename
и получаю массу ошибок
LANGUAGE c IMMUTABLE STRICT
AS '$libdir/mchar', 'mchar_case_ne';
ERROR: syntax error at or near "0"
Postgres 9.0.3-3, windows server 2008
Очевидно, что в новую базу не
Очевидно, что в новую базу не прогружено расширение mchar, поэтому и получаете ошибки.
как его подгрузить?
как его подгрузить?
А хрен его знает как оно у вас там
Мне кажется много проще будет вам сделать БД с шаблоном той, из которой вы делали дамп.
Почитайте CREATE DATABASE WITH TEMPLATE
http://postgresql.ru.net/manual/sql-createdatabase.html
тогда в новую БД попадут все расширения, загруженные в старую
Так не очень получается. Если
Так не очень получается. Если исходная БД используется то при попытке использования ее в качестве шаблона возникает ошибка что база данных используется и новую БД создать не получается.
Мне нужно получить нормальный механизм создания копии работающей БД, при этом работающая БД естественно не должна останавливаться.
А долго разбираться с mvchar ?
Один раз-то можно остановить
Один раз-то можно остановить или нет?
Вам нужно один раз сделать БД, потом можете её же использовать в качестве шаблона, не трогая основную.
> А долго разбираться с mvchar ?
Я не знаю, ни пути ваши, ни точного названия либы. По идее это вы всё должны знать.
Кстати только что пришло в голову: а БД из которой вы делаете копию и БД, в которую её загружаете случайно не на разных серверах PostgreSQL? Если да, то может у вас банально второй сервер установлен без поддержки mvchar?
Нет БД расположены на одном
Нет БД расположены на одном сервере,
и в одном tablespace.
Postgres 9.0.3-3 (Windows)
Остановить базу конечно можно, но хотелось бы решить вопрос нормально, чтобы потом не было таких косяков.
А может всё проще?Попробуйте
А может всё проще?
Попробуйте CREATE DATABASE ... WITH TEMPLATE=template0
Если template0 не сработает template1. Возможно, что всё и получится.
Только выполняйте эти команды в psql, а не в pgAdmin, ибо веры последнему нету ни на грош - были уже преценденты
И ещё, покопался в Инете. Пишут, что при ошибках с mvchar нужно создавать базу непосредственно из 1C. Если есть такая возможность - сделайте именно так!
ок. сегодня не успеваю,
ок. сегодня не успеваю, завтра планирую весь день на этим заниматься. Нужно переходить на postgres.