Certified for и партнерские программы Microsoft Алексей Шуленин Microsoft Департамент стратегических технологий Эксперт по технологиям обработки и анализа.

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Advertisements

Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Microsoft TechDays Черкас Дмитрий Специалист по технологиям Microsoft.
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Будущее режима /hosting в Exchange Иван Макаров Менеджер по маркетингу Exchange Microsoft Россия.
Microsoft TechDays Дмитрий Рудых.
Microsoft TechDays Михаил Даньшин Эксперт
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Тучков Вячеслав
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Электронная Библиотека Президента Полнотекстовый поиск на базе iFTS SQL Server Июнь 2009| MSC.
Microsoft TechDays Заграничнов Александр Microsoft.
Microsoft TechDays Павел Дугаев Руководитель проектов Вебзавод
Microsoft TechDays Виталий Дильмухаметов
Microsoft TechDays Богомолов Алексей MCP
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Microsoft TechDays Людмила Шайкина Quarta Consulting
Innovation Day. 12 основных фактов о SaaS-бизнесе Оценка стоимости размещения в Azure.
Транксрипт:

Certified for и партнерские программы Microsoft Алексей Шуленин Microsoft Департамент стратегических технологий Эксперт по технологиям обработки и анализа информации

Совместимость Партнерские программы, ориентированные на SQL Server Каким формальным критериям необходимо удовлетворить для соответствия программе Works with Microsoft SQL Server 2008 Как им удовлетворить

Партнерство с Microsoft m/programoverviewhttps://partner.microsoft.com/rus/progra m/programoverview

Партнерские баллы Положение организации в партнерской программе Microsoft определяется кол-вом заработанных ею партнерских баллов Система баллов обеспечивает измеряемый индекс, по которому можно быстро судить о состоянии партнера в программе и необходимых ему шагах, чтобы двигаться вверх

Партнерские программы с SQL Server

Программа Certified for SQL Server Создана под SQL Server 2005 Выполняется VeriTestом Протестировать свое SQLное приложение у них стоит $10 тыс. Плата за каждый доп.день тестирования $1850 Программа приносит 50 партнерских баллов, если приложение удовлетворяет обязательным требованиям Кроме того, есть т.н. Elective Features, за к-е начисляются доп.баллы Опубликовав 3 customer reference profiles, ISV получает компетенцию ISV / Software Solution Competency см. competencies competencies

Тест Works with Microsoft SQL Server 2008 Необходим по двум причинам Элективная составляющая Platform Test for ISVsPlatform Test for ISVs Дает право на маркетинг партнерского решения в solution brief вместе с Microsoftsolution brief

Platform Test for ISVs Обязательная часть (Foundation Test Components) Windows Server 2008: $250 – После будет заменен R2 Windows Client: $400 Элективная часть SQL Server 2008: $250* Office 2007: $400 Office 2003: $400 Web Services plus.NET Framework: $400 Managed Code: $400 *При выборе вместе скидка $100 Каждый тест приностит 10 партнерских баллов При условии, что пройдены тесты как из обязательной, так и элективной части

Microsoft SQL Server 2008 Solution Brief Платим $350 и попадаем в виде странички в Solution Brief - Microsoftовский сборник историй успеха, который будет раздаваться worldwide Сейчас действует скидка в полцены - $175 ge/en-US/services/software- product-engineering/testing- veritest/product-certification- services/microsoft/works-with-sql- server-2008/solution-brief.htmhttp:// ge/en-US/services/software- product-engineering/testing- veritest/product-certification- services/microsoft/works-with-sql- server-2008/solution-brief.htm

Требования программы Требования, которым необходимо удовлетворить для прохождения «Works with Microsoft SQL Server 2008» ation/Works-With-SQL-Server Specifications.doc ation/Works-With-SQL-Server Specifications.doc Существует два способа прохождения этого теста Отправить ваше приложение в VeriTest и заплатить, чтобы протестировали Протестировать самостоятельно – Если нет лишних денег, правильней выбирать его, т.к. требования, в общем, достаточно примитивные

