Forum
Mssql Agent kullanarak , tanımladığımız bir job ile sıkıştırışmış yedek alıyoruz. X bir kişi job ile yedek almanın sağlıklı olmadığını söyledi. Şuana kadar , sıkıştırılmış data.bak 100 mb civarında.
İleri zamanlarda data büyüdüğü zaman , datada bir sorun yaşarmıyım , bozulma vs olur mu?
Mdf olarak yedeklemek daha mı sağlıklı ? Mdf yedek esnasında mssql servisini stop etmemiz gerekiyor. Stoplamadan başka bir çözümü varmıdır gibi mantıksız bir soru sorabilirmiyim ?
Teşekkürler.
Merhabalar,
Öncelikle job ile yedek almanın sağlıklı olmadığı konusunda muhtemelen yanlış bir anlaşılma söz konusudur. Zira SQL Server'da SQL Agent servisi sayesinde backup vb. süreklilik arzeden operasyonel işlemler hergün elle gerçekleştirmek yerine bir sql job'ına bağlayarak aşağıdaki avantajlara sahip olmuş olacaksınız:
- Yedek alan kişilerden kaynaklı yanlışlıklar, işlem atlamaları vb. durumlar ortadan kalkmış olacaktır. Çünkü siz job'a bağladığınız kodda ya da bakım planında yapılması gereken herşeyi vermiş olacaksınız.
- Yedekleme belli bir takvime bağlandığı için unutulma vb. kişilerden kaynaklı problemler yaşanmayacaktır.
- Job'ın sağladığı otomasyon özelliği sayesinde her gün yedekleriniz otomatik olarak belirlenen saatte ve özelliklerde belirlenen veritabanları için alınacaktır.
- Ayrıca job'a bağlı olarak çalışan yedek almak işlemleri esnasında SQL veritabanlarınız online olarak hizmet vermeye devam edeceği için, veritabanlarınızda kesinti yaşanmaksızın sağlıklı bir şekilde yedeklenmesi de sağlanmış olacaktır.
- Job'a bağlı olarak alınan yedekleme esnasındaki işlem adımları ile ilgili olarak e-posta adresine e-posta yoluyla ya da bilgisayarınıza pop-up mesaj ekranı göstererek job'ların çalışması ile ilgili uyarı ve loglama mekanizmalarını işletebilirsiniz.
- Özellikle SQL Server 2008 ile gelen compress yani sıkıştırma yedeği job'ların işlem süresini de ciddi oranda düşürerek hem zamandan hem de disk alanından ciddi tasarruf sağlamış oluyor.
MDF, NDF ve LDF dosyalarını klasik dosya kopyalama yöntemi ile yedeklemeye Offline Backup yöntemi diyoruz. Ve bu yöntemin gerçekleşmesi için mssql server servisini durdurmadan sadece o veritabanını Offline moda çekmeniz yeterlidir. Bu da o veritabanının kopyalama bitene kadar hizmet kesintisi yaşanması demektir. Ki bunu normal yedekleme süreci için job alternatifi olarak kullanmanızı önermiyorum. Zira hem veritabanınız hizmet veremez hale geliyor, hem de bu işlemi sizin elle manuel sürekli kendiniz yapmanız gerekir. Bunu da sürekli yapmak elinizde job ile otomasyona bağlamak ve veritabanı online halde iken yedek almak gibi bir alternatif varken tercih etmek gereksiz operasyonu yüklenmek demektir.
Ayrıca job'a bağlı olarak alınan Full ya da Transactional Log yedeklerde yedeklerden sonra veritabanına ait log dosyalarının boyutları sql server tarafından kontrollü bir biçimde küçültülerek disk üzerindeki log sıralamasını da bozmadan yedeklemiş olacaktır. Fakat dosya kopyalama yöntemi ile sql veritabanınızın dosyalarını yedekleme yönteminde bu log dosyası kopyalama sonrasında ya aynı boyutta kullanmaya devam edeceksiniz, ya da mevcut log dosyasını elle silip yeni bir log oluşmasını sağlamanız gerekir ki bunu kesinlikle önermiyoruz. Zira log dosya yapısını ve sırasını bozduğunuz için log dosyasından gerekirse bir veri kurtarma şansınızı ortadan kaldırmış olacaksınız.
Size önerim özellikle SQL Server Management Studio içerisinde Database Maintenance Backup sihizbazını kullanarak veritabanınızın yedeklenmesi hem de diğer bakımsal faaliyetlerini job ile bir takvime bağlayarak otomasyonlu olarak sağlıklı bir biçimde gerçekleştirebilirsiniz.
Özet olarak; job ile yedekleme yapmak doğru yöntemdir. Bu yöntem ile yedeklemeye devam edin.
iyi çalışmalar,
Mesut Aladağ
Microsoft MVP, MCT