Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос/миграция базы данных, Перенести базу с одного сервера на друго 
V
    Опции темы
Radekk
Дата 22.10.2013, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



В общем такая проблема, нужно перенести базу данных с сервера версии 2,0 на версию 2,5

Сделал бэкап имя_файла.fbk на рабоче сервере, из бэкапов восстановился локально на другой машине, версия 2,1, при восстановлении никаких проблем не возникло.(Ibexpert)
Остановил работу сервера скопировал себе файлы баз данных имя_базы.fdb
Перенес на другую машину(версия 2,5) подключился утилитой isql к файлу базы, сделал input "c:\Program Files\Firebird\Firebird_2_5\misc\upgrade\metadata\metadata_charset_create.sql"
По инструкции начал проходить по базе уже select * from rdb$check_metadata

Скрипт на каком то этапе выдал ошибку

rdb$procedures rdb$procedure_source get_plan_details <null>

statement faled, sqlstate=42000
malformed string
-at procedure rdb$fixb_metadata line 86 col 17
at procedute rdb$check_metadata line 14 col 9

Последним он мне указывает процедуру где была ошибка? я правильно понял?

Я вообще правильно базу переношу?????
Потому как я понял при неправильном переносе очень велика вероятность повреждения базы.
Если последовательность неверна прошу написать пряморукую последовательность.
Хотелось бы восстановить базу без потерь.


Это сообщение отредактировал(а) Radekk - 22.10.2013, 14:57
PM MAIL   Вверх
Akella
Дата 22.10.2013, 15:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Radekk @  22.10.2013,  14:56 Найти цитируемый пост)
Я вообще правильно базу переношу?????

нет
зачем на 2.1?
сразу под 2.5 восстанавливай

Добавлено @ 15:44
На ПК, где установлен Firebird 2.5 сделай следующее:
1. Разверни (распакуй) встраиваемый сервер Firebird 2.0 в какой-нибудь папке.
2. В неё же скопируй файл базы BASE.FDB.
3. В этой же папке должно быть 2 файла: backup.bat и restore.bat
4. Вот содержимое первого: 
gbak.exe -b -v -user sysdba -password masterkey BASE.FDB BASE.FBK
5. Вот содержимое второго:
"c:\program files (x86)\firebird\firebird_2_5\bin\gbak.exe" -c -v -rep -FIX_FSS_METADATA win1251 -user sysdba -password masterkey BASE.FBK BASE.FDB
6. Запусти вначале backup.bat - будет выполнено резервное копирование сервером Firebird 2.0.
7. Потом запусти restore.bat - будет выполнено восстановление сервером Firebird 2.5
Всё, теперь файл BASE.FDB у тебя должен нормально работать под FB 2.5


Обязательно прочитай внимательно про FIX_FSS_METADATA, т.к. там нужно кодировку правильную указывать. У тебя база в какой кодировке?
PM MAIL   Вверх
Radekk
Дата 22.10.2013, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



Цитата(Akella @ 22.10.2013,  15:38)
1. Разверни (распакуй) встраиваемый сервер Firebird 2.0 в какой-нибудь папке.

это Firebird Embedded - предназначен для встраиваемых баз данных
я правильно понял???
PM MAIL   Вверх
Akina
Дата 22.10.2013, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(Akella @  22.10.2013,  16:38 Найти цитируемый пост)
5. Вот содержимое второго:
"c:\program files (x86)\firebird\firebird_2_5\bin\gbak.exe" -c -v -rep -FIX_FSS_METADATA win1251 -user sysdba -password masterkey BASE.FBK BASE.FDB

Маленькая поправка. В качестве пользователя (а соответственно и пароля к нему) следует указать учётную запись, которая должна быть владельцем (owner) базы данных.
Да, в большинстве случаев разработчики на это не заморачиваются, и SYSDBA прокатывает. Но если заморочились, то без соблюдения этой мелочи большие проблемы неминуемы. Причём в далёком будущем, когда лечение будет стоить гораздо более дофига времени и ресурсов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Akella
Дата 22.10.2013, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Radekk @  22.10.2013,  16:26 Найти цитируемый пост)
это Firebird Embedded - предназначен для встраиваемых баз данных
я правильно понял??? 

 smile 
PM MAIL   Вверх
Radekk
Дата 23.10.2013, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



так по пункту 
4. Вот содержимое первого: 
gbak.exe -b -v -user sysdba -password masterkey BASE.FDB BASE.FBK

батник запускает командную строку но база не бекапится мне надо как то переименовывать файлик fbembed.dll????

восстановление прошло успешно одна база вроде как заработала у второй скрипт запускается и вылетает.
я подозреваю проблема уже в кодировках
посмотрел по таблицам второй базы почти везде указано unicode_fss
получается для второго файла вместо вин1251 указывать юникод_фсс????
есть ли возможность как то узнать о кодировке самой базы данных? 
базы создавались еще во времена когда я здесь не работал