Тестировочная тула Берется здесь eLayout.aspx?pageID=sql_200 8_test eLayout.aspx?pageID=sql_200 8_test Клиент должен быть Windows Vista Business SP1 (x86 или x64) Windows XP (SP - ?) Сервер - стоять на Windows Server 2008 Edition(x86 или x64) Windows Server 2003 Enterprise Edition SP2 (x86 или x64) Допускаются все редакции SQL Server 2008 c Enterprise по Express

Как тестируем Простая визардоподобная оболочка Последовательность действий Выбрать new test, запустить Указать ехешник своего приложения – Если сервис - ехешник сервиса – Если веб-приложение - w3wp.exe (IIS 7.0, 6.0) Убедиться, что только тестируемое приложение работает в данный момент, т.к. все приложения будут под одним Process ID – Если многоуровневое, тестируется каждое звено Запустить приложение и выполнить в нем какие-либо операции с базой Завершить тест, получить отчет – Отчет является подтверждением прохождения теста – Либо, в случае выявленных несовместимостей там, как при прохождении ТО, указывается, что подправить Проверяет 6 сценариев на совместимость

Предупреждение Под совместимостью с SQL Server 2008 будем понимать действия, которые требуется совершить для успешного прохождения теста Works with Microsoft SQL Server 2008 В их нынешнем виде эти требования вызывают, мягко говоря, недоумение От 2008-го в них присутствуют только строка соединения и ROW COMPRESSION (да и то последнее - опционально) Никакие другие интересные новшества 2008-го (Page Level Compression, Backup Compression, sparse columns, filtered indexes, Resource Governor, Filestream, Geospatial, TDE, EKM, аудит, политики DMF, CDC, Change Tracking, Date/Time, Merge, GroupingSets,... ) в требования не попали Остальные требования относятся, в основном, к безопасности, да и то однобоко – Напр., xp_cmdshell c sa запрещаем, а про xp c unsafe assemblies ничего не говорим Складывается впечатление, что составители не вполне представляли предметную область Однако разумность и полноту выносим за скобки Действуем строго формально

Сценарий 1 Приложение должно использовать интегрированную систему безопасности (integrated security) - Windows Authentication - для соединения с SQL Server 2008 и компонентами сервера – Данное требование повышает безопасность и управляемость приложений. Использование интегрированной системы безопасности позволяет осуществить подключение уникальных пользователей, определенных на уровне AD – AD поддерживает централизованное управление политиками, например, политики управления паролями, что позволяет, например, централизованно отключать пользовательские записи, блокируя доступ пользователей ко всем базам данных. – Помимо, Windows Authentication использует более безопасные протоколы аутентификации по сравнению с SQL Authentication (особенно в тех случаях, когда используется Kerberos) Если использование Windows Authentication невозможно по каким-либо причинам, следует использовать опцию SQL Server Authentication с поддержкой Enforce Password Policy и Password expiration, что гарантирует использование сложных паролей – Пароль является одним из самых уязвимых компонентов системы безопасности – следование перечисленным выше требованиям позволит существенно обезопасить как само приложение, так и данные

Сценарий 1 int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\ MSSQLServer', OUTPUT Windows Mixed

Сценарий 1 select is_policy_checked, is_expiration_checked from sys.sql_logins where name = 'sa alter login sa with check_policy = ON, check_expiration = OFF

Сценарий 2 Подключаемые к SQL Server 2008 учетные записи не должны входить в серверную роль sysadmin --Кто входит в роль? select p2.name, p2.type_desc from sys.server_role_members rm join sys.server_principals p1 on rm.role_principal_id = p1.principal_id join sys.server_principals p2 on rm.member_principal_id = p2.principal_id where p1.name = 'sysadmin'

