Передмова
У даній статті будуть розібрані основні регламентні роботи з базою даних інформаційної системи 24x7 (т е у якої немає простою) та підходи до їхнього виконання в MS SQL Server. Також прошу зауважити, що ця стаття буде коротким оглядом, т е не всі роботи будуть достатньо деталізовані. Однак, цієї інформації достатньо, щоб при необхідності вивчити більш детально ту чи іншу регламентну роботу.

Буду дуже вдячний, якщо в коментарях з'являться поправки і доповнення до цієї статті.

Читати далі →

Моніторинг Microsoft SQL Server «на коліні»

Коли я влаштувався на нову роботу, переді мною була поставлена перша задача — розібратися, чому один з екземплярів SQL дуже сильно навантажує диски. І почати необхідні дії для усунення цієї страшної проблеми. Я ще не сказав, що дисковий пул був всього один, і що при навантаженні на диски страждали всі примірники сиквела? Так ось це було так. Що найголовніше, як виявилося, моніторинг в особі Zabbix не збирав необхідні метрики, а на додавання їх треба було заводити заявку і чекати. Чекати і дивитися, як горить дисковий масив. Або…

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

Для початку створимо БД та об'єкти, необхідні для збору показників продуктивності SQL-сервера.

Читати далі →

Автоматизоване відновлення баз даних MS SQL з бекапів

image
У цій статті я хотів би розповісти про те, як за допомогою утиліти Quick Maintenance & Backup for MS SQL налаштувати автоматичне відновлення баз даних з бекапів на тестовому екземплярі SQL Server в мережі. При цьому створювати бекапи буде штатний План обслуговування. Потреба в автоматизованому відновлення може виникнути в наступних випадках:

  1. Якщо потрібно регулярно актуалізувати бази даних тестових серверах.
  2. Якщо потрібно періодично перевіряти через відновлення створені бекапи: повний, різницевий і журнали транзакцій.
У мережі можна знайти приклади скриптів дозволяють в тій чи іншій мірі автоматизувати ці завдання. Але більшість рішень вимагає хорошого розуміння T-SQL предметної області і швидше за все зажадають зміни ваших Планів обслуговування. Я покажу як це зробити через 15-20 хвилин з допомогою утиліти Quick Maintenance & Backup for MS SQL (QMB). Ми задіємо механізм XML планів відновлення — це XML-файл з послідовністю бекапів, який вміє створювати утиліта. За інформацією в XML файлі програма отримає послідовність бекапів, сформує T-SQL скрипт для відновлення і запускає його на виконання. Докладніше про цю можливість можна почитати тут.

Читати далі →

Автозбір даних про зміни схем баз даних в MS SQL Server

Передмова
чи Траплялося Вам коли-небудь стикатися з тим, що потрібно дуже швидко внести зміни в збережену процедуру або подання, або ще куди? У мене таке відбувається нерідко. А в період впровадження взагалі постійно. І тут боюся системи контролю версій не завжди зможуть допомогти. Але як же зрозуміти що змінилося? Як змінилося? Що було до зміни? Коли помінялося?
Дана стаття не є інструкцією. У ній я хотів просто показати можливі шляхи вирішення даної проблеми. Буду радий, якщо запропонують альтернативні рішення.

Читати далі →

Автоматичне видалення завислих процесів в MS SQL Server

Передмова
Нерідко виникають ситуації, коли будь-який додаток навіщо довго тримає підключення до бази даних. Начебто дрібниця, але якщо такий софт робить кілька підключень або, що ще гірше, таких додатків кілька, то краще з цим якось боротися.
Дана стаття не є інструкцією. У ній я хотів просто показати можливі шляхи вирішення даної проблеми. Буду радий, якщо запропонують альтернативні рішення.

Читати далі →

Автозбір даних про виконаних завданнях в MS SQL Server

Передмова
Адміністратора баз даних важливо знати, які завдання виконувалися. І як виконувалися (по тривалості, успішно чи не успішно і т. д.). І щоб цього не робити в ручну на кожному сервері, краще цей процес автоматизувати.
У даній статті наведу реалізацію автоматичного щоденного збору інформації про виконаних завданнях Агента в MS SQL Server.

Читати далі →

Автозбір даних у файлах баз даних і логічних дисках операційної системи MS SQL Server

Передмова
Адміністратора баз даних важливо знати коли закінчиться місце на диску. І щоб цього не робити в ручну на кожному сервері, краще цей процес автоматизувати.
У даній статті наведу реалізацію автоматичного щоденного збору інформації про логічних дисках у файлах баз даних.

Читати далі →

Реалізація індикатора продуктивності запитів, збережених процедур і тригерів в MS SQL Server. Автотрассировка

Передмова
Адміністратора баз даних рано чи пізно захочеться мати індикатор продуктивності, який би показував все добре із запитами. Також відомо, що запуск Профайлера на цілу добу істотно завантажує систему, і тому не може бути оптимальним рішенням у базі даних, яка використовується 24x7.

Так як же визначати стану запитів? І як запускати трасування при виявленні проблем із запитами без участі людини?

У даній статті наведу реалізацію індикатора продуктивності запитів, збережених процедур і тригерів, а також їх використання для запуску трасування.

Читати далі →

Проблема з періодично довго виконуваними запитів в MS SQL Server

Передмова
Є інформаційна система, яку я адмініструється. Система складається з наступних компонент:

1. База даних MS SQL Server
2. Серверний додаток
3. Клієнтські програми

Дані інформаційні системи встановлені на декількох об'єктах. Інформаційна система активно і цілодобово використовується одночасно від 2-х до 20-ти користувачів на кожному об'єкті. Тому не можна виконувати регламентні роботи все і відразу. Т е припадає дефрагментацію індексів розмазувати на цілий день, а не одним махом усі потрібні фрагментовані індекси дефрагментувати. Аналогічно і з іншими роботами.

Автооновлення статистики виставлено у властивостях самої бази даних. Також статистика оновлюється по дефрагментированному індексу.

Читати далі →

Методика пошуку причин низької продуктивності сервера 1с

Нещодавно зіткнувся з незвичайним випадком, у замовника огидно працював сервер 1с, щоб було зрозуміло, про що йдеться, наведу такий приклад — запуск товстого клієнта міг займати десяток хвилин. Коли виміряли тестом Гілева, то результат був нижче гіршого. Подивившись найближчі результати вимірів інших користувачів, я зрозумів що рішення подібної проблеми буде корисно багатьом.
Мова не йде про оптимізацію, коли треба підняти на 10-20% продуктивність, мова йде про пошук причин низької продуктивності, і її усунення. Погодьтеся, це дещо різні речі. На просторах інтернету безліч статей про підвищення продуктивності, що в нашому випадку більше схоже на вираз «мертвому припарка». А ось статей для допомоги адміністраторам, які опинилися в подібній ситуації, я не знайшов.

Читати далі →