Перейти к содержимому


Фото
- - - - -

Ошибка обновления Сервера Dr.Web ES10 (SQL)

sql es10 update

  • Please log in to reply
24 ответов в этой теме

#1 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 12 Июль 2017 - 18:50

Доброго времени суток, при попытке обновления сервера Dr.Web ES10 c версии 06-12-2016 до 11-02-2017 возможно произошла ошибка обновления, в последующем при попытке обновления до версии 11-05-2017 процесс крашится при обновлении базы данных (скорей всего нарушена структура таблиц).

Самостоятельно пытался отследить в каких таблицах неполадки, но не вышло.

 

Есть ли вариант восстановить структуру базы данных до версии 06-12-2016 без потери данных о машинах и персональных настройках и в последующем обновить сервер без проблем?

Прикрепленные файлы:



#2 maxic

maxic

    Keep yourself alive

  • Moderators
  • 12 809 Сообщений:

Отправлено 12 Июль 2017 - 18:53

btgsystem, по идее, при апгрейде версии база бэкапится. Насколько я помню.



#3 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 12 Июль 2017 - 19:49

"C:\Program Files\DrWeb Server\bin\drwcsd.exe" -home="C:/Program Files/DrWeb Server" -etc="C:/Program Files/DrWeb Server/etc" -bin="C:/Program Files/DrWeb Server" -var-root="C:/Program Files/DrWeb Server/var" -verb=ALL -log="C:/Program Files/DrWeb Server/var\importdb.log" xmlimportdb "C:/Program Files/DrWeb Server/var\update_backup_20161206000000_20170511000000\dbexport.gz"

 

Если будут ошибки – будет нужен importdb.log.

Ошибки обновления разбирать потом.


Сообщение было изменено Afalin: 12 Июль 2017 - 19:50

Семь раз отрежь – один раз проверь

#4 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 12 Июль 2017 - 20:19

И у меня паззл до конца не сходится. Я вижу, что сервер Вы запускаете 20150703 (это то, что скрывается за 20161206, не суть), однако БД, к которой сервер при этом подключается – от версии 20150206. С которой сервер работать и не должен бы. Откройте секрет, как этого добиться.

 

при попытке обновления сервера Dr.Web ES10 c версии 06-12-2016 до 11-02-2017 возможно произошла ошибка обновления, в последующем при попытке обновления до версии 11-05-2017

И вот тут хотелось бы подробностей, что происходило.


Семь раз отрежь – один раз проверь

#5 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 07:35

И у меня паззл до конца не сходится. Я вижу, что сервер Вы запускаете 20150703 (это то, что скрывается за 20161206, не суть), однако БД, к которой сервер при этом подключается – от версии 20150206. С которой сервер работать и не должен бы. Откройте секрет, как этого добиться.

 

 

 

при попытке обновления сервера Dr.Web ES10 c версии 06-12-2016 до 11-02-2017 возможно произошла ошибка обновления, в последующем при попытке обновления до версии 11-05-2017

И вот тут хотелось бы подробностей, что происходило.

Это боюсь мы уже не узнаем, прошлый системный администратор уволился. 

Из последних серьезных манипуляций с БД это перенос с локального sqlite сервера на централизованный ms-sql. Обновление обычно проходило штатно, из административной панели выбиралась новая версия и сервер автоматически перезагружался, однажды просто заметили, что версия не изменилась.

Прикрепленные файлы:



#6 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 07:45

 

importing data of version #220, but curent version #221 (requiring #221)

Угу, бэкап БД тоже от билда 20150206. В 10 версии мы не умеем накатывать старые экспорты, для этого нужно использовать соответствующую версию сервера.

Но лучше зайдём с другой стороны. Ну не прошло обновление – но БД-то жива должна быть. Попробуйте запустить сервер как есть и пришлите drwcsd.log – подозреваю, что он не запустится, строго по этой же причине. Если так – обновим БД из командной строки и продолжим.