Сценарий 2 Добавление/отлучение от роли if exists(select * from sys.server_principals where type_desc = 'SQL_LOGIN' and name = 'xxx') drop login xxx create login xxx with password = 'SQL.NET Architecture Day', default_database = tempdb, check_policy = on, check_expiration = off exec = = 'sysadmin' exec = 'sysadmin' exec = = 'sysadmin' exec = 'sysadmin'

Сценарий 2 Не используйте учетную запись SA как учетную запись по умолчанию для вашего приложения. Создайте новую учетную запись и задайте для нее необходимые привилегии Лучше вообще sa от греха задисейблить alter login sa disable alter login sa enable

Сценарий 3 Должна быть включена трассировка по умолчанию (default trace) Данное требование позволяет постоянно мониторить производительность приложений за счет сбора данных о работе приложения и базы данных SQL Server Файлы трассировки содержат ценную информацию, позволяющую быстро определить источник сбоев и ликвидировать его Посмотреть, какие трассы запущены на сервере в наст.момент, можно T- SQLным способом: select * from sys.traces Имеется также функция fn_trace_getinfo(), к-я возвращает информацию о трассе по ее id; 0 - для всех трасс – Небольшая вариация с осмысленными значениями свойств: with cte(TraceID, TraceOption, FileName, MaxSize_MB, StopTime, IsRunning) as (select * from ::fn_trace_getinfo(0) pivot (min(value) for property in ([1], [2], [3], [4], [5])) pt) select TraceID, case TraceOption when 2 then '2 = TRACE_FILE_ROLLOVER' when 4 then '4 = SHUTDOWN_ON_ERROR' when 6 then '6 = ROLLOVER_AND_SHUTDOWN' when 8 then '8 = PRODUCE_BLACKBOX' else TraceOption end, FileName, MaxSize_MB, StopTime, IsRunning from cte

Сценарий 3 В отличие от обычной трассы, запуск, останов и удаление которой выполняются процедурой exec = 1 (старт), 0 (стоп), 2 (убить) Дефолтную трассу можно только заенейблить или задисейблить при помощи exec sp_configure 'default trace enabled Дефолтную трассу нельзя поменять, изменив в ней список отслеживаемых событий или колонок по событию (sp_trace_setevent) или фильтров на события (sp_trace_setfilter) Msg 19070, Level 16, State 3, Procedure sp_trace_setfilter, Line 1 The default trace cannot be stopped or modified. Use SP_CONFIGURE to turn it off. Можно только посмотреть ее состав: аналогично - select * from ::fn_trace_getfilterinfo(default) select f.eventid, e.name as EventName, e.category_id, cat.name as EventCategoryName, f.columnid, c.name as ColumnName from ::fn_trace_geteventinfo(1) f inner join sys.trace_events e on f.eventid = e.trace_event_id inner join sys.trace_categories cat on e.category_id = cat.category_id inner join sys.trace_columns c on f.columnid = c.trace_column_id

Сценарий 3 Подробнее про то, что такое дефолтная трасса и для чего она нужна, можно прочитать в статье Kalen Delaney Либо скупое упоминание в BOL: ru/library/ms aspxhttp://msdn.microsoft.com/ru- ru/library/ms aspx

Сценарий 4 The application should be able to connect successfully Basic Requirement for Works With SQL Server 2008 test Без комментариев

Сценарий 5 xp_cmdshell должна быть выключена Данное требование направлено на запрет выполнения системных команд из кода на Transact SQL, что существенно снижает вероятность доступа к системных ресурсам из вредоносного кода, расположенного в базе данных. Проверка текущего состояния select value from sys.configurations where name = 'xp_cmdshell Запрет exec sp_configure 'show', 1 reconfigure with override exec sp_configure 'xp_cmdshell', 0 reconfigure with override

Сценарий 6 Объекты таблиц и индексов, создаваемыe прикладной программой, должны использовать ROW Level сжатие. Данное требование является опциональным, но крайне рекомендуемым к использованию. Поддержка данного требования может увеличить производительность системы и улучшить использование системных ресурсов (например, сократить место на диске). Производительность системы в этом случае зависит от производительности подсистемы ввода/вывода – именно поэтому данное требование является опциональным. Демо на сжатие DataCompression.sql