еще вопрос можно при восстановлении привести базу просто к юникоду????

очень полезно было бы, потому что в базах хранятся данные на нескольких языках и уже в программном коде моих приложений приходится делать костыли, да и плюс я где то читал что лучше поиск по базе организован с диокритикой, я уже этот вопрос на форуме поднимал как то.
в общем чтобы базы можно было перетащить на новую версию сервера с новыми плюшками

Спасибо. 
PM MAIL   Вверх
Akella
Дата 23.10.2013, 21:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
батник запускает командную строку но база не бекапится

запомни раз и на всю жизнь: ВСЕГДА приводи полный, правильный, оригинальный текст ошибки  smile

Добавлено через 18 секунд
и ооочень желательно не картинкой, а текстом

Добавлено через 2 минуты и 16 секунд
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
мне надо как то переименовывать файлик fbembed.dll????

Попробуй переименовать в fbclient.dll

Добавлено через 2 минуты и 56 секунд
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
восстановление прошло успешно

что-то не понял я тебя
из чего же ты восстанавливаешь, если резервная копия не была создана smile

Добавлено через 5 минут и 50 секунд
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
осмотрел по таблицам второй базы почти везде указано unicode_fss
получается для второго файла вместо вин1251 указывать юникод_фсс????


Ты это http://www.ibase.ru/firebird/21/metadata_charset.htm читал? Признавайся!

Добавлено через 7 минут и 16 секунд
а это видел?
http://www.sql.ru/forum/903636/dlya-firebi...771935#11771935

Добавлено через 8 минут и 15 секунд
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
батник запускает командную строку но база не бекапится мне надо как то переименовывать файлик fbembed.dll????

вот тебе ответ http://www.sql.ru/forum/actualutils.aspx?a...mp;msg=11965200

Добавлено через 9 минут и 33 секунды
вот ещё http://www.sql.ru/forum/actualutils.aspx?a...mp;msg=11969730

Добавлено через 10 минут и 17 секунд
и здесь http://www.sql.ru/forum/actualutils.aspx?a...mp;msg=11969763 важное замечание:
Цитата

2. Восстанавливаем под 2.5.1 c двумя дополнительными параметрами

если ты получил ошибку при восстановлении БЕЗ этих параметров. Просто так эти параметры указывать не надо.

PM MAIL   Вверх
Radekk
Дата 24.10.2013, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



Цитата(Akella @ 23.10.2013,  21:23)
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
батник запускает командную строку но база не бекапится

запомни раз и на всю жизнь: ВСЕГДА приводи полный, правильный, оригинальный текст ошибки  smile

Добавлено @ 21:23
и ооочень желательно не картинкой, а текстом

Добавлено @ 21:25
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
мне надо как то переименовывать файлик fbembed.dll????

Попробуй переименовать в fbclient.dll

Добавлено @ 21:26
Цитата(Radekk @  23.10.2013,  11:35 Найти цитируемый пост)
восстановление прошло успешно

что-то не понял я тебя
из чего же ты восстанавливаешь, если резервная копия не была создана smile

Батник запускается, появляется окно командной строки и тут же закрывается, ошибку выглядеть не успел...
Если бы я видел ошибку, неужто я бы ее не расписал тут, зная  что это будет очень нужно.

Восстанавливаю из .fbk файлов, Ibexpert-ом  сделал бэкапы на сервере, с переносом файлов был только геморрой, но это дело третье.

Уже прочитал(http://www.ibase.ru/firebird/21/metadata_charset.htm) в батнике нужно будет добавить еще параметр так?

"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -c -v -rep -FIX_FSS_METADATA win1251 --replace win1251 utf-8 -user sysdba -password masterkey USERSrad.fbk users_local.fdb

я правильно понял?

Остальное сейчас перечитаю. Спасибо.
PM MAIL   Вверх
Akella
Дата 24.10.2013, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Radekk @  24.10.2013,  09:57 Найти цитируемый пост)
Батник запускается, появляется окно командной строки и тут же закрывается, ошибку выглядеть не успел...

позови хоть кого-нибудь, кто умеет работать с командной строкой
например, программиста позови, или сисадмина
PM MAIL   Вверх
Radekk
Дата 25.10.2013, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



Цитата(Akella @ 24.10.2013,  16:29)
Цитата(Radekk @  24.10.2013,  09:57 Найти цитируемый пост)
Батник запускается, появляется окно командной строки и тут же закрывается, ошибку выглядеть не успел...

позови хоть кого-нибудь, кто умеет работать с командной строкой
например, программиста позови, или сисадмина

Шутку оценил, смешно.

Понял в чем суть ошибки, разобрался, бэкапы работают
(мне чет взбрендило в башку что утилита просто запрятана где-то,  стопорил батник, чтобы не закрывалась строка ошибок не было, уже когда зашел из строки в папку и попытался запустить бэкап, по ошибкам понял что эпично натупил).
эта ссылка была очень полезной 
-скопировать fbembed.dll от 2.0 как fbclient.dll
-скопировать gbak от 2.0

