Forum
İyi günler.
Transaction Log içinde örneğin 3 günden öncesine ait kayıtları düzenli olarak silmenin herhangi işlevsel bir yöntemi var mıdır?
Selam Mert Bey, ntbackup ile düzenli olarak log dosyalarını silebiliyoruz, tam ne kadar süreyle siliyor bilemiyorum, fakat tam süresini kestiremiyorum, bende son 2 gün sanırım. Schedule haftalık yaptım.
Nasıl yapıldığıyla ilgili kısa bilgi verebilir misiniz?
(Ayrıca Server 2008'de NTBackup yerini Windows Server Backup‘a ve System Center'‘in yetenekli ürünü DPM 2007'a bıraktığı için anlatacağınız yöntemler server 2008'e uyumlu olursa daha memnun olurum)
Teşekkürler.
Merhaba, sitemizde makalesi var.
Merhaba, sitemizde makalesi var.
Alper bey verdiğiniz makale ile transaction log'ların belirli bir kısmının silinmesi arasında herhangi bir ilişki kuramadım.
Transaction Log ile SQL Server LOG dosyalarını karıştırmadığınıza eminsiniz değil mi?
:))))))) Özür dilerim ya, postlar karıştı, kafam da karıştı, SQL ile ilgili log dosyalarının temizlenmesi işlemi için size dönüş yapacağım 🙂
Estağfurullah; sorun değil.
Maintenance Plan'lar sayesinde SQL'in istenen uzantılı ve belirli tarihten önce oluşturulan dosyaları silmesi basitçe sağlanabiliyor zaten [:)]
Benim bahsettiğim Transaction Log'lar.
Eğer cevabı birileri biliyorsa; bu işlemin bir de Mirroring aktifken nasıl yapılacağını da yazarsa daha memnun olurum.
Selam, gün bazında bulamadım, zaten okuduğum makalelerin de çoğunda bunun shedule olarak değil belli aralıklarla manuel olarak yapılması gerektiği hep yazıyor. Transaction logları tamamen delete etmek sakıncalı diye biliyorum, bunun yerine kullanılmayan alanları küçültebiliyoruz. Bunu yapmak için DBCC SHRINKFILE (db_log, 512) gibi örnek bir komutla iş görebiliriz. Mirroring yapan bir tarafta daha önce bu küçültme işlemini db' nin recovery modeli Simple iken yapmıştık.
Selam, gün bazında bulamadım, zaten okuduğum makalelerin de çoğunda bunun shedule olarak değil belli aralıklarla manuel olarak yapılması gerektiği hep yazıyor. Transaction logları tamamen delete etmek sakıncalı diye biliyorum, bunun yerine kullanılmayan alanları küçültebiliyoruz. Bunu yapmak için DBCC SHRINKFILE (db_log, 512) gibi örnek bir komutla iş görebiliriz. Mirroring yapan bir tarafta daha önce bu küçültme işlemini db' nin recovery modeli Simple iken yapmıştık.
DBCC SHRINKFILE (db_log, 512) komutu ile dosya boyutunu küçültebilmek için Recovery Mode'u simple'a almamız gerekir ve bu durumda mevcut güvenliği bozmuş oluruz; ayrıca zaten otomatikleştirmek istediğimiz işleme elle müdahale ettiğimiz için amacımızın dışına çıkmış oluruz diye düşünüyorum; hatam varsa düzeltin lütfen.
"Mirroring yapan bir tarafta daha önce bu küçültme işlemini db' nin recovery modeli Simple iken yapmıştık." : Alper bey mirroring özelliği açıkken recovery model'i simple'a nasıl aldığınızı açıklayabilir misiniz? Ben mirroring kapatılmadan bu mümkün değil diye biliyorum da.
Konu ile ilgili bilgisi olan arkadaşların mesajları için şimdiden teşekkür ederim.
Evet mümkün değil zaten, ben mirrorın devam etmesi şartıyla bu işlemi yapacağınızı düşünmemiştim, zaten pek mümkün gözükmüyor, ayrıca recovery modeli değiştirmek güvenlikten ziyade içerdeki datanın yapısıyla ilgili. SQL üzerinde java vb bir uygulama çalıştırıyor, data sürekli loglar ile beraber yürüyorsa, atıyorum 50 GB data ve 30 GB log dosyası gibi bir yapı varsa, simple'a çekmeden zaten shrink işlemi yapamazsınız. Fakat bunun da çözümü var, shrink işlemi için bir batch oluşturursunuz, bu batchin başında ve sonunda önce recovery modeli simple yapan, işlem bittikten sonra da tekrar full ' e çeviren cümlecikler olur. Böylece yapabilirsiniz. Ama işlem esnasında mirror devam edecek ve aynı zamanda simple olmadan loglar küçülecek diyorsanız, bir dba gelip açıklasın derim, benim de hoşuma gider.
Evet mümkün değil zaten, ben mirrorın devam etmesi şartıyla bu işlemi yapacağınızı düşünmemiştim, zaten pek mümkün gözükmüyor, ayrıca recovery modeli değiştirmek güvenlikten ziyade içerdeki datanın yapısıyla ilgili. SQL üzerinde java vb bir uygulama çalıştırıyor, data sürekli loglar ile beraber yürüyorsa, atıyorum 50 GB data ve 30 GB log dosyası gibi bir yapı varsa, simple'a çekmeden zaten shrink işlemi yapamazsınız. Fakat bunun da çözümü var, shrink işlemi için bir batch oluşturursunuz, bu batchin başında ve sonunda önce recovery modeli simple yapan, işlem bittikten sonra da tekrar full ' e çeviren cümlecikler olur. Böylece yapabilirsiniz. Ama işlem esnasında mirror devam edecek ve aynı zamanda simple olmadan loglar küçülecek diyorsanız, bir dba gelip açıklasın derim, benim de hoşuma gider.
Herkesin hoşuna gideceği kesin; cevap için beklemedeyiz.
İyi günler.
Transaction Log içinde örneğin 3 günden öncesine ait kayıtları düzenli olarak silmenin herhangi işlevsel bir yöntemi var mıdır?
evet vardır. [:D]
management studioyu aç. management altında maintenece back up üzerine sağtuş yap ve new maintenance wizard a bas. buradan transaction log bakup aldırıcak konifği yap ve schedule et. daha sonrasında dbnin trn back up ını aldığı andan itibaren logu silecektir. ama git bilmem kaç gün öncesini sil gibi bir durum söz konusu olamaz.
zorlanırsan burdan yaz sana resimlerle anlatiim.
onur eray
Senin mesajlarıma verdiğin cevaplarında kullandığın terbiyesizce üsluplara nasıl cevap vereceğim konusunda epeyce zorlanıyorum.
Bana bunu resimlerle anlatır mısın
terbiyesizce uslüp ne ya? [:D] küfür mü ettim de alındın.? benim insanlara tek önerim şu. bilgi sahibi olunmadan fikir sahibi olunmaz.önce bilgi sahibi olun sonra fikir beyan edin. belki sen değil ama burdan duyduğu çözümleri iş yerinde uygulayanlar var. dolayısıyla senin önerdiğin yanlış birşey insanların işlerini bile kaybetmelerine sebep olabilir. şimdi sana bu kadar anlattım. arama motorlarından arayıp bulabilirsin konuyu[:D] kolay gele.