Миграция: предисловие Я постараюсь рассказать о: Вариантах перехода, методике, инструментах и планировании – С фокусом на реляционную часть SQL Server Технических и не очень аспектах перехода Часто встречающихся проблемах, ошибках и мифах Я не планирую рассказывать о: Полном перечне всех возможных проблем миграции Полном перечне нововведений в SQL Server 2008 – пожалуйста спрашивайте, тем не менее Для лучшего усвоения желательно: Иметь некоторую практику работы с SQL Server 2000/2005 Иметь базовые знания о SQL Server 2008

Конфигурация демонстрационной среды Windows 7 Ultimate Visual Studio Team System SP1 Microsoft® Visual Studio Team System 2008 Database Edition GDR R2 Это SQL2008 DB Project Template for VS f ed&displaylang=en 8f ed&displaylang=en SQL Server 2008 R2 CTP2 Просто SQL Server 2008 в чистом виде не встает на Windows 7 Необходимо ставить слипстримнутый с SP1 релиз – Как сварить, объясняется здесь: a-merged-slisptream-drop.aspx a-merged-slisptream-drop.aspx Готовить его времени не было, а R2 все равно выкачивался к ISV Innovation Day – Ставился дефолтным инстансом

Конфигурация демонстрационной среды SQL Server 2005 Developer Edition Встает на Windows 7 со всем вышеперечисленным без сучка и задоринки Единственно прикалывает распознавание 10.5 то как семерки, то как 2000 – Но по-серьезному это ни на что не влияет Поставлен именованым инстансом (Yukon)

Конфигурация демонстрационной среды SQL Server 2005 SP fdfbe59c4&displaylang=en 949fdfbe59c4&displaylang=en Adventure Works Sample Database for SQL Server 2005 SP2a (case insensitive) 4#DownloadId= #DownloadId=11754 Microsoft SQL Server 2008 Upgrade Advisor A21C-7291E7F0F852&displaylang=en A21C-7291E7F0F852&displaylang=en RML Utilities for SQL Server A3A8-5160C8DBE926&displaylang=en A3A8-5160C8DBE926&displaylang=en В част., ReadTrace

Общий обзор подхода Зачем мигрировать? Убедить начальство Microsoft в помощь - Анализ окружения Требования к миграции Выбор редакции Требования к оборудованию Использовать Upgrade Advisor Исправить найденные несоответствия Выполнить тестирование на совместимость По возможности 100% тестирование кода Перед миграцией Подробная документация на существующую систему Разработка тестов проверки, стресс тестов и снятие базовой линии производительности Сформулировать и проверить план отката Определиться с подходом в миграции In-place или side-by-side Собственно миграция Предмиграционные работы После миграции Вот тут-то на самом деле все и начинается

Что поддается миграции? Компоненты Реляционный движок – Включая суб компоненты такие как SQL Agent, Tools, и.т.д. – В дальнейшем именно на нем будем фокусироваться Full-text Search Reporting Services Analysis Services Data Transformation Services / SSIS Редакции Express, Developer, Workgroup, Standard, Enterprise Платформы 32-bit & 64-bit (IA64 и x64) Языки и сортировки SQL Server 2008 имеет новые сортировки (для соответствия Windows) select * from ::fn_helpcollations() where name like '%100%

Варианты миграции: In-Place (замещение) Обновление существующей инсталляции при сохранении пользовательских данных Имя экземпляра после миграции остается прежним – Старый экземпляр перекрывается новым (исчезает) Практически 100% автоматический процесс Включая кластерную установку Side-by-side (Параллельная установка) Ставится новый экземпляр SQL Server Объекты БД переносятся между экземплярами вручную – Copy Database Wizard Не копирует extended procs, alerts, DTS packages, linked servers. – Detach -> Copy -> Attach – Backup -> Restore – T-SQL Scripts, BCP, Break SAN mirror -> attach Новый и старый миры сосуществуют бок о бок Это может быть жизнь на том же сервере (именованный экземпляр) или на другом сервере Процесс в основном ручной

