NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Akira on January 09, 2013, 06:44:49 AM

Title: 1.2.4 -> 1.2.5 upgrade fail
Post by: Akira on January 09, 2013, 06:44:49 AM
NetXMS Database Manager Version 1.2.5

Upgrading database...
Upgrading from version 265 to 266
SQL query failed ([Microsoft][SQL Server Native Client 10.0][SQL Server]Cannot create index. Object 'event_log' was created with the following SET options off: 'ANSI_NULLS'.):
CREATE INDEX idx_event_log_root_id ON event_log(root_event_id) WHERE root_event_id > 0
Rolling back last stage due to upgrade errors...
Database upgrade failed
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: XBOCT on January 09, 2013, 12:14:30 PM
Такая же ситуация, только с MySQL на CentOS 6.3. В итоге отказались работать и 1.2.4 и 1.2.5.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Alex Kirhenshtein on January 09, 2013, 12:50:12 PM
Поле root_event_id в таблице event_log сейчас "not null"? Если нет, попробуйте добавить not-null constraint и перезапустить апгрейд (UPDATE event_log SET root_event_id=0 WHERE root_event_id IS NULL; ALTER TABLE event_log ALTER COLUMN root_event_id SET NOT NULL).
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Victor Kirhenshtein on January 09, 2013, 03:55:01 PM
Похоже что изначально таблица была создана с опцией ANSI_NULLS = OFF (так было по умолчанию на старых версиях MS SQL). Единственный вариант похоже - это пересоздать таблицу EVENT_LOG заново с опцией ANSI_NULLS = ON. Одно из предлагаемых решений: http://stackoverflow.com/questions/10010042/update-ansi-nulls-option-in-an-existing-table (http://stackoverflow.com/questions/10010042/update-ansi-nulls-option-in-an-existing-table).
На всякий случай - DDL для создания таблицы:

CREATE TABLE event_log
(
event_id bigint not null,
event_code integer not null,
event_timestamp integer not null,
event_source integer not null,
event_severity integer not null,
event_message varchar(255) null,
root_event_id bigint not null,
user_tag varchar(63) null,
PRIMARY KEY(event_id)
) ;
CREATE INDEX idx_event_log_event_timestamp ON event_log(event_timestamp);


Microsoft про ANSI_NULLS: http://msdn.microsoft.com/en-us/library/ms188048.aspx (http://msdn.microsoft.com/en-us/library/ms188048.aspx)
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Victor Kirhenshtein on January 09, 2013, 06:10:18 PM
Upd: в аттаче SQL скрипт для конвертации таблицы event_log в правильный формат.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: kozlov_ao on January 09, 2013, 10:31:33 PM
Только что обновлял с 1.2.4 на 1.2.5... все нормально прошло, делал "из коробки"

Система FreeBSD 9.0
Может просто неудачное стечение обстоятельств... :)
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: doncelab on January 10, 2013, 02:17:20 PM
На windows 2003 MSSQL 2008 R8 вот такая ошибка:
Тип события:   Ошибка
Источник события:   NetXMSCore
Категория события:   Отсутствует
Код события:   63
Описание:
Your database has format version 263, but server is compiled for version 268

Скрипт выше запускал, не помогло.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Victor Kirhenshtein on January 10, 2013, 06:51:13 PM
Теперь надо запустить


nxdbmgr.exe upgrade


чтобы закончить обновление схемы.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: [email protected] on January 14, 2013, 12:32:18 PM
Windows Server 2008 R2 SP1 + MS SQL server 2008 x64
C:\Program Files\NetXMS\bin>nxdbmgr.exe upgrade
NetXMS Database Manager Version 1.2.5

