Експерт SQL Server Пол Рандаль розглядає цю саму тему в розділі Як впливає літній час на відновлення після аварій? . Це порівняно короткий пост, тому я цитую його в повному обсязі. Оскільки вас турбували резервні копії журналу транзакцій, я також виділив трохи публікації, щоб звернути це на вашу увагу.
Загальновідомо, що SQL Server правильно справляється з літнім літнім часом (DST), тож навіщо вам турбуватися?
Ну, це не так загальновідомі відомості, що наприкінці DST, коли годинник повертається на годину (завжди о 02:00 в США), SQL агент по суті робить паузу на годину (принаймні SS2000 далі). Це означає, що якщо у вас є робота, яка щось робить кожні 15 хвилин, між виконанням завдання о 01:45 та виконанням роботи о 02:00 буде розрив у 75 хвилин. Це відбувається тому, що о 02:00, час повертається до 01:00, але наступний час виконання всіх завдань залишається тим самим - тому ваша робота не може виконатись до наступного запланованого часу 02:00. Так, у північній півкулі кожної осені, а в південній півкулі кожної весни ви втрачаєте годину вакансій агента SQL. І все-таки, чому ти повинен дбати?
Ну, це залежить від того, які робочі місця затримуються на годину. Якщо у вас
є робота, яка займає резервне копіювання журналу кожні 15 хвилин, то в день
закінчення
DST , між резервними копіями журналу фактично існує розрив у 75 хвилин. Якщо у вас є Угода про рівень обслуговування (SLA), яка обмежує максимальний обсяг
втраченої роботи до 15 хвилин у разі катастрофи, то за ці 75
хвилин ви, можливо, не зможете виконати цю угоду про угоду!
Це може бути досить великою справою, особливо, якщо щось піде не так протягом цієї години (не більше чи менш ймовірно, ніж щось піде не так у будь-який інший час, але все-таки можливо). У такому випадку потрібно придумати альтернативне рішення. Я можу придумати кілька способів подолати проблему:
- Нехай хтось затримається пізно протягом цієї години та зробить резервні копії журналу вручну.
- Перейдіть до дзеркального відображення бази даних, яке постійно передає журнал на надлишковий сервер, і це не впливає на проблему DST.
Обидва ці рішення є життєздатними рішеннями, але я вважаю, що найкращим є створення завдання SQL Agent, яке запускається о 01:59 і створює додаткові завдання резервного копіювання для запуску о 01:00, 01:15, 01:30 та 01:45. Я не бачу, чому це не може бути можливим. Сьогодні вранці о 10:36 я створив просту роботу агента, щоб надрукувати дату до файлу і призначив її виконати о 09:40 - раніше. Потім я встановив системний час назад на одну годину, і завдання виконано ідеально. Єдиним недоліком цього рішення є те, що вам потрібно створити та запланувати додаткові завдання, використовуючи SP-агенти T-SQL, вбудовані в етапи роботи, для вашої роботи 01:59 - втомлива, але не важка. Можливо, хтось міг би надіслати мені сценарій, і я буду його в блозі як продовження?
Тож, коли DST закінчується 4 листопада, це, безумовно, щось, про що вам слід знати, навіть якщо ви не хочете вирішувати проблеми, що справляються із додатковими годинами витримки. Як осторонь - у цьому році змінилися дати початку та закінчення DST. Стаття KB 931975 розповідає про те, які частини SQL Server не знають про змінені дати та що з цим можна зробити.