Forum

Transaction Log Bac...
 
Bildirimler
Hepsini Temizle

Transaction Log Backup Hatası

14 Yazılar
3 Üyeler
0 Likes
3,343 Görüntüleme
(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhaba Arkadaşlar,

 

SQL Server 2000 kullanıyorum ve bu konuda bilgim yüzeysel. Eskiden her gün SQL Server'ı durdurup yedek alırdım, daha sonra durdurmadan yedek almanın bir yolu olup olmadığını araştırırken buralara kadar geldim. Edindiğim bilgiler dahilinde bir "Maintenance Plan" oluşturdum. Tabi bununla alakalı bazı soru ve sorunlarım var.. 

1.  "All Database" diyerek tümünü yedekliyorum. Acaba "All user databases" demem yeterli olur muydu? "System database" lerini almama gerek var mı?

2."Optimizations" ve "Integrity" bölümlerini işaretlemedim bir sorun yaratır mı?

3. "Complete Backup" ve "Transaction Log Backup" işlemlerini aynı saate atadım. "Compelete Backup" istediğim şekilde sorunsuz bir şekilde tamamlanırken "Transaction Log Backup" hata verdi. İkisini de aynı anda başlattığım için bu hatayla karşılaşmış olabilir miyim? 

Hata mesajı şöyle:

The job failed.  Unable to determine if the owner (DOMAIN\Administrator) of job Transaction Log Backup Job for DB Maintenance Plan 'DB Maintenance Plan1' has server access (reason: Violation of PRIMARY KEY constraint 'PK__syscachedcredent__0AD2A005'. Cannot insert duplicate key in object 'syscachedcredentials'. [SQLSTATE 23000] (Error 2627)  The statement has been terminated. [SQLSTATE 01000] (Error 3621)). 

 

Eğer ikisini de aynı anda başlattığım için bu mesajı alıyorsam, "Complete Backup" tamamlandıktan sonra (yaklaşık 15 dk.) bu işlemi başlatsam olur mu? Daha sonra başlattığım için *.MDF ve *.LDF arasında tutarsızlık meydana gelir mi?

 

Şimdiden çok teşekkür ederim.

Selamlar... 

 
Gönderildi : 04/09/2008 15:11

(@GokhanDOGAN)
Gönderiler: 780
Prominent Member
 

Selam

1.These db yi secip senin için kritik önem taşıyan db leri secebilirsin, Sys db ye gelince master db yi de yedeğini alman iyi olacaktir.

 2. Opt. intg. seçmen bi sorun yaratmaz,db calışma performansını ve sorgulara cevap verme w/r süresini iyileştir, senin belirlediğin aralıklarda db yi check edip optimize eder zaten o tablardaki secenekler ne işlem yaptığı kendini acıklar nitelikte yazıyor, eğer db boyutun çok büyük ise, her gün db yi check optimize etmen makınayı zorlayacaktır tavsiyem bu işlemleri gece yada h.sonlar yapman olacaktır,

3. complate backup işlemi bittikten sonra tl.backup işlemini başlat, hata vermesi ise: eğer t.lg dosyası o an için verileri db ye aktarmış ise ve veri içermiyor ise log dosyasını backup almayacaktir ve hata  job status failed olarak görünecektir.

 Hata ile ilgili ise; yetkilerden kaynaklanıyor gözüküyor senin sql server üzerinde system admin izniniz varmı ?  oluşturdugunuz maintanance job properties ine gelerek owner kısmını uygun gözden gecirin 

 
Gönderildi : 04/09/2008 17:48

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Management'tan Jobs'a baktığımda tıpkı dediğiniz Transaction Log Backup'ın Last Run Status'u "Failed" olarak görünüyor. Sağ tıklayıp "View Job History" dediğimde yazdığım ayrıntılı hata mesajını görüyorum.

Owner kısmını incelediğimde hem Complete Backup hem de Transaction Log Backup'ın sahibi aynı yani "\DOMAIN\Administrator"

 Transaction Log Backup'ı Complete Backup'tan sonra başlatın demişsiniz. Burada tam olarak anlayamadığım nokta şu: Okuduğum yazılarda, sadece MDF'lerin restore için problem yaratabileceği (database'in suspect olması) ve LDF'lerin yani Transaction Log'ların da olması gerektiği vurgulanmış. Sadece Transaction Log Backup'la restore yapılabilir mi? Eğer yapılmaz, yani her ikisinin de olması şartsa, Complete Backup'tan -sonra - alınmış bir Transaction Log Backup, restore işlemi sırasında tutarsızlık problemi doğurmaz mı?