Как выбрать: замещение или параллельная установка? Критичность приложения и его сложность Критичные приложения не обязательно сложны, но имеют жесткие ограничения по тестированию, размерам админ. окна, … Сложные приложения не обязательно критичны, но требуют интенсивного тестирования и можно столкнуться со сложным откатом Практические соображения Размер БД и число объектов Локальные задания по сопровождению Длительность допустимого простоя Аппаратные возможности/возраст серверов Зависимость от системы и других приложений Время, необходимое на откат и усилия на это потребные – Возможные требования к параллельному исполнению C какой версии/редакции на какую поддерживается апгрейд Понятно, что при параллельной установке мы можем мигрировать базу хоть на Access; главное, чтобы поддерживалась нужная функциональность

Перенос данных Говорить об отдельном переносе данных имеет смысл в случае side-by-side миграции Перенос резервной копии базы Делай раз: alter database... set read_only with rollback immediate (или SINGLE_USER) Делай два: бэкап Делай три: переносим резервную копию на назначение Делай четыре: восстанавливаемся на назначении из резервной копии Делай пять: переводим базу в режим совместимости с 2008 (10), отпускаем многопользовательский доступ Примечание раз: логины вместе с базой не переносятся, т.к. являются объектами уровня сервера – Можно заскриптовать отдельно на источнике и выполнить скрипт на назначении – Можно воспользоваться Transfer Logins Task в SSIS – В случае интегрированной безопасности окружение назначения должно уже иметь соответствующие записи в AD – Осиротевшие SQLные юзеры базы лечатся при пом. sp_change_users_login (к-я явл-ся deprecated ;)) Примечание два: перед тем, как открывать базу пользователям, по ней стоит выполнить стандартные процедуры поддержки: checkdb, обновл-е статистики,... Примечание три: с полнотекстовыми индексами лучше не возиться с переносом. Из-за изменений в движке iFTS 2008 их проще перестроить. Демо (показывается на примере 2005, аналогично для 2000) Отсоединение / присоединение базы

