Sudah menjadi rahasia umum bahwa SQL Server berupaya dengan daylight saving time (DST) dengan benar, jadi mengapa Anda harus peduli?
Yah, itu bukan pengetahuan umum bahwa pada akhir DST ketika jam kembali satu jam (selalu jam 02:00 di AS), SQL Agent pada dasarnya berhenti selama satu jam (setidaknya SS2000 dan seterusnya). Ini berarti bahwa jika Anda memiliki pekerjaan yang melakukan sesuatu setiap 15 menit, akan ada jarak 75 menit antara pelaksanaan pekerjaan pada 01:45 dan pelaksanaan pekerjaan pada 02:00. Ini terjadi karena pada pukul 02:00, waktu ditetapkan kembali ke 01:00 tetapi waktu menjalankan berikutnya dari semua pekerjaan tetap sama - sehingga pekerjaan Anda tidak dapat dijalankan sampai waktu yang dijadwalkan berikutnya pukul 02:00. Jadi, di belahan bumi utara setiap Musim Gugur, dan di belahan bumi selatan setiap Musim Semi, Anda kehilangan nilai satu jam pekerjaan Agen SQL. Namun, mengapa Anda harus peduli?
Yah, itu tergantung pekerjaan apa yang tertunda selama satu jam. Jika Anda
memiliki pekerjaan yang membutuhkan cadangan log setiap 15 menit kemudian pada hari DST
berakhir, sebenarnya ada jarak 75 menit antara cadangan log. Jika Anda
memiliki Perjanjian Tingkat Layanan (SLA) yang membatasi jumlah maksimum
kehilangan pekerjaan hingga 15 menit jika terjadi bencana, maka selama 75
menit yang Anda hadapi berpotensi tidak dapat memenuhi SLA itu!
Itu bisa menjadi masalah yang cukup besar, terutama jika ada kesalahan selama jam tersebut (tidak lebih atau kurang mungkin daripada sesuatu yang salah pada waktu lain, tetapi masih mungkin). Dalam hal ini, Anda perlu menemukan solusi alternatif. Beberapa cara untuk mengatasi masalah yang dapat saya pikirkan:
Kedua ini adalah solusi yang layak tetapi saya pikir yang terbaik adalah membuat pekerjaan SQL Agent yang berjalan pada 01:59 dan menciptakan pekerjaan cadangan tambahan untuk berjalan pada 01:00, 01:15, 01:30, dan 01:45. Saya tidak mengerti mengapa ini tidak mungkin terjadi. Pada 10:36 pagi ini saya membuat pekerjaan agen sederhana untuk mencetak tanggal ke file dan mengaturnya untuk dieksekusi pada 09:40 - di masa lalu. Saya kemudian mengatur waktu sistem saya kembali satu jam dan pekerjaan dilakukan dengan sempurna. Satu-satunya downside dari solusi ini adalah bahwa Anda perlu membuat dan menjadwalkan pekerjaan tambahan menggunakan T-SQL Agent SP yang tertanam dalam langkah-langkah pekerjaan untuk pekerjaan 01:59 Anda - membosankan tetapi tidak sulit. Mungkin seseorang bisa mengirimi saya skrip dan saya akan menulis blog sebagai tindak lanjut?
Jadi dengan DST akan berakhir pada 4 November, ini pasti sesuatu yang harus Anda sadari meskipun Anda tidak ingin repot-repot mengatasi paparan jam ekstra. Selain itu - tanggal ketika DST dimulai dan berakhir berubah tahun ini. Artikel KB 931975 membahas bagian mana dari SQL Server yang tidak mengetahui tanggal yang diubah dan apa yang dapat Anda lakukan.