Upgrading database...
Upgrading from version 265 to 266
SQL query failed ([Microsoft][ODBC SQL Server Driver][SQL Server]CREATE INDEX failed because the following SET options have incorrect settings: 'ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.):
CREATE INDEX idx_event_log_root_id ON event_log(root_event_id) WHERE root_event_id > 0
Rolling back last stage due to upgrade errors...
Database upgrade failed


Результат применения предлагавшегося SQL-скрипта:
ALTER TABLE SWITCH statement failed because column 'event_message' does not have the same ANSI trimming semantics in tables 'netxms_db.dbo.event_log' and 'netxms_db.dbo.event_log_new'.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: [email protected] on January 15, 2013, 05:09:48 AM
После запуска принудительного обновления через ключи -f -X , процедура завершилась успешно. Но теперь в Data Collection Configuration при добавлении нового параметра агента NetXMS список доступных параметров пуст.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: [email protected] on January 15, 2013, 07:32:45 AM
Реиндексировал базу.
Вопрос исчерпан.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Akira on January 16, 2013, 07:42:53 AM
С базой теперь ОК.
Теперь при старте консоли
Cannot load MIB file from server: Bad MIB file data
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Victor Kirhenshtein on January 16, 2013, 10:02:25 AM
Quote from: Akira on January 16, 2013, 07:42:53 AM
С базой теперь ОК.
Теперь при старте консоли
Cannot load MIB file from server: Bad MIB file data

Попробуйте удалить файл netxms.mib из каталога $HOME/.nxmc/data и перезапустить консоль.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Victor Kirhenshtein on January 16, 2013, 10:03:16 AM
Обновленный скрипт для пересоздания таблицы event_log:


IF ((SELECT uses_ansi_nulls FROM sys.tables WHERE object_id = object_id('netxms.event_log')) = 0)
      BEGIN TRY
            BEGIN TRANSACTION;
            USE netxms_db;
            /*Create new table with identical structure but option on*/
            SET ANSI_NULLS ON;
            SET ANSI_PADDING OFF;

            CREATE TABLE netxms.event_log_new
            (
            event_id bigint not null,
            event_code integer not null,
            event_timestamp integer not null,
            event_source integer not null,
            event_severity integer not null,
            event_message varchar(255) not null,
            root_event_id bigint not null,
            user_tag varchar(63) not null,
            PRIMARY KEY(event_id)
            ) ;

            CREATE INDEX idx_event_log_event_timestamp ON netxms.event_log_new(event_timestamp);

            /*Metadata only switch*/
            ALTER TABLE netxms.event_log  SWITCH TO netxms.event_log_new;

            DROP TABLE netxms.event_log;

            EXECUTE sp_rename N'netxms.event_log_new', N'event_log','OBJECT';

            COMMIT TRANSACTION;
      END TRY

      BEGIN CATCH
            IF XACT_STATE() <> 0
              ROLLBACK TRANSACTION;

            PRINT ERROR_MESSAGE();
      END CATCH;
ELSE
      PRINT 'ANSI_NULLS ALREADY ON'

Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Akira on January 16, 2013, 12:04:56 PM
Quote from: Victor Kirhenshtein on January 16, 2013, 10:02:25 AM
Quote from: Akira on January 16, 2013, 07:42:53 AM
С базой теперь ОК.
Теперь при старте консоли
Cannot load MIB file from server: Bad MIB file data

Попробуйте удалить файл netxms.mib из каталога $HOME/.nxmc/data и перезапустить консоль.

На сервере поднял старый netxms.mib от 1.2.4, все стало ок.

Если компилирую новый, на него ругается.
Хотя все файлы MIB не менялись аж с 1.2.0
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: blacat on January 21, 2013, 02:41:45 PM
Quote from: Akira on January 16, 2013, 07:42:53 AM
С базой теперь ОК.
Теперь при старте консоли
Cannot load MIB file from server: Bad MIB file data

Сегодня обновился на 1.2.5
при старте web консоли - такая же история
консоль для Mac OS X не ругается при этом
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: Weird on January 24, 2013, 07:57:33 PM
Quote from: Victor Kirhenshtein on January 16, 2013, 10:02:25 AM
Quote from: Akira on January 16, 2013, 07:42:53 AM
С базой теперь ОК.
Теперь при старте консоли
Cannot load MIB file from server: Bad MIB file data

Попробуйте удалить файл netxms.mib из каталога $HOME/.nxmc/data и перезапустить консоль.
Удаление файла не помогает.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: doncelab on January 28, 2013, 06:48:57 AM
Quote from: Victor Kirhenshtein on January 10, 2013, 06:51:13 PM
Теперь надо запустить


nxdbmgr.exe upgrade


чтобы закончить обновление схемы.

C:\NetXMS\bin>nxdbmgr.exe upgrade
NetXMS Database Manager Version 1.2.5

Upgrading database...
Database is locked

Убрать блокировку можно nxdbmgr unlock, потом обновить и проверить.
Title: Re: 1.2.4 -> 1.2.5 upgrade fail
Post by: [email protected] on January 30, 2013, 12:31:45 PM
При работе с java-консолью при попытке изменения существующего DCI при подборе SNMP OID, появляется ошибка "An error has occurred. See error log for more details.
java.lang.NullPointerException". При добавлении нового DCI ошибки появляется при начале навигации по дереву OID-ов. При работе с легаси-консолью ошибок нет ни при создании, ни при модификации DCI.

DBCC CHECKDB (netxms_db) WITH ALL_ERRORMSGS, EXTENDED_LOGICAL_CHECKS - ошибок не выявлено.
nxdbmgr.exe check - ошибок не обнаружено.