Совместимость вниз Часть функционала отмерла, часть приговорена, часть просто не рекомендуется См. замечательный по ясности пост ad2b-6bd77e6dfdd6 ad2b-6bd77e6dfdd6 Заглавная страница в документации – SQL 2008 Backward Compatibility Discontinued - no longer in this release of SQL Server. – Перечислены в BOL ( Deprecated - in this release, but no longer being developed or supported. Will be discontinued in the next release or two. – Перечислены в BOL ( Obsolete - a better alternative is available so this is now deemed redundant. Will probably be discontinued in the next release. Понятно, что в списках не значатся недокументированные команды Они на то и недокументированы, чтобы исчезнуть без предупреждения в любой момент – Как всегда, dbcc traceon(2588); dbcc help('?'), чтобы посмотреть оставшиеся Аналогично, появиться – Список недокументированных команд, добавленных в 2005 – см. Выполните функциональное тестирование, чтобы поймать пропущенное Upgrade Advisor Не все приложения нуждаются в полноценной проверке. Реальные по требности зависят от критичности/сложности приложения Как мы помним, критичность сложности и наоборот

SQL Server 2008 Upgrade Advisor Берется здесь - 4E42-A21C-7291E7F0F852&displaylang=en 4E42-A21C-7291E7F0F852&displaylang=en Занимает < 10 MB

SQL Server 2008 Upgrade Advisor После выбора компонент указываем имя экземпляра В кач-ве входа воспринимает одну или несколько БД, файл трассы, скрипт SQL Применяет к ним проверку заложенного в него набора правил совместимости

SQL Server 2008 Upgrade Advisor Дополнительно к AdventureWorks_2005 был задан следующий скрипт, специально наполненный неподходящими командами (см. слайд «Совместимость вниз»)Совместимость вниз Демо -> DeprecatedIn2008.sql /* Скрипт, содержащий нормальные команды для SQL Server 2005, но криминальные с точки зрения SQL Server 2008 */ --Не поддерживаемые более: use tempdb backup log AdventureWorks_2005 with truncate_only use AdventureWorks_2005 if exists (select 1 from sys.database_principals where type = 'R' and name = 'Test') exec = 'Test' exec = 'Test' --Deprecated, т.е. в 2008 поддерживаются, но в след.версии - не факт: select databaseproperty('AdventureWorks_2005', 'Version') --будет заменена на databasepropertyex exec = = 'trunc. log on = 'true' --sp_dboption в целом заменяется командой alter database; в данном случае действие эквивалентно ALTER DATABASE... SET RECOVERY SIMPLE select * from Production.Product with (fastfirstrow) --хинт заменен на OPTION (FAST N) select * from Production.Product order by Name collate SQL_AltDiction_CP1253_CS_AS select * from Production.Product p, Production.ProductSubcategory sc, Production.ProductCategory c where p.ProductSubcategoryID *= sc.ProductSubcategoryID and sc.ProductCategoryID *= c.ProductCategoryID --заменен на синтаксис ANSI left/right outer join table (fld1 text, fld2 image) --замена на varchar/varbinary(max) int; = = object_id('Production.Product');

SQL Server 2008 Upgrade Advisor Генерируется отчет с найденными несовместимостями Как мы видим, не все несовместимости в него попадают даже из тех, что перечислены в BOL Напр., спокойно отнеслась к типам text/image,...

Другие способы выявления несовместимостей SQL 2008 ставит большой набор счетчиков, отслеживающих устаревшие конструкции языка select * from sys.dm_os_performance_counters where object_name like '%deprecated%' sys.sysperfinfo – deprecated Делаем в Perfmon сбор всех этих счетчиков и запускаем типовую нагрузку

Использование счетчиков несовместимости Perfmon Создайте трассу в Perfmon Перезапустите SQL Server 2008 для обнуления показателей

Прогоните шаг за шагом вторую (Deprecated) часть скрипта DeprecatedIn2008.sql и наблюдайте, как прирастают счетчики Использование счетчиков несовместимости Perfmon

Контролировать кол-во выявленных несовместимостей вы можете непосредственно из SQLного скрипта при помощи вышеупомянутого DMV Выполните в кач-ве примера скрипт select * from sys.dm_os_performance_counters where instance_name = 'Data types: text ntext or image' go table (fld1 text, fld2 image) go select * from sys.dm_os_performance_counters where instance_name = 'Data types: text ntext or image и обратите внимание, как приросло значение счетчика Обратите также внимание, что Upgrade Advisor изначально не ловил эту несовместимость PS. (Не по делу) Как вы объясните два одинаковых спида на картинке?

Особенности предыдущего способа AS. Правильно. Изначально SQLQuery3 имел другой спид. Но перед его выполнением был сделан рестарт SQL Server. Первой закладке Change Connection еще не успел быть сделан. Действует аккуратнее по сравнению с Upgrade Advisor Данные счетчики ставит SQL Server 2008, 2005 про них не знает Следовательно, выполнять типовую нагрузку надо уже после переноса кода на 2008 Discontinued вещи в этом случае просто не пойдут, отлавливать можно только те, что все еще поддерживаются, но не рекомендуются Нельзя фильтровать по конкретной нагрузке Способ только сообщает, что выявлена такая-то несовместимость, но ничего не говорит, в каком месте Нужно самому лазить по коду и ее выискивать Может рассматриваться в качестве финальной проверки на вшивость после того, как все найдено и пофиксено

Как же все-таки отыскать, где собака порылась? Известны два способа: 1) профайлер; 2) XEvents Первый элементарен Откройте профайлер и отметьте события в категории Deprecation – Deprecation Announcement event class – Deprecation Final Support event class Отметьте также событие в категории T- SQL SQL:BatchCompleted и в категории Stored Procedures RPC:Completed, SP:Completed, SP:StmtCompleted Остальные можно не выбирать, чтобы не зашумлять картины Запустите трассу Выполняйте шаг за шагом вторую часть скрипта DeprecatedIn2008.sql из предыдущей демы Наблюдайте, как несовместимости отлавливаются в профайлере