Семь раз отрежь – один раз проверь

#7 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 08:52

 

 

importing data of version #220, but curent version #221 (requiring #221)

Угу, бэкап БД тоже от билда 20150206. В 10 версии мы не умеем накатывать старые экспорты, для этого нужно использовать соответствующую версию сервера.

Но лучше зайдём с другой стороны. Ну не прошло обновление – но БД-то жива должна быть. Попробуйте запустить сервер как есть и пришлите drwcsd.log – подозреваю, что он не запустится, строго по этой же причине. Если так – обновим БД из командной строки и продолжим.

 

 

Сервер действительно не загружается.. (Получилось запустить только при помощи хитрости на SQL сервере - update dbstruct set dbver=221; )

В данный момент dbver=220

Прикрепленные файлы:

  • Прикрепленный файл  drwcsd.log   68,29К   1 Скачано раз


#8 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 09:02

(Получилось запустить только при помощи хитрости на SQL сервере - update dbstruct set dbver=221; )

Учтите, что хитрость эту надо будет применить обратно, иначе потом будет всё намного веселее. Сейчас соображу инструкции, как обойти уже найденные грабли.


Семь раз отрежь – один раз проверь

#9 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 09:09

Итак, скачайте вот это, положите в какую-либо директорию. Потом запустите "C:\Program Files\DrWeb Server\bin\drwcsd.exe" -home="C:/Program Files/DrWeb Server" -etc="C:/Program Files/DrWeb Server/etc" -bin="C:/Program Files/DrWeb Server" -var-root="C:/Program Files/DrWeb Server/var" -verb=ALL -log="C:/Program Files/DrWeb Server/var\upgradedb.log" upgradedb "path/to/directory/with/lua/script" – не забудьте указать правильный путь к этой директории. Если будут ошибки – upgradedb.log в студию.

 

Не забудьте вернуть dbstruct в 220, иначе чудо не случится.


Семь раз отрежь – один раз проверь

#10 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 13:08

Итак, скачайте вот это, положите в какую-либо директорию. Потом запустите "C:\Program Files\DrWeb Server\bin\drwcsd.exe" -home="C:/Program Files/DrWeb Server" -etc="C:/Program Files/DrWeb Server/etc" -bin="C:/Program Files/DrWeb Server" -var-root="C:/Program Files/DrWeb Server/var" -verb=ALL -log="C:/Program Files/DrWeb Server/var\upgradedb.log" upgradedb "path/to/directory/with/lua/script" – не забудьте указать правильный путь к этой директории. Если будут ошибки – upgradedb.log в студию.

 

Не забудьте вернуть dbstruct в 220, иначе чудо не случится.

 

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

Прикрепленные файлы:


Сообщение было изменено btgsystem: 13 Июль 2017 - 13:09


#11 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 13:25

Эм, а чего-либо типа updater_ops.*.log.gz нет?

Тут не прошёл уже следующий апгрейд, но в лог он не попал – он начинается уже с восстановления из бэкапа при откате обновления.


Сообщение было изменено Afalin: 13 Июль 2017 - 13:27

Семь раз отрежь – один раз проверь

#12 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 13:57

Эм, а чего-либо типа updater_ops.*.log.gz нет?

Тут не прошёл уже следующий апгрейд, но в лог он не попал – он начинается уже с восстановления из бэкапа при откате обновления.

Есть, но я как понимаю он затирает при >10 файлов.

Прикрепленные файлы:



#13 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 14:19

Да, Вы правы, и в этом есть фейл.

Замените файл по пути C:/Program Files/DrWeb Server/var/repository/20-drwcs/20170511000000/windows/update.lua вот этим (если есть агент – предварительно отключить самозащиту). Он сохранит лог апгрейда в upgrade_ops*. Апдейт снова не пройдёт, но теперь узнаем, почему. Спасибо за терпение…


Семь раз отрежь – один раз проверь

#14 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 14:57

