19 Aralık 2011 Pazartesi

Golden Gate: ERROR OGG-00146 Oracle GoldenGate Capture for ODBC, EXTRACT.prm: VAM function VAMInitialize returned unexpected result: error 600 - VAM Client Report .

HATA:
ERROR OGG-00146 Oracle GoldenGate Capture for ODBC, EXTRACT.prm: VAM function VAMInitialize returned unexpected result: error 600 - VAM Client Report .

AÇIKLAMA:
Bu sorun üstünde Oracle Support ile çok uzun süre çalıştık. Sorunun ne olduğunu bulamadılar, bir gün şansa biz bulduk. Bu sorun oluştuğunda ilk başlarda Extract'ın parametre dosyasında ALTARCHIVELOGDEST parametresini kullanıyor ve sorunu geçici savuşturuyorduk. Bu geçici çözümü de şansa bulmuştuk yine.

ALTARCHIVELOGDEST parametresi oldukça masraflı bir parametre. Bu parametre kullanıldığında, Transaction Log Backup kayıtlarında ve Online Transaction Log dosyasında bulunamayan LSN; tüm Transaction Log Backup dosyaları taranarak bir şekilde bulunuyordu. Daha sonra öğrendik ki, normal şartlar altında Golden Gate, SQL Server'ın sistem veritabanı olan MSDB veritabanındaki Backupset ve BackupMediaFamily tablolarını kullanarak bulmaya çalışıyor aradığı LSN'leri. Bir şekilde eğer alınan Transaction Log Backup'ın kaydı bu tablolarda yoksa, o zaman Golden Gate bu hatayı alarak duruyor. ALTARCHIVELOGDEST parametresi kullanıldığında ise Golden Gate'in LSN arama yöntemi değişiyor ve sistem tabloları yerine tüm yedek dosyalarını tek tek açarak ilgili LSN'i bulmaya çalışıyor, bu nedenle işlem çok uzun sürüyor. Tabii ki ilgili yedek klasöründe kaç tane dosya olduğu ve bu dosyaların büyüklüğüyle de doğrudan ilgili bir konu bu.

Bizim durumumuzda sistem tablolarındaki boşlukların nedeni ise, yine SQL Server'ın Backup tarihçesinin temizlenmesi için kullanılan Sistem SP'sinin çalışırken Transaction Log yedeği alındığında bu işlemin sistem tablolarına işlenmesinin engellenmesiydi. Yani temizlik işlemi yapılırken şayet Transaction Log yedeği alınırsa, o zaman Transaction Log yedeği alınıyor, fakat Deadlock oluşuyor ve bu işlem MSDB'deki sistem tablolarına işlenemiyordu.

Görüldüğü üzre bu sorun doğrudan SQL Server'da oluşan Deadlock nedeniyle kaynaklanıyor ve sorunun doğrudan Golden Gate ile ilgisi yok. Golden Gate, sorunun sonucundan etkileniyor. Biz bir şekilde Deadlock oluşmasını engelledik, şayet siz de bu sorunu yaşıyorsanız ve Deadlock oluşmasını engelleyebilirseniz, o zaman Golden Gate'teki bu sorundan da kurtulmuş olursunuz.

Ekrem

Golden Gate: "Invalid character value for cast specification"

HATA: "Invalid character value for cast specification"

AÇIKLAMA / ÇÖZÜM: Ben bu hata ile ilk önce Replicat tarafında karşılaşmıştım. Golden Gate'in "logdump" isimli araçıyla sorunu didiklerken, Replicat tarafında eklenmeye çalışılan tarih alanı değerinin 1757.58.35 gibi bir abuk değer olduğunu fark etmiştim. Bu sorunu da sadece sıkıştırılmış tablolarda yaşıyordum.

Daha sonra bu sorunu düzelttiklerini söylemişlerdi ve yeni bir versiyonu kullanmamı önermişlerdi. Yeni versiyonu kurmuştum ve daha sonra da aynı sorunla bu sefer kaynakta, Extract'larda karşılaşmıştım. Bu sefer sorunu sadece sıkıştırılmış tablolarda değil, tüm tablolarda yaşıyordum. Bu sefer de farklı bir versiyona yönlendirmişlerdi ve sorun bu şekilde çözümlenmişti.