Расширенные события Новая фича SQL Server 2008 Использует механизм ETW, при помощи которого SQL Server сообщает наружу о происходящих внутри него событиях Подробнее можно посмотреть в моем блоге Выводим все доступные события независимо от пакета select xp.name, xo.* from sys.dm_xe_objects xo join sys.dm_xe_packages xp on xp.guid = xo.package_guid where xo.object_type = 'event' order by xp.name, xo.name И замечаем среди них в пакете sqlserver все те же знакомые deprecation_announcement и deprecation_final_support

Расширенные события Какую информацию (какие колонки) они о себе несут? select * from sys.dm_xe_object_columns where object_name in ('deprecation_announcement', 'deprecation_final_support') Очень обнадеживающе выглядят feature и message, вы не находите? Какие доп.колонки можно к ним еще подвязать? Выполните запрос с пред.слайда, только object_type поставьте = action sql_text, tsql_stack, session_id, username, plan_handle – кто и чем нарушил совместимость

Расширенные события В какие места (targets) могут поступать эти события? Выполните тот же самый запрос, только object_type поставьте = target Напр., asynchronous_file_target пишет информацию о событиях в файл, ring_buffer – в память, etw_classic_sync_target отдает SQL Serverному ETW- провайдеру и т.д. Доп.информация – см.

Расширенные события Теперь все готово, чтобы запустить сессию сбора событий select DB_ID('AdventureWorks_2005') if exists(select 1 from sys.server_event_sessions where name = 'Deprecat') drop event session Deprecat on server go create event session Deprecat on server --будем собирать два выбранных события add event sqlserver.deprecation_announcement (action (sqlserver.sql_text,sqlserver.tsql_stack) --feature и message не указываем, поск.они и так входят в колонки данного события where sqlserver.database_id = 13), --AdventureWorks_2005 add event sqlserver.deprecation_final_support (action (sqlserver.sql_text,sqlserver.tsql_stack) where sqlserver.database_id = 13) --будем писать в два назначения: --в память add target package0.ring_buffer (set max_memory=4096), --и в файл add target package0.asynchronous_file_target (set filename = 'c:\Demo\Deprecat.xel', metadatafile = 'c:\Demo\Deprecat.xem') --это общие п-ры сессии: with ( MAX_MEMORY = 4096KB, EVENT_RETENTION_MODE = ALLOW_MULTIPLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 1 SECONDS, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = OFF, STARTUP_STATE = OFF ); alter event session Deprecat on server state = start; --стартуем сессию

Расширенные события Затем откройте DeprecatedIn2008.sql и запустите его депрецированую часть Можно из той же сессии Посмотрите, какие при этом насобирались XEvents В памяти select databaseproperty('AdventureWorks_2005', 'Version') --будет заменена на databasepropertyex exec = = 'trunc. log on = 'true' --sp_dboption в целом заменяется командой alter database; в данном случае действие эквивалентно ALTER DATABASE... SET RECOVERY SIMPLE select * from Production.Product with (fastfirstrow) --хинт заменен на OPTION (FAST N) select * from Production.Product order by Name collate SQL_AltDiction_CP1253_CS_AS go table (fld1 text, fld2 image) --замена на varchar/varbinary(max) int; = = object_id('Production.Product'); select cast(xet.target_data as xml) from sys.dm_xe_session_targets xet inner join sys.dm_xe_sessions xe on (xe.address = xet.event_session_address) where xe.name = 'Deprecat'