Да, Вы правы, и в этом есть фейл.

Замените файл по пути C:/Program Files/DrWeb Server/var/repository/20-drwcs/20170511000000/windows/update.lua вот этим (если есть агент – предварительно отключить самозащиту). Он сохранит лог апгрейда в upgrade_ops*. Апдейт снова не пройдёт, но теперь узнаем, почему. Спасибо за терпение…

 

Вот логи, заранее говорю что пользователь под которым Dr.Web подключается к SQL - db owner.

Прикрепленные файлы:



#15 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 15:03

 

20170713.145203.83 ERR [01588 0f40] main   [DB] Failed, unable to complete "fetch row" operation because of [Microsoft][ODBC SQL Server Driver]Недопустимое состояние курсора (ODBC error -1, native error 0, state 24000); row #1, 00.015, UPDATE alert_templates SET body=? WHERE id_alert=? AND method=? AND admin=? AND language=? ["{GEN.StationName//Unknown}({GEN.StationAddress}): \xD0\x90\xD0\x", "6", "0", "50e8d771-50a5-e511-1547-c466fd41c20b", "ru"]

Хм…


Семь раз отрежь – один раз проверь

#16 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 16:04

В общем, периодически подобные объекты всплывают, но только в дикой природе. В лабораторных условиях не выводятся.

Есть идея, что не так, но нужен подопытный образец. Согласны на вариант – я соберу нашу ODBC-прослойку с интересующими изменениями, а Вы попробуете это запустить?


Семь раз отрежь – один раз проверь

#17 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 13 Июль 2017 - 16:38

В общем, периодически подобные объекты всплывают, но только в дикой природе. В лабораторных условиях не выводятся.

Есть идея, что не так, но нужен подопытный образец. Согласны на вариант – я соберу нашу ODBC-прослойку с интересующими изменениями, а Вы попробуете это запустить?

Попробуем запустить, собирайте.



#18 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 13 Июль 2017 - 19:56

Положите вот это по пути C:/Program Files/DrWeb Server/var\repository\20-drwcs\20170511000000\windows-nt-x64\bin\database\drwdbdrv_odbc.dll (оригинал стоит сохранить на всякий случай). Снова попробуйте, если не прокатит – снова те же логи. Учтите, я там включил много дебажного вывода на всякий случай.


Семь раз отрежь – один раз проверь

#19 btgsystem

btgsystem

    Newbie

  • Posters
  • 10 Сообщений:

Отправлено 17 Июль 2017 - 09:38

Положите вот это по пути C:/Program Files/DrWeb Server/var\repository\20-drwcs\20170511000000\windows-nt-x64\bin\database\drwdbdrv_odbc.dll (оригинал стоит сохранить на всякий случай). Снова попробуйте, если не прокатит – снова те же логи. Учтите, я там включил много дебажного вывода на всякий случай.

 

Еще пара ошибок и та-же с курсором на сколько понял. Есть ли процедура восстановления отдельных таблиц (Список и параметры компьютеров и т.д), и накатить их например на чистую установку?

Прикрепленные файлы:



#20 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 827 Сообщений:

Отправлено 17 Июль 2017 - 10:51

Ошибка та же, но зато отладочный вывод добавил информации к размышлению. Ещё вариант собираю, надеюсь, будет возможность проверить…

Восстановления отдельных таблиц нет. Тут варианты такие:

1) добить таки ODBC

2) залить БД, например, в SQLite, обновить там, залить обратно в MSSQL – судя по тому, что откат обновления проходит без сбоев, такое тоже должно бы прокатить

3) средствами СУБД вытащить отдельные таблицы, переустановить сервер (чтобы обойти необходимость апгрейда), потом накатить вытащенные таблицы – это самый дремучий путь, имхо


Семь раз отрежь – один раз проверь



Also tagged with one or more of these keywords: sql, es10, update

Читают тему: 2

0 пользователей, 2 гостей, 0 скрытых