Трассировка (Master Data Services)
Область применения: SQL Server — Только Управляемый экземпляр SQL Azure Windows
После установки служб Master Data Services (MDS) можно найти функцию ведения журнала трассировки, полезную для ошибок диагностика, запросов на поддержку и мониторинга использования приложений и производительности. В этой статье рассматриваются действия по включению и настройке ведения журнала трассировки. В частности, в этой статье рассматривается трассировка файла текстового журнала. В этой статье также описывается процедура создания файла журнала, который может помочь устранить неполадки, которые могут возникнуть при создании базы данных MDS.
Общие сведения
Службы Master Data Services состоят из веб-приложения ASP.NET (master Data Manager) и службы WCF; оба размещаются в службах IIS и базе данных SQL Server. Запросы Master Data Manager и внешние вызовы к конечной точке API веб-служб обрабатываются общим уровнем служб. Уровень служб может записывать каждый запрос или ответ операции, важные события и ошибки.
Администратор с доступом к файлам на веб-сервере IIS позволяет включить ведение журнала, изменив файл конфигурации MDS Web.config .
По умолчанию файл конфигурации Web.config находится в одной из следующих папок веб-приложения:
SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
SQL Server 2012 и более поздних версий: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication
Числа nnn в пути соответствуют установленной версии SQL Server. В следующей таблице указаны версии путей:
Версия | nnn |
---|---|
SQL Server 2019 | 150 |
SQL Server 2017 | 140 |
SQL Server 2016 | 130 |
SQL Server 2014 | 120 |
SQL Server 2012 | 110 |
Внимание
Обновление Web.config приведет к перезапуску домена приложения MDS в IIS. Существующие сеансы пользователей потеряют кэшированные сведения, и пользователи могут столкнуться с ошибками сеансов или медленными загрузками страниц. Если это возможно, изменения выполняются в режиме внепиковой нагрузки.
Ведение журнала трассировки для веб-приложения MDS
SQL Server 2016 и более поздних версий
Файл web.config содержит раздел трассировки, как показано ниже. Этот раздел представлен в sql Server 2016 (13.x) Master Data Services.
<sources>
<!-- Adjust the switch value to control the types of messages that should be logged.
https://msdn.microsoft.com/library/system.diagnostics.sourcelevels
Use a switchValue of Verbose to generate a full log. Please be aware that
the trace file can get quite large very quickly. -->
<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Warning, ActivityTracing">
<listeners>
<!-- Set a directory path where the service account you chose while setting up Master Data Services has read and write privileges.
Default path is Logs in WebApplication folder, for example C:\Program Files\Microsoft SQL Server\130\Master Data Services\WebApplication
New log file will be created every day or every 10 mb.
When directory size hits the 200 mb limitation, the oldest file will be deleted. -->
<add name="FileTraceListener"
type="Microsoft.MasterDataServices.Core.Logging.FileTraceListener, Microsoft.MasterDataServices.Core"
initializeData="DirectoryPath = Logs; FileSizeInMb = 10; MaxDirectorySizeInMb = 200"/>
<remove name="Default"/>
</listeners>
</source>
</sources>
Ниже приведено поведение трассировки по умолчанию:
Трассировка включена для
Warning
иActivityTracing
сообщений.Дополнительные сведения см. в разделе SourceLevels — перечисление.
Журналы сохраняются в папке Logs в папке WebApplication . Расположение по умолчанию — C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.
Файл создается для каждого дня или каждых 10 МБ данных.
Когда размер каталога достигает 200 МБ, удаляется самый старый журнал.
В журнале используется формат CSV. В следующей таблице описывается формат журнала:
Элемент Description Time При возникновении записи трассировки CorrelationID Каждому запросу присваивается один идентификатор корреляции. Все трассировки, активированные этим запросом, будут совместно использовать один и тот же идентификатор корреляции.
При возникновении ошибки в пользовательском интерфейсе идентификатор корреляции отображается в сообщении об ошибке.Операция Имя запрошенной операции. Если это запрос к пользовательскому веб-интерфейсу, то именем операции является URL-адрес. Если запрос является запросом API, имя операции — это имя службы. Уровень Уровень этой записи трассировки Сообщение Текст трассировки.
SQL Server 2014 и более ранних версий
Раздел диагностики из исходно установленного файла Web.config
В следующем фрагменте файла показан раздел диагностика из исходно установленного файла Web.config.
Примечание.
Для switchValue
задано значение Off
. Кроме того, примеры строк закомментированы. Эти строки являются примерами для добавления прослушивателей трассировки различных типов.
<system.diagnostics>
<sources>
<!-- Adjust the switch value to control the types of messages that should be logged. -->
<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Off">
<listeners>
<!-- Enable and configure listeners as desired to obtain trace messages. -->
<!-- <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime" /> -->
<!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->
<!-- <remove name="Default"/> -->
</listeners>
</source>
</sources>
<trace autoflush="true"/>
</system.diagnostics>
Включение трассировки файлов журнала
Чтобы включить ведение журнала, измените switchValue
All
или другое допустимое значение, как описано ниже в таблице 1. Чтобы включить выходные данные в файл журнала, раскомментируйте LogFileListener
строку, как показано в следующем фрагменте файла:
<system.diagnostics>
<sources>
<!-- Adjust the switch value to control the types of messages that should be logged. -->
<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">
<listeners>
<!-- Enable and configure listeners as desired to obtain trace messages. -->
<add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime"/>
<!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->
<!-- <remove name="Default"/> -->
</listeners>
</source>
</sources>
<trace autoflush="true"/>
</system.diagnostics>
Таблица 1. Параметры SwitchValue для ведения журнала
Параметр | Какие данные регистрируются в журнале |
---|---|
Выключено | nothing |
Ошибка | только ошибки |
Предупреждение | ошибки и предупреждения |
Информация | ошибки, предупреждения, информационные сообщения |
Подробный | "Сведения" и другие сведения трассировки отладки, включая запросы и ответы API в формате XML |
ActivityTracing | Только события запуска и остановки |
Все | "Подробные" и "ActivityTracing" |
Имя файла и путь
Значением initializeData
является имя файла журнала. Это может быть изменено на другое имя или включить нужный путь. Если путь не указан, файл по умолчанию будет находиться в пути каталога веб-приложения (где находится web.config ).
Внимание
Учетная запись службы для пула приложений MDS должна иметь доступ на запись в расположение файла журнала.
Уровень детализации ведения журнала
В таблице 2 ниже описаны категории событий трассировки, которые могут быть зарегистрированы или отсортированы с наиболее важными или критически важными событиями в верхней части. В таблице 1 выше перечислены допустимые параметры для ведения журнала switchValue
. Этот параметр можно изменить, чтобы получить правильный объем сведений о ведении журнала в соответствии с ситуацией.
Таблица 2. Типы событий ведения журнала MDS
Тип события | Description |
---|---|
Критически важно | Неустранимая ошибка или сбой приложения |
Ошибка | Ошибка, допускаемая для восстановления |
Предупреждение | некритическая проблема |
Информация | информационное сообщение |
Подробный | сообщение трассировки отладки |
Начать | запуск логической операции |
Остановить | остановка логической операции |
Рекомендации по настройке журнала
- Для нормальной
Off
работы используйте параметр, чтобы избежать ведения журнала полностью или использоватьWarning
Error
параметры, которые будут сохранять журнал небольшим во время оповещения администраторов проблем. All
Используйте параметр для ситуаций поддержки и устранения неполадок.- Используется
ActivityTracing
для измерения производительности или мониторинга использования. - Используйте
Information
только в том случае, если они готовы периодически проверять и очищать журналы. Журналы могут получить длину с помощью этого параметра. Этот параметр полезен для отслеживания шаблонов использования и использования. - Не используйте
Verbose
илиAll
не в обычных условиях работы, так как объем зарегистрированных данных негативно влияет на производительность.
Действия по созданию файла журнала для поддержки продуктов
В ситуациях, когда возникает непредвиденная ошибка, а также требуются дополнительные диагностика, полезно создать файл журнала, который отслеживает события, которые приводят к проблеме вместе с запросами и ответами службы.
Чтобы создать краткий и полезный файл журнала, выполните следующие действия.
Внимание
Обновление Web.config приведет к перезапуску домена приложения MDS в IIS.
По возможности остановите пул приложений MDS в диспетчере IIS.
Предупреждение
Это можно сделать только в том случае, если приложение может быть снято с линии.
Если это возможно, переместите или удалите текущий файл журнала (если он уже существует).
Откройте файл web.config с помощью текстового редактора.
Примечание.
По умолчанию файл конфигурации Web.config находится в одной из следующих папок веб-приложения:
- SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
- SQL Server 2012: program_files\Microsoft SQL Server\110\Master Data Services\WebApplication
Найдите раздел
system.diagnostics
.Измените
switchValue
All
ActivityTracing
или раскомментируйте строку файла журнала, как показано в разделе "Включение трассировки файлов журнала" этой статьи .- Используется
switchValue="All"
для диагностика ошибок. - Используется
switchValue="ActivityTracing"
для диагностика производительности. - Имя файла MdsTrace.log может быть префиксировано путем при необходимости.
- Используется
Если пул приложений ранее остановлен, запустите пул приложений MDS в IIS. Кроме того, дождитесь появления файла журнала через некоторое время и действия веб-приложения. Веб-приложение периодически перезагрузит параметры конфигурации из файла (должно находиться в течение нескольких минут).
Воспроизвести проблему и выполнить те же действия или запросы, которые привели к ошибке.
Если вы можете остановить пул приложений:
- Остановите пул приложений.
- Получите файл журнала (может потребоваться ждать завершения процессов; после остановки пула приложений может возникнуть задержка).
Или же откройте файл журнала с помощью редактора, который не блокирует файл (например , notepad.exe) и копирует соответствующие сообщения трассировки.
Откройте файл конфигурации Web.config с помощью текстового редактора и
switchValue
вернитесь наOff
предыдущее или предыдущее значение.Запустите пул приложений при остановке.
Обработка ошибок: все операции службы возвращают массив или коллекцию ошибок в
OperationResult
объекте сообщения ответа. При возникновении ошибки массив ошибок также сериализуется в XML и записывается в файл журнала веб-приложения для определенныхswitchValue
параметров, как описано выше.
Пример ошибки ответа API, записанной в файл журнала:
MDS Error: 0 :
<ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Error>
<Code>110003</Code>
<Context>
<FullyQualifiedName>Model1</FullyQualifiedName>
<Identifier>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>Model1</Name> <InternalId>0</InternalId>
</Identifier>
<Type>Model</Type>
</Context>
<Description>The name already exists. Type a different name.</Description>
</Error>
</ArrayOfError>
DateTime=2009-12-10T20:48:05.6949548Z error object contents
Как показано в приведенном выше примере, каждая ошибка включает следующие свойства данных:
Свойство | Description |
---|---|
Код | Уникальный номер ошибки, определяющий тип ошибки |
Description | Локализованный текст сообщения об ошибке |
Context.FullyQualifiedName | Полное имя объекта, связанного с ошибкой. Некоторые имена уникальны только в их контексте. Сущность будет квалифицирована с префиксом имени модели, например ModelName: EntityName |
Context.Type | Тип объекта, связанного с ошибкой |
Context.Identifier | Идентификатор объекта, связанного с ошибкой |
Context.Identifier.Id | Уникальный GUID объекта, если он указан или доступен |
Context.Identifier.Name | Имя объекта, если указано или доступно |
Context.Identifier.InternalId | Не рекомендуется — не используйте |
Проблемы при создании базы данных MDS
Чтобы создать файл журнала, который может помочь устранить ошибки, которые могут возникнуть при создании базы данных MDS, можно использовать следующую процедуру:
Откройте файл MDSConfigTool.exe.config в пути C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration с помощью notepad.exe.
Раскомментируйте следующую строку в файле, удалив символы суффикса в этой строке:
<add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>
Убедитесь, для что для параметра
switchValue
задано значениеAll
.<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">
Повторите попытку создания базы данных. Затем откройте файл MdsConfigManagerTrace.log , сохраненный в C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration , и просмотрите те же сведения о сбое.