Günışıgından yararlanma süresi


9

Benim çevremde, yerel yedekleme ve Ola Hallengren planları üzerinde çalışan sunucular var. Sunucularımız 2008, 2012 ve 2014'ün birleşiminden oluşmaktadır. Tüm yedeklemeler saat 12'de alınır ve günlük yedeklemeleri 15 dakikada bir alınır.

Daha önce Yaz Saati uygulamasını hiç hesaba katmadım, bu yüzden lütfen hangi ayarlamaları yapmam gerektiğini söyleyin.

12:00 tam yedeklemeleri etkilenecek ve günlük yedeklemelerine ne olacak?


6
Açıkçası sunucularımı UTC'de çalıştırırdım.
Aaron Bertrand

Bizimki CST ne yazık ki
SqlNovice

1
Tabii, ama adil olmak gerekirse, bu anakartta kodlanmış değil.
Aaron Bertrand

Yanıtlar:


12

SQL Server uzmanı Paul Randal adresleri bu çok konu How yaz saati felaket kurtarma etkiler? . Bu nispeten kısa bir yazı, bu yüzden bütünüyle alıntı yapıyorum. İşlem günlüğü yedeklemeleriniz hakkında endişelendiğiniz için, dikkatinizi çekmek için gönderinin bir kısmını da vurguladım.

SQL Server'ın gün ışığından yararlanma saati (DST) ile doğru bir şekilde başa çıktığı yaygın bir bilgidir, bu yüzden neden ilgilenmelisiniz?

DST'nin sonunda, saatler bir saat geri döndüğünde (ABD'de her zaman 02:00), SQL Agent esasen bir saat boyunca (en az SS2000'den itibaren) duraklar. Bu, her 15 dakikada bir bir iş yapan bir işiniz varsa, 01: 45'te iş yürütme ile 02: 00'da iş yürütme arasında 75 dakikalık bir boşluk olacağı anlamına gelir. Bunun nedeni, 02: 00'da zamanın 01: 00'a ayarlanması ancak tüm işlerin bir sonraki çalışma zamanının aynı kalmasıdır - bu nedenle işiniz bir sonraki planlanan 02: 00'a kadar yürütülemez. Yani, her sonbaharda kuzey yarımkürede ve her bahar güney yarımkürede bir saatlik SQL Agent işini kaybedersiniz. Yine de neden umursasın ki?

Bir saat geciken işlerin ne olduğuna bağlı. Her 15 dakikada bir günlük yedeklemesi yapan bir işiniz varsa , DST bittiği gün , günlük yedeklemeleri arasında 75 dakikalık bir boşluk vardır. Eğer varsa sınırlar maksimum miktarda bir Hizmet Seviyesi Anlaşması (SLA) sahip bir felaket durumunda 15 dakika kayıp çalışması, daha sonra bu 75 dakika potansiyel bir araya o SLA mümkün olmayan maruz demektir!

Bu, özellikle bir saat içinde bir şeyler ters giderse (başka bir zamanda yanlış giden bir şeyden daha fazla veya daha az olası değil, ancak yine de mümkündür) oldukça büyük bir anlaşma olabilir. Bu durumda, alternatif bir çözüm bulmanız gerekir. Düşünebileceğim problemi çözmenin birkaç yolu:

  • Birisi o saatte geç kalsın ve manuel günlük yedeklemeleri alsın
  • Günlüğü sürekli olarak yedek sunucuya aktaran ve böylece DST sorununu etkilemeyen veritabanı yansıtmaya geçin.

Her ikisi de uygulanabilir çözümler ancak en iyisi 01:59 çalışan bir SQL Agent iş oluşturmak ve 01:00, 01:15, 01:30 ve 01:45 çalıştırmak için ekstra yedekleme işleri oluşturmak olduğunu düşünüyorum. Bunun neden mümkün olmaması gerektiğini anlamıyorum. Bu sabah saat 10:36'da tarihi bir dosyaya basmak için basit bir ajan işi oluşturdum ve bunu 09: 40'da yürütülecek şekilde ayarladım. Sonra sistem zamanımı bir saat geri ayarladım ve iş mükemmel bir şekilde yürütüldü. Bu çözümün tek dezavantajı, 01:59 işiniz için iş adımlarına gömülü olan T-SQL Agent SP'leri kullanarak fazladan işler oluşturmanız ve zamanlamanız gerekir; ancak bu zor değildir. Belki birisi bana bir senaryo gönderebilir ve ben bunu bir takip olarak bloglayacağım?

DST 4 Kasım'da sona erecekken, ekstra saatin maruz kalmasıyla başa çıkma zahmetine girmek istemeseniz bile, bu kesinlikle farkında olmanız gereken bir şeydir. Bir yana - DST'nin başladığı ve bittiği tarihler bu yıl değişti. 931975 numaralı KB makalesinde, SQL Server'ın hangi bölümlerinin değişen tarihlerden haberdar olmadığı ve bu konuda neler yapabileceğiniz anlatılmaktadır.


Bu yüzden 75 dakika boyunca potansiyel bir veri kaybı görebiliyordum ... Bu konuda
iyiysem

Bir sonraki düzenli olarak planlanan günlük yedeklemesine kadar 75 dakikayı kaybetme potansiyeline sahipseniz, herhangi bir değişiklik yapmanız gerektiğini düşünmüyorum.
Scott Hodgin

Ayrıca endişeli olduğum sunucu her zaman kullanılabilirlik grubudur, bu yüzden bir şey ters giderse geçiş yapabileceğimi tahmin ediyorum.
SqlNovice

@SqlNovice, kullanılabilirlik grubunuzun aynı olaydan etkilenmeyen iki sunucuda olduğunu ve tüm olayların diğer örnek (ler) i = True gerçekleştirdiğini varsayarsak. Kabul edilmesi güvenli olan için daha fazla şey alıyor olabilirsiniz. PS sunucuları Kullanılabilirlik Gruplarında değil, veritabanlarıdır. (yani "" endişeli olduğum sunucu her zaman kullanılabilirlik grubudur)
James Jenkins

Üzgünüm benim hatam kullanılabilirlik grubunda veritabanları bir çoğaltma syn modu ve başka bir asyn modunda
SqlNovice
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.