спасибо за помощь и терпение.
Все как обычно выливается в RTFM, а я чет поторопился и был невнимателен.

правда при бэкапе один раз потерял триггеры(когда бэкапился из IBexpert) при работе из командной строки все прошло хорошо, базы  восстановил на 2.5

Database header page information:
Flags 0
checsum 12345 
page size 8192
ODS version 11.2
...

Вроде все нормально.

Еще раз спасибо.
PM MAIL   Вверх
Akella
Дата 26.10.2013, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Radekk @  25.10.2013,  08:25 Найти цитируемый пост)
Шутку оценил, смешно.

я не шучу, вообеще-то
PM MAIL   Вверх
Radekk
Дата 27.12.2013, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



Есть еще вопрос

ALTER CHARACTER SET charset SET DEFAULT COLLATION collation

пытаюсь применить к базе данных через isql утилиту и ничего не происходит, ошибок не выдает, однако база остается в прежней кодировке поля тоже.
или в фениксе нельзя сменить тип кодировки и сравнение для созданных полей????
PM MAIL   Вверх
Akella
Дата 30.12.2013, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329




Цитата(Radekk @  27.12.2013,  15:04 Найти цитируемый пост)
ALTER CHARACTER SET charset SET DEFAULT COLLATION collation



а справку почитать пробовал?
http://www.firebirdsql.org/refdocs/langref...dl-charset.html
Цитата
Description: With ALTER CHARACTER SET, the default collation of a character set can be changed. This will affect all future usage of the character set, except where overridden by an explicit COLLATE clause. The collation of existing domains, columns and PSQL variables will not be changed. 

PM MAIL   Вверх
Radekk
Дата 31.12.2013, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



Да ок я понял что будет работать только с полями которые я добавлю после, но почему из ibexpert меняется и кодировка и сравнение для созданных полей?
Или он каким-то более хитрым способом это делает?

С наступающим!

Кстати еще вопрос, тут присоветовали Database .NET как альтернативу ibexpert, пользовались? что-то можете сказать?
PM MAIL   Вверх
Radekk
Дата 11.8.2014, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 11.4.2013

Репутация: нет
Всего: нет



в общем сделал чуть по-другому.
перенес практически вручную метадату(процедуры,вьюшки и таблицы), а вот с данными нашел канал на ютубе от ибэкспертов, там очень быстро и четко все расписано. переносил ibeblock скриптами.

пример, может будет кому-то полезно.
Код

execute ibeblock
as
begin
  try
    DFrom = ibec_CreateConnection(__ctInterBase,
                               'DBName="hostname:C:\folder\database.fdb";
                               ClientLib=gds32.dll;
                               User=SYSDBA; Password=masterkey; Names=NONE; SqlDialect=3;');
             DTo = ibec_CreateConnection(__ctInterBase,
                                       /*"LOCALHOST/3050" - стоит несколько серверов, а  3050 - порт на котором висит нужная мне база(3050 порт по умолчанию, для фаерберда, на 3021 у меня стоит 2,1 сервер)*/
                                        'DBName="LOCALHOST/3050:C:\Firebird\databases_2_5\database.fdb";
                                        ClientLib=gds32.dll;
                                        User=SYSDBA; Password=masterkey; Names=UTF8; SqlDialect=3;');

               use DFrom;
                     for select ID, DENUM, ORDERID
                         from TPI/*название таблицы*/
                         into :ID, :DENUM, :ORDERID
               do begin
               ibec_Progress('Copy data from record'||:ID);
                    use DTo;
                  insert into TPI (ID, DENUM, ORDERID)
                  values (:ID, :DENUM, :ORDERID);
               end
               use DFrom;
               commit;
               use DTo;
               commit;
  finally
    ibec_CloseConnection(DFrom);
    ibec_CloseConnection(DTo);
  end;
end;

все скриптики сохранял в файлики с расширением sql  и сделал батничек чтобы можно было переносить все сразу
в батнике

"C:\Program Files (x86)\HK-Software\IBExpert\ibescript.exe" Название_файла.sql 

"C:\Program Files (x86)\HK-Software\IBExpert\ibescript.exe" Название_файла.sql

"C:\Program Files (x86)\HK-Software\IBExpert\ibescript.exe" Название_файла.sql

"C:\Program Files (x86)\HK-Software\IBExpert\ibescript.exe" Название_файла.sql

etc.

порядок сделал исходя от ключей и зависимостей таблиц. вроде разобрался, просто был опыт работы только с mysql и чуток с mssql.
возможно можно было и проще, но я не мытьем так катаньем, все работает.
спасибо за помощь и понимание.

Это сообщение отредактировал(а) Radekk - 11.8.2014, 11:14
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.1695 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.