Selamlar.. 

 

 
Gönderildi : 04/09/2008 19:50

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Merhaba Arkadaşlar, Selam;

 

SQL Server 2000 kullanıyorum ve bu konuda bilgim yüzeysel. Eskiden her gün SQL Server'ı durdurup yedek alırdım, daha sonra durdurmadan yedek almanın bir yolu olup olmadığını araştırırken buralara kadar geldim.SQL Server ı durdurmadan yedek alınabilmesi için SQL Server Agent servisinin çalışıyor olması gerekir. Edindiğim bilgiler dahilinde bir "Maintenance Plan" oluşturdum. Tabi bununla alakalı bazı soru ve sorunlarım var.. 

1.  "All Database" diyerek tümünü yedekliyorum. Acaba "All user databases" demem yeterli olur muydu? "System database" lerini almama gerek var mı? All Database dediğinizde SQLServer'ın sistem dataları olan ve SQl Server ın ilk kurulduğunda standart olarak yüklenen  master, model,msdb database leride yedeklemiş olrsunuz. Bunların yedeklenmesini istemiyorsanız  All user databases i kullanabilirsiniz. Bence system datalarının yedeği her ihtimale karşı 1 kez alınmalı. . Ben olsam  These Database i işaretler ve yedeğini alacağım DB leri seçerdim

2."Optimizations" ve "Integrity" bölümlerini işaretlemedim bir sorun yaratır mı? Bence bu kısımları boş geçmeniz bir sorun yaratmaz.Ama Ben olsaydım; fiziksel olarak verilerin tutulduğu ve bu verilere kolay erişimde kullanılan
indekslerin fiziksel olarak tutuldukları "page"lerin performansı
arttıracak şekilde yeniden yapılandırılmasını sağlardım. Burada "
schedule" ile belirleyeceğim zamana göre veri ve indeks sayfalarının güncellenmesi, veritabanı
istatistiklerinin güncellenmesi ile veritabanı "
shrink" işleminin  yapılmasını sağlardım.

3. "Complete Backup" ve "Transaction Log Backup" işlemlerini aynı saate atadım. "Compelete Backup" istediğim şekilde sorunsuz bir şekilde tamamlanırken "Transaction Log Backup" hata verdi. İkisini de aynı anda başlattığım için bu hatayla karşılaşmış olabilir miyim? Complete ve Transaction Log Backup larını aynı saatte alabilmeniz lazım. Üzerinde işlem yapılmayan bir DB de aynı saatte başlatmanız her hangi bir sıkıntı yaratmaz (Şimdi testinide yaptım)

Hata mesajı şöyle:  Hata aldığınız DB nin Manuel olarak Transaction Log Backup ını almayı denediniz mi? Denediyseniz sonuç nedir? Denemediyseniz manuel olarak dener misiniz?

The job failed.  Unable to determine if the owner (DOMAIN\Administrator) of job Transaction Log Backup Job for DB Maintenance Plan 'DB Maintenance Plan1' has server access (reason: Violation of PRIMARY KEY constraint 'PK__syscachedcredent__0AD2A005'. Cannot insert duplicate key in object 'syscachedcredentials'. [SQLSTATE 23000] (Error 2627)  The statement has been terminated. [SQLSTATE 01000] (Error 3621)). 

 

Eğer ikisini de aynı anda başlattığım için bu mesajı alıyorsam, "Complete Backup" tamamlandıktan sonra (yaklaşık 15 dk.) bu işlemi başlatsam olur mu? Daha sonra başlattığım için *.MDF ve *.LDF arasında tutarsızlık meydana gelir mi?

 

