ручное удаление классов инвентаризации из базы

Предупреждение: не удаляйте руками информацию из базы. Если вы всё же решились на это, то не удаляйте руками информацию из базы.

 

Вдоволь наигравшись с инвентаризацией MIF-файлов и удалив их с клиента, я обнаружил, что новые классы не удалились из базы данных. В голову мне не пришло ничего лучше, чем через SQL Management Studio удалить новые представления и таблицы, но в базе ещё остались хранимые процедуры и связи с другими таблицами, после чего Resource Explorer вообще перестал показывать данные инвентаризации по клиентам.

В dataldr.log видно, что сервер не может принять отчёт по инвентаризации:

Defining attributes for group INFOABOUTPC…
CGroup::DefineAttributes — Detected schema change. Waiting for the threads to finish the queue.
Thread 7296 has been granted exclusive access.
CGroup::DefineAttributes — Proceeding with schema change.
CDefinedGroup::InsertDefinedAttribute — could not find table
CGroup::DefineAttributes — couldn’t define attributes
CGroup::DefineGroupAndAttributes — couldn’t define attributes for INFOABOUTPC
CMachineSource::InsertMachine — could not validate machine
Cannot process MIF XHE4OF0SZ.MIF, moving it to C:\Program Files (x86)\Microsoft Configuration Manager\inboxes\auth\dataldr.box\BADMIFS\1kylac3e.MIF
STATMSG: ID=2703 SEV=W LEV=M SOURCE=»SMS Server» COMP=»SMS_INVENTORY_DATA_LOADER» SYS=SCCM01 SITE=M01 PID=2864 TID=7296 GMTDATE=?? ??? 02 09:27:28.848 2011 ISTR0=»XHE4OF0SZ.MIF» ISTR1=»C:\Program Files (x86)\Microsoft Configuration Manager\inboxes\auth\dataldr.box\BADMIFS\1kylac3e.MIF» ISTR2=»» ISTR3=»» ISTR4=»» ISTR5=»» ISTR6=»» ISTR7=»» ISTR8=»» ISTR9=»» NUMATTRS=0

Подсовывание назад MIF-файла с теми же классами не помогло:

CMachineSource::InsertMachine — machine info is resynced data (ie: MIF is a full/resync report).
STATMSG: ID=2715 SEV=I LEV=M SOURCE=»SMS Server» COMP=»SMS_INVENTORY_DATA_LOADER» SYS=SCCM01 SITE=M01 PID=3576 TID=5792 GMTDATE=?? ??? 02 14:12:47.874 2011 ISTR0=»SMS Inventory Agent» ISTR1=»» ISTR2=»» ISTR3=»» ISTR4=»» ISTR5=»» ISTR6=»» ISTR7=»» ISTR8=»» ISTR9=»» NUMATTRS=0
*** select InstanceKey,RevisionID,AgentID,Color00,Serial_Number00,Vidan00 from PCinfo_DATA where MachineID = 2 order by InstanceKey ASC
*** [42S02][208][Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name ‘PCinfo_DATA’.
CMachine::EnumGroups — error in csql->Execute
Command:~select InstanceKey,RevisionID,AgentID,Color00,Serial_Number00,Vidan00 from PCinfo_DATA where MachineID = 2 order by InstanceKey ASC
CMachineSource::InsertMachine — could not enum groups. Adding machine.

Сделав запрос в базу данных, обнаружилось, что классы эти до сих пор присутствуют:

Select GroupName, SpecificTableName, HistoryTableName, GroupClass
From GroupMap

Утилита DelGrp.exe из набора System Center Configuration Manager 2007 Toolkit V2 отказалась удалять классы:

После этого я решил воспользоваться утилитой Site Sweeper. Выбрал ненужные мне классы:

И удалил их:

Следующий отчёт инвентаризации с клиента был корректно обработан.

А совсем камикадзе могут попробовать вычистить неиспользуемые классы из базы руками.

9 комментариев

  1. bobgreen84:

    Я так помню свой первый SCCM разбомбил 🙂

  2. Ребят, а может кто-нибудь утилиту эту выложить на файлообменники? Или может быть прямая ссылка на загрузку имеется? Пытаюсь зарегистрироваться на оффсайте уже который день (эту процедуру требуют пройти перед скачиванием) — результат нулевой, мыло с подтверждением не приходит. А утилита очень нужна

    Буду очень признателен, если кто-нибудь сможет помочь

  3. Добрый день. Возник вопрос: данные инвентаризации перестали попадать в базу данных, а старые данные затерлись. На клиентах инвентаризация выполняется, данные уходят на MP(смотрел в логе InventoryAgent.log). На MP данные приходят (MP_Hinv.log). В логах ошибок нет. Вот после этого этапа, кажется, что данные не попадают в базу данных.
    В компоненте SMS_INVENTORY_DATA_LOADER вот такая ошибка:
    Microsoft SQL Server выдал сообщение SQL 8152, важность 16: [22001][8152][Microsoft][SQL Server Native Client 11.0][SQL Server]String or binary data would be truncated. : dINSTALLED_SOFTWARE_DATA

    После этой ошибки очень много сообщений (практически каждую минуту) вот с таким содержимым «Загрузчик данных инвентаризации обнаружил запрос на повторную синхронизацию агента SMS Inventory Agent. Если агент указан, повторная синхронизация будет запланирована только для элементов, отчеты о которых составлены этим агентом. Повторная синхронизация указывает, что текущий MIF-файл отображает все данные инвентаризации текущего компьютера. Если в базе данных присутствуют данные инвентаризации, отсутствующие в MIF-файле, загрузчик данных инвентаризации удаляет их (если, как и в случае повторной синхронизации агента, об их наличии них не создан отчет другим агентом). Выполнение многих операций повторной синхронизации указывает на потерю данных инвентаризации в определенный период времени.»

    Вы можете подсказать в чем может быть проблема?

      • Добрый день!
        В таблице INSTALLED_SOFTWARE_HIST я изменил поле ServicePack00 с nvarchar(8) до nvarchar(255). Ошибка:
        Microsoft SQL Server выдал сообщение SQL 8152, важность 16: [22001][8152][Microsoft][SQL Server Native Client 11.0][SQL Server]String or binary data would be truncated. : dINSTALLED_SOFTWARE_DATA
        исчезла.
        SQL Profiler’ом смотрел: никаких ошибок, exception’ов больше не нашёл. Сообщения с содержанием «Загрузчик данных инвентаризации обнаружил запрос на повторную синхронизацию агента SMS Inventory Agent. Если агент указан, повторная синхронизация будет запланирована только для элементов, отчеты о которых составлены этим агентом. Повторная синхронизация указывает, что текущий MIF-файл отображает все данные инвентаризации текущего компьютера. Если в базе данных присутствуют данные инвентаризации, отсутствующие в MIF-файле, загрузчик данных инвентаризации удаляет их (если, как и в случае повторной синхронизации агента, об их наличии них не создан отчет другим агентом). Выполнение многих операций повторной синхронизации указывает на потерю данных инвентаризации в определенный период времени.» также продолжают идти в большом количестве.

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

      • В продолжении к своему комментарию ниже.
        А как-нибудь можно посмотреть (например лог какой-нибудь), что данные с MP успешно было добавлены в базу данных?

Leave a Reply to Алексей