Hemat waktu siang hari

9

Di lingkungan saya, ada server yang berjalan pada cadangan asli dan paket Ola Hallengren. Server kami adalah kombinasi dari 2008, 2012 dan 2014. Semua cadangan lengkap diambil pada jam 12 pagi dan cadangan log diambil setiap 15 menit.

Saya belum pernah menghitung waktu Musim Panas, jadi tolong beri tahu saya penyesuaian apa yang harus saya buat.

Apakah backup penuh jam 12 pagi akan terpengaruh dan apa yang terjadi dengan backup log?

SqlNovice
sumber
6
Sejujurnya saya akan menjalankan server saya di UTC.
Aaron Bertrand
Sayangnya, kami adalah CST
SqlNovice
1
Tentu, tetapi untuk bersikap adil, itu bukan hard-kode pada motherboard.
Aaron Bertrand

Jawaban:

12

Pakar SQL Server Paul Randal membahas topik ini di Bagaimana cara waktu musim panas mempengaruhi pemulihan bencana? . Ini adalah posting yang relatif singkat, jadi saya mengutipnya secara keseluruhan. Karena Anda khawatir tentang cadangan log transaksi Anda, saya juga menyoroti beberapa postingan untuk menarik perhatian Anda.

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:

  • Minta seseorang untuk begadang selama jam itu dan mengambil cadangan log manual.
  • Beralih ke mirroring basis data, yang terus-menerus mengalirkan log ke server yang berlebihan dan tidak mempengaruhi masalah DST.

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.

Scott Hodgin
sumber
Jadi saya bisa melihat kehilangan data potensial selama 75 menit ... Jika saya
setuju
Jika Anda baik-baik saja dengan potensi kehilangan 75 menit hingga cadangan log terjadwal berikutnya, maka saya tidak berpikir Anda perlu melakukan perubahan.
Scott Hodgin
Selain itu server yang saya khawatir adalah selalu tersedia grup jadi saya kira jika ada masalah saya bisa beralih.
SqlNovice
@SqlNovice dengan asumsi grup ketersediaan Anda ada di dua server yang tidak terpengaruh oleh peristiwa yang sama, dan bahwa semua peristiwa telah berkomitmen pada instance lain = Benar = Benar. Anda mungkin menerima lebih dari yang seharusnya yang dianggap aman. Server PS tidak ada dalam Grup Ketersediaan, basis datanya adalah. (yaitu server yang saya khawatirkan adalah grup yang selalu tersedia)
James Jenkins
Maaf kesalahan saya, basis data dalam grup ketersediaan adalah satu replika adalah mode syn dan lainnya dalam mode asyn
SqlNovice