Şimdiden çok teşekkür ederim.

Selamlar... 

 
Gönderildi : 04/09/2008 20:28

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Management'tan Jobs'a baktığımda tıpkı dediğiniz Transaction Log Backup'ın Last Run Status'u "Failed" olarak görünüyor. Sağ tıklayıp "View Job History" dediğimde yazdığım ayrıntılı hata mesajını görüyorum.

Owner kısmını incelediğimde hem Complete Backup hem de Transaction Log Backup'ın sahibi aynı yani "\DOMAIN\Administrator"

 Transaction Log Backup'ı Complete Backup'tan sonra başlatın demişsiniz. Burada tam olarak anlayamadığım nokta şu: Okuduğum yazılarda, sadece MDF'lerin restore için problem yaratabileceği (database'in suspect olması) ve LDF'lerin yani Transaction Log'ların da olması gerektiği vurgulanmış. Sadece Transaction Log Backup'la restore yapılabilir mi? Elinizde Complete Backup olmadan sadeceTransaction Log ile restore işlemi yapamazsınız. Eğer yapılmaz, yani her ikisinin de olması şartsa, Complete Backup'tan -sonra - alınmış bir Transaction Log Backup, restore işlemi sırasında tutarsızlık problemi doğurmaz mı? Complete Backup ın hemen ardından alacağınız Transaction Log ile herhangi bir tutarsızlık yaşamazsınız

Selamlar.. 

 

 
Gönderildi : 04/09/2008 20:33

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Management > Backup'a sağ tıklayarak "Backup a database" dedim ve "Transaction log" u işaretleyip, bu işlemi kullandığım 3 DB'ye de uyguladım ve sorunsuz bir şekilde istediğim yere *.TRN dosyalarını oluşturdu ve işlemi tamamladı.

  Fakat Management > Jobs altında tanımlı olan ve Complete Backup ile birlikte denediğimde hata aldığım Transaction Log Backup'a sağ tıklayıp "Start Job" dedim. Ve yine hata verdi.. View Job History dedim. Ve ayrıntı için "Show step details" i de işaretledim. Sonuç aşağıdaki gibi;

 

Step ID Step Name Run At Result Notifications Run Duration

0 (Job Outcome) 04.09.2008 17:35  Failed 00:00:19

1 Step 1 04.09.2008 17:35 Failed 00:00:17 

 

Step ID'leri seçince sırasıyla altta çıkan hata ayrıntıları da şu şekilde;

Step ID 0 için: " The job failed.  The Job was invoked by User DOMAIN\administrator.  The last step to run was step 1 (Step 1)."

Step ID 1 için: " sqlmaint.exe failed. [SQLSTATE 42000] (Error 22029).  The step failed."

 
Gönderildi : 04/09/2008 21:06

(@GokhanDOGAN)
Gönderiler: 780
Prominent Member
 

Sizin t.log dosyanızın boyutun nediri, 1.24 mb ise genelde o t.log dosyası içersinde veri olmadığı için bu hatayı verebiliyor.

 
Gönderildi : 04/09/2008 21:40

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Backup aldığım 3 database'in transaction log dosyasının boyutları sırasıyla  3,76 Mb, 1,88 Mb ve 2,52 Mb

 
Gönderildi : 04/09/2008 23:53

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Selam;

Sorunu giderebildiniz mi acaba?

 
Gönderildi : 09/09/2008 12:18

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhaba,

 

Öncelikle ilginiz için teşekkür ederim. Maalesef bir çözüm bulamadım. Eskisi gibi, SQL Server'ı durdurup veritabanı dosyalarını "kopyala-yapıştır" ile yedeklerken LDF  dosyalarının boyutu 400-500 MB'lar seviyesindeyken, TRN uzantılı dosyalar nasıl 3-4 MB oluyor? Otomatik olarak backup alamadığım için, TRN'leri,  Management > Backup'a sağ tıklayarak "Backup a database"  ve "Transaction log" u işaretleyip manuel olarak alıyorum. Maintenance Plan'deki Complete Backup tam istediğim gibi çalışıyor, hiçbir sorun yok. 3. parti backup yazılımlarını araştırdım ama SQL Server'ın mevcut özelliklerini kullanabildikten sonra, bunlardan birini satın almak (sırf periyodik online backup almak için) pek mantıklı gelmiyor bana...

 
Gönderildi : 09/09/2008 18:52

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