Ekrem

30 Kasım 2011 Çarşamba

İş ilanı (SQL Server DBA)

Selam arkadaşlar, Sizinle bir iş ilanı paylaşmak istiyorum, ilgilenenler CV'lerini doğrudan bana (enaksanamun AT gmail . com) gönderebilirler. Ben de ilgili kişilerle paylaşacağım.

Genel Nitelikler: Üniversitelerin ilgili bölümlerinden mezun İngilizce bilen Minimum 3 yıl veritabanı yönetimi tecrübesi olan Veritabanı recovery deneyimi bulunan “Disaster recovery site” uygulama deneyimi olan İleri seviyede SQL bilgisi bulunan Veritabanı tasarım bilgisine sahip Performans izleme ve optimizasyon bilgisi olan Takım çalışmasına yatkın İletişim becerisine sahip Askerliğini tamamlamış

İş Tanımı: Firmamıza MS Sql Server 2005 & 2008 sunucularının , · Kurulumu yönetimi, · Sunucu ve disk donanımlarının planlanması · Backup ve recovery planlarının hazırlanıp uygulanması · Performans izleme ve optimizasyon çalışmalarının yapılması · “Disaster recovery site” planlanması ve uygulanması · Gerekmesi halinde recovery planlarının uygulanması Konularında görev alacak “Veri Tabanı Yöneticisi” arayışımız bulunmaktadır.

15 Kasım 2011 Salı

HATA: The database owner SID recorded in the master database differs from the database owner SID recorded in database 'veritabanı_adı'. You should correct this situation by resetting the owner of database 'veritabanı_adı' using the ALTER AUTHORIZATION statement. AÇIKLAMA: Bir kullanıcı sistemde bir SP çalıştırmak istediğinde böyle bir hata ile karşılaştığını söylemişti. Bahsi geçen veritabanında TRUSTWORTHY özelliği açıktı. Bu sorunla önceden de karşılaştığımız için sorunun veritabanı sahibinden kaynaklandığını biliyordum. ÇÖZÜM: Veritabanının sahibini aşağıdaki gibi bir kod ile "sa" yaptığınızda sorun çözülür: USE [veritabani_adi] GO EXEC sp_changedbowner 'sa' GO

7 Ekim 2011 Cuma

"Cannot generate SSPI context. (Microsoft SQL Server)"

HATA: Cannot generate SSPI context. (Microsoft SQL Server)

AÇIKLAMA: Bu hatayı değişik durumlarda alabilirsiniz. Hemen biraz önce bir kullanıcı bana bu hatayı aldığını söyledi. En son ne zaman sağlıklı bağlandığını, o zamandan bu yana ne değişiklik olduğunu falan sordum ve o arada bana Windows Domain şifresinin değiştiğini söyledi. Kilit ipucu buydu işte. Çünkü şifresini değiştirdikten sonra yeni şifre ile hiç Windows'una giriş yapmamıştı ve bu nedenden dolayı Windows Authentication işlemi yapılırken o anki şifresiyle Active Directory'deki şifresi eşleştirilemiyordu ve SQL Server'a giriş yapamıyor ve bu hatayı alıyordu.

ÇÖZÜM: Kullanıcıya Windows'undan Log Off olup sonra Log In işlemlerini uygulaması gerektiğini söyledim, fakat kullanıcı bana o anda makinesinde birçok uygulama açık olduğunu ve bunun sıkıntılı olacağını söyledi. Ben de kendisine SQL Server Management Studio'yu SHIFT tuşu basılıyken farenin sağ tuşuna basıp başka bir kullanıcı olarak (Run as a different user) SSMS'i açabileceğini ve bu sayede yeni şifresini kullanabileceğini ve Authentication işleminin başarıyla yapılabileceğini ve hatayı almayacağını anlattım. Uygulayınca da sorun çözümlenmiş oldu. Bu şekilde de sizele bu sorun için iki çözüm paylaşmış oldum, umarım işinize yarar =)