Расширенные события И в файле alter event session Deprecat on server state = stop; --Собранные в файл события можно видеть и по завершении сессии: select object_name, cast(event_data as xml) from sys.fn_xe_file_target_read_file('c:\Demo\Deprecat*.xel', 'c:\Demo\Deprecat*.xem', null, null) --Можно отдельно вытащить из XML интересующую инфу with cte(event, xml) as ( select object_name, cast(event_data as xml) from sys.fn_xe_file_target_read_file('c:\Demo\Deprecat*.xel', 'c:\Demo\Deprecat*.xem', null, null) ) select event, 'datetime') [time], 'varchar(max)') msg, 'nvarchar(max)') [sql] from cte --В кач-ве sql_text фигурирует целиковый батч, в к-м произошла несовместимость

Зависимости Предполагается, что работы с Upgrade Advisor и тестированию совместимости закончены Само приложение COM Components, Extended Stored Procedures, sp_OA%, CLR assemblies – Демо – определение зависимостей (Dependencies.sql,.bat,.ps1) Linked servers (вопросы разграничения доступа и провайдеры) Зависимости между БД (Cross-database dependencies) DTS пакеты Зависимость от решений третьих фирм ПО – backup, management agents, clusters, MPIO, SAN mirroring Компоненты – шифрование, почта,… Антивирусное ПО – Обычно его стоит остановить на период миграции, но это не всегда позволительно Различия между функциональностью редакций Ничто не заменит знание самого приложения!

Смигрировали? Вот и славно. Самое интересное только начинается Отрицательные значения на графике относятся к тем операциям, которые при работе в среде SQL Server 2008 стали быстрее

Вообще-то все должно быть быстрее. Ну хотя бы не медленнее. Но если вдруг... Проверьте все журналы Еще раз посмотрите рекомендации Upgrade Advisor Обновите статистику Full если возможно Sample для больших таблиц Filtered для секционированных Проверьте настройки Агента, задания и задачи по сопровождению Проверьте настройки безопасности Особенно в части меж серверного и меж доменного взаимодействия/прав доступа Проверьте целостность БД

Вообще-то все должно быть быстрее. Ну хотя бы не медленнее. Но если вдруг... Проверьте все журналы Еще раз посмотрите рекомендации Upgrade Advisor Обновите статистику Full если возможно Sample для больших таблиц Filtered для секционированных Проверьте настройки Агента, задания и задачи по сопровождению Проверьте настройки безопасности Особенно в части меж серверного и меж доменного взаимодействия/прав доступа Проверьте целостность БД Configuration Manager Особенно важен для параллельной установки для настройки среды исполнения, протоколов… При замещении, процесс установки старается сохранить максимально существующую среду: принцип «минимального удивления» Убедитесь, что tempdb имеет правильный размер (кто ее только не использует теперь ) DBCC CHECKDB, CTEs, Cursors, MARS, Row Versioning, Service Broker, Triggers Проверьте настройки MODEL Проверьте, что все что записно в MASTER верно Заново наполните Full-Text Search каталоги Выполните запланированные проверки

План-гайды как средство QFE Демо: PlanGuides.sql

Мама, роди меня обратно! Как быть, если после миграции что-то пошло сильно не так, нужно откатываться? Вероятность такого варианта прямо зависит от глубины предварительного тестирования Что можно сделать и откуда могут расти ноги Не паниковать Определить причину проблемы (если мигрируете с 2000, заранее поучитесь пользоваться новыми средствами диагностики) Может быть все не так и плохо В зависимости от… откат может быть простым и сложным Если процедура прописана и протестирована, будет проще Мониторинг системы для раннего оповещения У меня есть статья «Перетаскивание базы с SQL Server 2008 на 2005», написанная еще во времена Катмая СТР5 Я ее подчищу, обновлю и выложу в ISV блог Инструменты синхронизации Можно порекомендовать tablediff ( Работает быстро и проста в использовании

И в завершение Вы зачем переходили на 2008-й? Ради новых возможностей? Так задействуйте их в своих решениях!

Trusted Productive Intelligent 59 Новые возможности

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.