http://support.microsoft.com/kb/286253   inceler misin?

 
Gönderildi : 09/09/2008 19:00

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Evet dokümanı inceledim. Aynı anda başlayan 2 işlemden kaynaklandığını söylemiş ve update ile düzeleceğini söylemiş. Şu anda zaten SQL Server Service Pack 4 yüklü, ayrıca plan içindeki "Job" u  tek başına manuel olarak başlattığımda da hata alıyorum. Bir de Complete Backup'tan 15 dakika sonra sonra başlayacak şekilde planı düzenleyerek tekrar deneyip sonucu aktaracağım..

 
Gönderildi : 10/09/2008 13:39

(@SinanTenekeci)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Sanırım oldu.. Karşılaştığım "sqlmaint.exe failed. [SQLSTATE 42000] (Error 22029). The step failed." hatasını arattım ( http://support.microsoft.com/kb/288577 ). Genel bir hata raporuymuş, "Database Maintenance Plan History" den ayrıntısına bakın diyordu. Ben de failed olanlara baktım ve şunu gördüm. Problemli olanlar "master", "msdb" ve "pubs" veritabanları. Hata raporunda ise şöyle yazıyor: "Backup cannot be performed on this database. This sub task is ignored" Sanırım yukarıdaki cevaplarda da söylendiği üzere boyutun küçük olmasından dolayı bunlar yok sayılmış. Sonra mevcut planı değiştirdim, sadece kullanıcı database'lerini seçtim ve Transaction Log backup'ı Database Backup'tan 15 dakika sonraya ayarladım. İşlem hatasız tamamlandı. TRN dosyaları oluşmuş ve boyutları sırasıyla 38 MB, 20 MB ve 15 MB. (bu arada 3 database'in boyutları ise 600-1200 MB arası değişiyor).

 

Sanıyorum benim hatam  "master", "msdb" ve "pubs" gibi veritabanlarını planın Transaction Log Backup kısmına dahil etmek olmuş. Ayrıca daha önceki denemelerim sonucu kullanıcı database'lerine ait TRN'leri görmem gerekirdi fakat kayıt yoluna dikkat etmemişim, default olarak kalmış. Ben de istediğim yerde bulamayınca hata sonucu olduğunu düşünmüşüm.

 

Ve son olarak planımı sadece kullanıcı database'lerini seçerek, Database Backup ve Transaction Log Backup'ı "aynı anda" alacak şekilde ayarladım. Transaction Log Backup 09:40:00'da, Database Backup ise 09:40:01'de başladı ve ilk önce Transaction Log Backup bitti. 10 dakika sonra da Database Backup bitti. Hiçbir hata mesajı yok, işlem başarılı. İlgili klasörü açıp baktım. TRN dosyalarının boyutları 183 KB, 115 KB ve 367 KB. Bu durum yine kafamı karıştırdı. 

 

Database Backup'tan sonra veya aynı anda alınan Transaction Log Backup dosyalarının boyutları arasındaki fark neden kaynaklanıyor? Bu KB'lık dosyalar işe yarar mı? Yoksa Transaction Log Backup'ı Database Backup bittikten sonra mı almalıyım? Ayrıca SQL Server'ı durdurup kopyala-yapıştır yaparak alınan yedeklerde LDF dosyaları sırasıyla 612 MB, 505 MB ve 10 MB. TRN dosyalarının boyutları niçin bu kadar küçük?

  

 
Gönderildi : 11/09/2008 13:58

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Geri bildirim için teşekkürler.

LDF Uzantılı dosyalar (Log Data File) SQL Server daki log dosyalarıdır. Transaction log dosyaları veritabanında meydana gelen
değişiklikleri kayıt edildiği dosyalardır.

 
Gönderildi : 11/09/2008 14:56

Paylaş: