Yönetimsel İşleri Otomatikleştirmeq..!!

St.AnGeR

Document Visor..
Katılım
17 Haz 2005
Mesajlar
1,832
Reaction score
0
Puanları
0
Konum
ιѕт              HHuser№: 9          Remote Admi
8.1. Yönetimsel İşleri Otomatikleştirmek
8.2. Potansiyel Problemleri Tanımlama
8.3. SQL Server Otomasyonuna Giriş
8.4. SQL Server Otomasyon Bileşenleri
8.5. Job'ları ve ALert'leri Oluşturma
8.6. Bir hata anında bir alert yaratma
8.7. SQL Server Agent'in Kullanıcı Account'unu Doğrulama
8.8. SQL Server Agent Mail Profile'ı Konfigüre Etme
8.9. Mail Session'ları Konfigüre Etme
8.10. Düzenli Olarak Maintenance Taskları Otomatikleştirme
8.11. Job Step'leri Tanımlama
8.12. Transact-SQL İfadelerini Kullanma
8.13. Job Step'i Çalıştırmak için Database User Context Belirtme
8.14. İşletim Sistemi Komutlarını Kullanma
8.15. Bildiri İşlemleri Yaratma
8.16. İşlem Bildirilerini Düzeltme
8.17. Job History'yi İnceleme ve Konfigüre Etme
8.18. Job History Boyutunu Konfigüre Etme
8.19. SQl Server Hata Numaraları Üzerinde Alert'ler Tanımlama
8.20. ErrorSeverityLevel'lar Üzerinde Alert'ler Tanımlama
8.21. Kullanıcı Tanımlı Hatalar Üzerinde Alert'ler Tanımlama
8.22. Performans Condition Alert'leri Yanıtlama
8.23. Bir Fail-Safe İşlemi Yaratma
8.24. SQL Server Agent Error Log'u
8.25. Bir Multiserver Ortamında job'ları Otomatikleştirmek
8.26. Web üzerinde Veritabanı Bilgisini Yayınlama
8.27. Tasarlanmış Web Sayfasını Güncelleştirme
8.28. Format Seçeneklerini Belirtme
8.29. Web Assistant Job'larını Yönetme
8.30. Tavsiye edilen uygulamalar


Yönetimsel İşleri Otomatikleştirmek

Otomatikleştirmenin Nedenleri

Lokal server üzerindeki görevleri otomatikleştirme, diğer veritabanı yönetimsel fonksiyonlar üzerinde zaman harcamaya izin verir. Otomatikleştirmenin diğer yararı, potansiyel problemleri tanımak için server'ı konfigüre etmeyi sağlar.

Planlanmış Görevleri Otomatik Düzenli Olarak Yerine Getirme

Aşağıdakiler gibi görevler düzenli olarak yerine getirilebilir.

· Veritabanlarını yedekleme

· Veri transferi yapma

· İndexlerin bakımını yapma

Örneğin; index bakım görevlerinin her ayın ilk pazarı yapılması için bu işlem otomatikleştirilebilir.

Potansiyel Problemleri Tanımlama

¨ SQL Server hataları yanıtlanarak potansiyel problemler çözülme yoluna gidilebilir.

Problemi düzeltmek için bir iş tanımlanır. Örneğin; transaction log’un dolu olduğu gösterilerek, hata numarası, 1105 üretilirse, transaction log’u yedeklemek ve kısaltmak için, bir Transact-SQL ifadesi çalıştıran bir iş tanımlanabilir.

¨ Potansiyel problemleri denetleyen performans durumları tanımlanarak potansiyel problemler çözülme yoluna gidilebilir.

Performans durumları tanımlanabilir. Örneğin; kilitler, veri değişiminden dolayı kullanıcıları tıkadıkları zaman ve otomatik olarak bir sistem yöneticisine (kilitleri tıkayan kişi) bildirdikleri zaman, bunları ortaya çıkarmak için SQL Server Agent tanımlanabilir.

SQL Server Otomasyonuna (Automation) Giriş

Tasklar otomatikleştirilmeden önce, SQL Server otomasyonunun temellerini ve SQL Server ile administrative taskların nasıl hazırlandığını göz önüne almak gerekir.

SQL Server Otomasyon Bileşenleri

SQL Server otomasyon bileşenleri, Microsoft Windows NT EventLog, MSSQLServer, ve SQLServerAgent Servislerini içerir. Bu servisler otomatikleştirme işlemlerini kolaylaştırmak için birlikte çalışırlar. Administrative task, sa’in ve dbo’nun yaptığı aktiviteler anlamına gelir.

MSSQL Server Service

Bu servis event’ları, WinNT application log’una yazar.

EventLog Service

Bir event sistem ve uygulamalar sonucu oluşur. Event’lar, aşağıdakiler gerçekleştiği zaman EventLog’a yazılır.

q 19 ile 25 arasındaki Severity seviyeleri ile SQL Server hataları oluştuğu zaman

q Hata mesajları, WinNT application log’una yazılması için tanımlandığı zaman

q RAISERROR WITH LOG ifadesi çalıştırıldığı zaman

q Xp_logevent extended stored procedure çalıştırıldığı zaman

SQLServerAgent Service

SQLServerAgent Service başladığı zaman, EventLog Service ile kaydeder ve SQL Server’a bağlanır. Bu durum, SQL Server event’lar, WinNT application log’una yazıldığı zaman, SQL ServerAgent’in event’ları almasına izin verir.

Bir event oluştuğunda, SQLServerAgent servisi, işi icra etmek için MSSQL Server Service’I ile haberleşir. İşler, çalışan job’ları veya üretilen alert’leri içerir. Bu işler, msdb veritabanında tanımlanır. SQL ServerAgent ayrıca diğer uygulamalar ile de haberleşir.

Job’ları ve Alert’leri Oluşturma

Job’lar ve alert’ler farklı olarak tanımlanırlar ve bağımsız olarak çalıştırılırlar veya üretilirler:

ü Ayda iki kere master veritabanını yedeklemek için bir job yaratılabilir ve job tamamlandığında sistem yöneticisi haberdar edilir.

ü Veritabanı dolu olduğu zaman ve transaction log’u yedeklemek için bir job çalıştırıldığı zaman, sistem yöneticisini uyarmak için bir alert yaratılabilir.





Job Tanımlama

Örneğin; ayda bir kere, farklı bir veritabanının northwind veritabanına veri transfer etmesi için bir job tanımlanabilir. Job tanımlaması farklı adımları içerir: transaction log’u yedekleme, veri transferi yapma, ve sonra veritabanını yedekleme.

Uyarıları (Notification’ları) Belirleme

Job step’lerin çalışması başarısızlığa uğradığında bu durumla ilgili işlemler bildirilerek, job tanımlamaları çoğaltılabilir. Ayrıca WinNT application loguna, job’un başarısı ve başarısızlığı da yazılabilir.

Bir Hata Anında Bir Alert Yaratma

Job’lar ve alert’ler birbirini tamamlarlar; çünkü bir job step’in başarısız olmasından dolayı oluşan bir hatayı yanıtlamak için bir alert yaratılır. Bu alert, problemi çözmek için bir job çalıştırır. Örneğin; Tranasaction log dolu olduğundan dolayı, transaction log’u yedeklemeyi sağlayan job step’ler başarısız olursa, hata numarası 9002 üretilecek. 9002 numaralı event oluştuğu zaman, Transaction log’u kısaltmak için bir job’u çalıştıran bir alert yaratabilir ve bir işlem bildirilebilir.

Otomatikleştirmeye Hazırlık

Taskları otomatikleştirmeye ve alert’leri tanımlamaya başlamadan önce, SQL Server Agent’in çalıştığından, SQL Server Agent’in doğru kurulduğundan, ayrıca işlemler e- mail ile gönderilecekse SQL Server Agent mail profile’ın konfigüre edildiğinden emin olmak gerekir.

SQL Server Agent’in Çalışmasından Emin Olmak

SQL Server Agent, WinNT servisidir. Job’ları otomatik olarak çalıştırmasıyla ve tanımlanmış alert’leri üretmesiyle çalıştığı gözlenebilir. WinNT başlatılırken, SQL Server Agent servis de otomatik olarak başlatılmalı.

SQL Server Agent’in Kullanıcı Account’unu Doğrulama

SQL Server install edildiği zaman, SQL Server Agent servisi için bir kullanıcı account belirlenir. SQL Server Agent ya Lokal Sistem ya da domain Kullanıcı Account’u kullanabilir.

SQL Server Agent için Lokal sistem account’u kullanma, sadece servislerin lokal bilgisayara erişimlerine izin verir. Domain kullanıcı account, aşağıdakilere erişim hakkına sahip olabilmek için kullanılır:

ü E-mail göndermek veya almak için çoklu e-mail sistemleri ile haberleşmek için

ü Network içinden kaynaklara erişmek için

ü SQL server replication’I yapmak için

ü Multiserver administrative job’ları çalıştırmak için

SQL Server Agent Mail Profile’I Konfigüre Etme

Uyarıları göndermek için e-mail yada pager kullanılmasına karar verildiyse, aşağıdakiler yapılmalı.

q Haberleşme server’ına sahip olmak gerekir. Bu server MAPI(Messaging Application Programming Interface) dir

q Mesaj server’ına bağlanmak için bir mail profile kullanılmalı.

q Pagers ile haberleşen bir mail server’a sahip olmak gerekir.

Profile ismi, SQL Server Agent tarafından uyarıları göndermek için kullanılır. SQl Server Agent mail session, SQl Server Agent servis başlatıldığı zaman başlar. Profile, mail client ile yaratılır. Bu mail client Microsoft Outlook olabilir.

Microsoft Exchange Server kullanılırsa, mail profile, SQL Server Agent’in kullandığı domain kullanıcı account’u için konfigüre edilmiş olmalı. Örneğin; bir şirkette mail’leşmek isteyen iki kişi var. Bu kullanıcıların mail profile’ları olmalı. Bu mail profile’lardan bir tanesi mesajları gönderir, diğeri de okur.

Note: Bazı MAPI sağlayıcıları mesajlaşma server’ına erişmek için profile ismi yerine, kullanıcı ismi ve şifresi kullanırlar.

Mail Session’ları Konfigüre Etme

SQL Server iki farklı mail session kullanır:

{ MSSQL Servis, SQL Mail olarak adlandırılan bir mail session kullanır.

Veritabanı uygulaması, bir mesaj göndermek için xp_sendmail extended stored procedure’ü çalıştırdığı zaman, SQL Server bu mail session’I kullanır.

v SQL Server Agent servisi, SQL Server Agent aktivitelerine özel olan bir mail session kullanır.

Her İki Mail Session’ı Kullanma

SQL Server Agent ve SQL Server aynı WinNT domain kullanıcı account’unu kullandığı için her iki mail session’ının da kullanılması önerilir. Bu durum her iki mail session’ının da aynı mail profile’I kullanmasına izin verir.

Farklı Kullanıcı Account’lar Kullanma

SQL Server Agent ve SQL Server, farklı domain kullanıcı account’lar kullanırlarsa, bu durumda her bir servis için mail profile’lar oluşturulmalı.

Düzenli Olarak Maintenance Taskları Otomatikleştirme

Düzenli olarak maintenance tasklar otomatikleştirildiği zaman, job’ları ve işlemleri yaratmak için SQL Server Enterprise Manager kullanılır. Ayrıca Create Job Wizard da kullanılabilir.

Job’ları Yaratma

Task’lar otomatikleştirileceği zaman, otomatikleştirilmesi istenen job’lar yaratılmalı. Job’lar tanımlandığı zaman aşağıdakiler yapılmalı.

> Job’un varlığından emin olmak.

Job’lar default olarak etkindir. Bir job işlemez durumdaysa, çalışmaz.

> Job’u yapacak olan owner’I belirtme. Owner job’u yaratan kullanıcıdır.

> Job’un lokal server veya çoklu server üzerinde çalışıp çalışmadığını belirtme.

> Job’ları yönetmek veya organize etmek için Job kategorileri yaratma

Örneğin; şirketteki bölüme uygun bir job kategorisi yaratılabilir. Kategoriler, çoklu server ortamlarındaki işleri otomatikleştirmek için yararlıdırlar.

Job Step’leri Tanımlama

· Bir job step, Transact_SQL ifadeleri ile, işletim sistemi komutları ile veya aktif scripting languages ile çalıştırılabilir.

· Tek bir job içinde, farklı uygulama tipleri kullanılabilir.

· Herbir job step için sadece bir uygulama tipi belirtilebilir.

Transact-SQL İfadelerini Kullanma

Job step’ler, veritabanı’nı ve transaction log’u yedekleme, indexleri güncelleme, veritabanı güvenliğini doğrulamagibi Transact-SQl ifadelerini sıklıkla çalıştırır.

Transact-SQL ifadelerini, stored procedure’ları, veya extended stored procedure’ları çalıştırmak için job step’ler tanımlandığı zaman aşağıdaki adımlar göz önüne alınmalı:

· Job step içinde istenen değişkenler ve parametreler bulunmalı.

· İfadede GO yancümleciği bulunmamalı.

· Job step sonucu output dosyasına gönderilebilir.

İfade çalıştırıldığında hata oluşmuşsa bu hatalar çıktı dosyalarında tutulurlar.

Job Step’I Çalıştırmak için Database User Context Belirtme

Job step’I çalıştıran Job owner uygun izinlere sahipse, SQL Server Agent Transact-SQL job step’lerini çalıştırır.

Aşağıdakiler gerçekleştiği zaman, SQL Server Agent, Transact-SQL job step’leri için job owner’ın database user context’ini ayarlayan SETUSER ifadesini çağırır.

¨ Job, sysadmin rolü üyesi olmayan SQL Server login account tarafından sahiplenildiğinde

¨ Sysadmin rol üyesi job’u sahiplandiği zaman

¨ Job WinNT kullanıcı account tarafından sahiplenildiğinde

SETUSER ifadesi, grup üyelerini ve bunlara bağlı olan SQL Server izinlerini belirlemek için PDC veya BDC’ye gider.

İşletim Sistemi Komutlarını Kullanma

Bunlar .exe veya .com ile saptanır. Buna ek olarak Transact-SQL ifadelerini çalıştırmak için, veri transferi için kullanılan bcp veya dtsrun gibi bir programı çalıştıran job step’ler tanımlanabilir.

İşletim sistemi komutu olan bir job step tanımlandığı zaman aşağıdakileri yapmak gerekir:

§ Komutun başarılı olduğunu göstermek için process exit code tanımlanmalı.

§ İşletim sistemi komutu başlatıldığı zaman, komut text box’I içinde path drive letter bulunmalı. Bu path SQL Server Agent’in program source’u bulabilmesinde yardımcı olur.

Sa veya dbo işletim sistemi komutlarını içeren job step’leri çalıştırabilirler. İş ortamına bağlı olarak, kullanıcıların belirli job’ları çalıştırmalarına izin verilebilir. Bunu yapmak için, SqlAgentCmdExec WinNT user account değiştirilmeli. Bu account, SQL Server kurulurken, hiç bir administrative ayrıcalığa sahip olmayan lokal user account olarak yaratılır.

Aktif Script Languages’I Kullanma

Bir çok şirket, Microsoft Visual Basic, Scripting Edition (VB Script) veya Java Script gibi aktif scripting language’larla iş applicationları geliştirirler.

Herbir Job Step için Action Flow Logic Belirleme

Veritabanı yöneticisi job’lar çalıştırıldığında bir hatanın veya başarının oluşup oluşmadığını bilmek ister. Bu durum saptanabilir.

q SQL Server başarılı olunduğunda bir sonraki job step’e gider, job step’in başarısızlığı durumunda durur.

q Bir job step’I çalıştırma zamanı belirlenebilir. Ayrıca tekrar aralıkları belirtilebilir.

Örneğin SQL Server Agent, PDC veya BDC olmadığında, bir kullanıcının, job step’leri çalıştırmaya izinli olup olmadığını bilemez.

Job’ları Tasarlama (Scheduling)

Bir job, bir veya daha fazla predefined schedule’ları kullanan SQL Server Agent tarafından çalıştırılır. Multiserver ortamında bulunulduğunda, job çoklu hedef server’lar üzerinde çalıştırılmak üzere tanımlanabilir.

Spesifik schedule etkinleştirildiği zaman, bir job, tasarlanmış olarak çalışır.

Tasarlanmış job’lar aşağıdakiler gerçekleştiğinde otomatik olarak başaltılabilir:

v SQL Server Agent başlatıldığında

v CPU yararsız olduğunda yani hiç bir iş yapmıyor iken

Çoklu Programlar

Bir job, çoklu schedule’a sahip olabilir. Örneğin; Pazartesinden Cuma’ya kadar transaction log’u yedeklemek için bir job tasarlanabilir.

Bildiri İşlemleri Yaratma

Bir job tamamlandığı zaman,farklı notification seçenekleri mevcuttur. WinNT application log’a yazılabilir, job silinebilir veya e-mail, pager tarafından bir işlem bildirilebilir.

İşlemler yaratıldığında aşağıdaki işlemler göz önüne alınmalı.

ü Potansiyel problemlere yanıt vermek için bir yada daha fazla grup e-mail alias kullanılabilir.

ü Mesajları kabul eden işlemleri bildirmek için kullanılan herbir bildiri metodu test edilmeli.

ü Pager tarafından bildirilen her bir işlem için bir work schedule belirtilebilir.

ü Network işlemlerine ve WinNT ile çalışan server’lara mesaj göndermek için net send komutunu kullan.

İşlem Bildirilerini Düzeltme

Bu işlem, sysoperators işlem tablosunda tutulur.

Bir işlem bildirileri almazsa aşağıdakiler yapılamalı:

Ë İşlemin bildirileri almak için uygun olduğundan emin olmak gerekir.

Ë Son bildirinin tarih ve zamanını belirlemek için en son bildiriyi inceleme.

Ë Özel bildiri metodlarını test etme.

Job History’yi İnceleme ve Konfigüre Etme

SQL Server Agent bütün job aktivitelerini tutar ve bilgileri sysjobhistory tablosuna yerleştirir.

Özel Job History’yi İnceleme

Bir job başarısız olursa, job step, başarısızlık durumu ve problem çözümleri hakkındaki bilgileri elde etmek için, job history log incelenebilir. Özellikle job history aşağıdakileri kaydeder:

* Job step’in oluştuğu tarih ve zamanı

* Job step’in başarısız veya başarılı olup olmadığını

* Bildirilen işlemi ve bildiri metodunu

* Job step süresi

* Hataları veya mesajları

Job History Boyutunu Konfigüre Etme

Herbir job hakkındaki bilgiler tutulmak isteniyor ise, job history’nin (sysjobhistory sistem tablosu) max row boyutunu arttırmak gerekir. Row boyutu uzadığı zaman, Job History otomatik olarak temizlenir.

sysjobhistory sistem tablosu küçük tutulur. Eğer farklı job’lar server üzerinde tanımlanırsa, sysjobhistory sistem tablosu genişleyebilir ve tamamiyle msdb veritabanını doldurabilir.

Job History boyutu konfigüre edildiği zaman aşağıdaki adımlar göz önüne alınmalı:

Ë Max job history boyutu, 1000 row’a ayarlanır.

Ë Herbir job için max job history boyutu 100 row’a ayarlanır.

Ë Msdb veritabanının yedeği yoksa ve bütün tablolar max row’a ulaşmışsa, sysjobhistory sistem tablosundaki bilgiye ulaşılamaz.

Note: Transact-SQL ifadesi çalıştırılırken SQL Server kapatılırsa, job history, progress’deki job step hakkındaki bilgiyi içerir.

Alert’leri Yaratma

SQL Server, kendi hatalarına, kullanıcı tanımlı hatalara, SQL Server performans alert’lerine yanıt sağlamak için alert’leri yaratır. Ayrıca pager bildirisi, bir işlemle bağlantı kuramadığında, bir fail-safe işlemi yaratılabilir.

Potansiyel Problemleri Yanıtlamak için Alert Yaratma

Alert’ler, WinNT Application log’a yazılan, SQL Server’a veya kullanıcı tanımlı hatalara (event’lara) yanıt verirler. SQL Server hataları, Transaction log’un dolu olması veya kullanıcının bir tabloyu modify etme izninin olmaması gibi predefined problemleri yanıtlamada üretilirler.

Kullanıcı tanımlı mesajlar üretmek için, veritabanı uygulaması RAISERROR ifadesini çağırır.

Örnek Senaryo

Bir account yöneticisi, müşterinin veritabanından çıkartıldığını, mail yoluyla bildirilmesini istiyor. Ayrıca silen işçinin adını da bilmek istiyor.

Alert İşlemleri

Aşağıdaki adımlar account yöneticisinin isteklerine yanıt sağlamak için üretilen alert’leri gösterir:

1) Müşteri temsilcisi Eva Corets, Van Dam isimli müşteriyi customers tablosundan kaldırır. 50099 numaralı hatayı üreten Removecustomer stored procedure, çalıştırılır.

2) Hata (event), WinNT appliation log’a yazılır.

3) WinNT appliation log’u bir hata oluştuğunu SQL Server Agent’e bildirir.

4) SQL Server Agent msdb..sysalerts sistem tablosunda tanımlanmış alert’lerle hatayı karşılaştırır.

5) SQL Server Agent, aşağıdakiler yapılarak alert’I denetler:

a) Bir e-mail mesajı göndermek için, msdb..sysnotifications sistem tablosunu inceleyerek.

b) Bildiriyi kimin gönderdiğini saptamak için, msdb..sysoperators sistem tablosunu inceleyerek

SQL Server Hatalarını Yanıtlamak için Alert Yaratma

SQL Server hatalarına bir yanıt sağlamak için bir alert yaratıldığı zaman, 1105 gibi tek bir hata numarası veya 17 gibi belirli seviyedeki tüm hatalar belirtilebilir. Bir job’u çalıştırmaya veya bir işlemi bildirmeye ek olarak Simple Network Management Protocol (SNMP) trap’I üretilebilir.

SQL Server Hata Numaraları Üzerinde Alert’ler Tanımlama

SQL Server Hata Numaraları Üzerinde Alert’ler Tanımlandığı zaman, aşağıdaki adımlar göz önüne alınmalı.

¨ Hata numaraları WinNT application log’a yazılmalı.

¨ Sysmessages sistem tablosunda depolanan herhangi bir SQL Server hata numarası üzerinde alert’ler tanımlanabilir.

¨ Bir SQL Server hata numarası için birden fazla alert tanımlanabilir. Herbir alert, belirli bir veritabanı ile sınırlandırılmalı, veya tüm veritabanlarına uygulanmalı.

Örneğin; customer ve payroll veritabanlarının her ikisinde bulunan 1105 numaralı hataya yanıt vermek için, iki farklı alert yaratılabilir. Veya bütün veritabanlarında, 1105 numaralı hataya yanıt vermek için bir alert yaratılır.

¨ Tüm veritabanlarına uygulanan bir alert yaratıldığı zaman, hata mesajının yeterli açıklamayı sağladığından emin olmak gerekir. Veritabanı ve object ismini sağlayan parametreler bunu başarır. Yaratılan bir alert bütün veritabanlarına uygulanır. Hata mesajı yeterli açıklama sağlar.

Error Severity Level’lar Üzerinde Alert’ler Tanımlama

Error severity level’lar üzerinde alert’ler tanımlanırken, aşağıdaki adımlar göz önüne alınır.

· 19’dan 25’e kadar olan SQL Server hataları, otomatik olarak WinNT application log’a yazılır.

· 20-25 arasındaki severity level’lar tehlikeli hatalardır. Bu SQL Server hatalarının bildirilmesi için bir işlem tanımlanmalı.

· SQL Server kullanıcının kullanabildiği predefined alert’ler sağlar.

· Tüm veritabanları üzerinde belirli bir severity level hatası oluştuğu zaman üretilmiş olan bir alert yaratılabilir.

İlerlemiş Event’I Konfigüre Etme

Tüm hata mesajlarını veya sadece kontrol edilemeyen hata mesajlarını alan bir server’I belirtmek için SQL Server Agent konfigüre edilebilir. Diğer serever’lardan daha az trafik ile eventlar bir server’a ilerletilmek istenebilir.

Örneğin; Accounting server’a ilerleyen, severity levels 18 veya üstü ile hatalar konfigüre edilebilir. Severity level 19 ile server üzerinde bir hata oluşursa, event, problemin adresini yazmak için Accounting server’a otomatik olarak ilerletilir.

Note: bir alert’e bir yanıt tanımlarken, SNMP trap kullanılabilir. SNMP trap, WinNT, UNIX, ve Hewlett Packard gibi farklı donanım platform’ları içinden SQL Server’I denetleyen network management servislerini sunan bir application protokolüdür.

Kullanıcı Tanımlı Hatalar Üzerinde Alert’ler Tanımlama

Potansiyel problemlere çözüm sağlamak için kullanıcı tanımlı hata mesajları, alert yaratılarak belirtilebilir.

Örneğin; inventory tablosundaki update trigger’ından üretilen, kullanıcı tanımlı hata mesajı yaratılabilir. İnventory tablosundaki bir kolon güncellendiği zaman, trigger kullanıcı tanımlı hatayı üretecek. Sonra, job’u çalıştıran hata mesajı üzerindeki alert tanımlanır ve bir e-mail mesajı gönderilir.

Kullanıcı tanımlı hata üzerinde bir alert yaratırken, ilk önce hata mesajı yaratılmalı. Sonra veritabanı application’ınından hata üretilir ve hata mesajı üzerinde bir alert tanımlanır.

Hata Mesajı Yaratma

Kullanıcı tanımlı hata yaratmak için SQL Server Enterprise Manager veya sp_addmessage sistem stored procedure’I kullanılabilir. Kullanıcı tanımlı veritabanı yaratılırken aşağıdaki adımlar göz önüne alınmalı.

ü Kullanıcı tanımlı hataların numaraları 50000’den büyük olmalı. 50000’den daha az olan hata numaraları predefined SQL Server hatalarına ayrılır.

ü Bütün kullanıcı tanımlı hatalar, master veritabanının sysmessages tablosunda depolanır.

ü Hata mesajları problemleri düzeltici bilgilerin detaylarını tutan parametreleri içerir.

ü SQL Server hata mesajları, SQL Server kurulurken seçilen lisanda görünür. Çoklu dil ortamlarında yönetiliyorsa, diğer lisanlar için kullanıcı tanımlı mesajlar yaratılabilir.

ü Mesaj üzerinde bir alert yaratılmak isteniyorsa, WinNT application log’a hata mesajları yazılabilir.

Örnek 1 Bu örnek; hata oluştuğunda, WinNT application log’da bulunan kullanıcı tanımlı hata mesajını yaratır. %d parametresi silinen müşteri numarası ile değiştirilir ve %s parametresi customers tablosundaki DELETE ifadesini çalıştıran kullanıcı ismi ile değiştirilir.

EXEC sp_addmessage 50099, 16, ‘Customer %d was deleted by %s’, ‘us_english’, ’true’

Veritabanı Application’ından Hata Üretme

Bir hata çağırmak için, RAISERROR ifadesi kullanılır. RAISERROR ifadesi, kullanıcı tanımlı hata mesajları gönderir ve oluşan hataları kaydetmek için bir sistem flag’I ayarlar.

Hata Mesajları Üzerinde Bir Alert Tanımlama

Account Manager’a, hata mesajı içeren bir e-mail mesajı göndermek için, 50099 hatası üzerinde bir alert yaratılır.Kullanıcı removecustomer stored procedure’ını çalıştırdığı zaman, 50099 hatası üretilir ve WinNT application log’a kaydedilir.

Account Manager’a, hata mesajı içeren bir e-mail mesajı göndermek için hata numarası üzerinde bir alert tanımlanır.

Sonuç Error: 50099 Severity:16, State 1

Customer 732 was deleted by Accounting\evacorets

Performans Condition Alert’leri Yanıtlama

§ SQL Server Performance Monitor’un tanımladığı, SQL Server performans conditionlarını yanıtlamak için alert’ler yaratılabilir. Condition değeri aşılırsa, bir alert üretilir. Örneğin; northwind veritabanındaki transaction log 75 percent kapasiteyi aşarsa, performans condition alert yaratılabilir.

§ aşağıdaki nesneleri içeren SQL Server kaynakları üzerinde alert’ler yaratılabilir.

§ Access metodları

§ Buffer yönetimi

§ Veritabanı yönetimi

§ Lock yönetimi

§ Log yönetimi

§ Procedure cache

SQL Server Performance Monitor’un, performans condition alert’leri kullanmak için, SQL Server üzerinde çalıştırılmasına gerek yoktur.

Note: SQL Server performans Monitor ve sqlalrtr ile eşdeğer condition alert yaratılabilir. Sqlalrtr, SQL Server Agent ve SQL Server Performans Monitor arasında gerekli haberleşmeyi sağlar.

Bir Fail-Safe İşlemi Yaratma

İşlemleri tanımlayan pager bildirileri başarısız olursa, bir alert’I yanıtlamak için bir fail-safe işlemi yaratılabilir. Aşağıdaki adımlar oluştuğunda fail-safe işlemi bildirilir.

· Alert, pager bildirilerine sahiptir.

· Bütün işlemler, sorumlu değildir.

· Bir fail-safe işlemi tanımlanır

· SQL Server Agent mail session başlatılır.

Fail-Safe işleminin e-mail veya pager tarafından bildirilmesi için SQL Server Agent mail session istenir.

Fail-Safe işlemi yaratılırken aşağıdaki adımlar göz önüne alınmalı:

· Fail-Safe işlem bilgisi gizlenir. Böylece SQL Server Agent dursa bile, fail-safe işlemi hala bildirilir.

· Sadece bir tane fail-safe işlemine sahip olunur.

· fail-safe işlemi yaratıldıktan sonra silinemez. fail-safe işlemi güncellenebilir.

SQL Server Otomasyonunu Düzeltme

Otomatikleştirilen job’lar, alert’ler, bildiriler düzgün bir şekilde çalışmıyorsa, problemi çözmek için aşağıdakiler kullanılır.

SQL Server Agent’in Başlatıldığını Doğrulamak

SQL Server Agent bir şekilde durmuşsa, tanımlanan job’lar ve alert’ler çalıştırılamaz.

Job, Schedule, Alert, veya İşlemin Etkinliğini Doğrulamak

Job’lar tasarlandığı gibi çalışmıyorsa, alert’ler üretilmezse, veya işlemler bildirileri kabul etmezlerse, job, schedule, alert veya işlem etkinliği doğrulanır.

Örneğin; Bir alert etkin değil ise, alert aktif değildir. Ama özellikleri korunur. Bu alert gerekli olduğunda aktif yapılarak yeniden kullanılabilir. Bir alert silinirse, alert’e bağlı bütün bildiriler kaldırılır.

Etkisiz bir job, schedule, alert veya işlem, SQL Server Agent error log’a veya job history’ye kaydedilemez.

SQL AgentCmdExec Account’un Düzgün Kurulduğundan Emin Olmak

Bir job step komutu, aşağıdakilerden dolayı düzgün olarak çalışmayabilir.

v SQL AgentCmdExec Account’u düzgün olarak kurulmadıysa

v SQL AgentCmdExec Account’u kaldırıldıysa

v SQL AgentCmdExec Account’unun şifresi değiştirildi ise

Hata Loglarını İnceleme

Problemleri düzeltmek için, WinNT application log’daki, SQL Server Agent’deki, SQl Server hata log’larındaki hata mesajları incelenmeli.

SQL Server Agent Error Log’u

SQL Server Agent Hataları, Server Agent error log’a kaydedilir. Bütün SQL Server Agent hataları, ikazları, bilgi mesajları hata log’a kaydedilir.

q SQL Server Agent durdurulduğunda ve yeniden başlatıldığında, yeni bir hata log’u yaratılır.

q SQL Server Enterprise Manager ile şimdiki veya 9 önceki hata log’u incelenebilir.

q Hatalar, SQL Server Agent hata loguna girildikten sonra, net send komutu göndermek için hata mesajı tanımlanabilir.

Windows NT Application Log

Windows NT Application Log’un max boyutu oldukça küçülürse, SQL Server için, hiçbir event var olmaz. SQL Server hakkındaki event bilgisinin kaybolmasını engellemek için WinNT application log için max log boyutu arttırılır.

SQL Server Hata Log

Ayrıca SQL Server hata log’u da incelenmeli. SQL Server hata log ve WinNT application log arasındaki eventler için tarihler ve zamanlar karşılaştırılarak, olası nedenlerin listesi daraltılabilir.

History’yi İnceleme

SQl Server Agent error log incelendikten sonra, bir alert, işlem veya job üzerindeki history bilgisi incelenmek istenebilir. Alert ve işlem history’leri sadece sık kullanılan aktiviteleri tutarlar.

Sysjobhistory sistem tablosunun dolu olması, alert’lerin ve job’ların başarısız olmasına neden olur. Job history bilgisini geniş tutmak için msdb veritabanı genişletilmeli.

Mail Client’ın Düzenli Olarak Çalıştığını Doğrulamak

e-mail veya pager bildirileri çalışmazsa, mail client’ın düzgün çalıştığını doğrulamak gerekir.

Bunu yapmak için, mail client’a, SQL Server domain kullanıcı account’u kullanılarak giriş yap ve bir operatöre e-mail veya pager bildirisi gönder.

Alert’leri Düzeltme

Bu event’da tanımlanmış bir alert’ten dolayı ve yeterli kaynak olmamasından dolayı aynı alert tekrar tekrar tutulabilir.

Döngüsel Alert’lerin Oluşumunun Nedenleri

WinNT application log hızlı bir şekilde aynı hata ile dolmuşsa, CPU kullanımı aşırı derecede yüksekse, veya alert yanıtlarının numarası yüksekse, döngüsel alert’ler meydana gelir.

Döngüsel Alert’leri Çözme

Döngüsel alert’ler, backlog temizlenerek ve alert’in yinelenmesi engellenerek çözülebilir.

Alert numaraları, SQL Server Agent alertin processing oranını aşarsa, bir backlog yaratılır. Backlog’u çözmek için, DELAY BETWEEN RESPONSES FOR RECURRİNG ALERTS seçeneğindeki, zaman miktarını her bir alert için arttırmak gerekir.

Alert’lerin yinelenmesini engellemek için, bir yanıt üretmeyen alert’ler tanımlanabilir.

Bir alert üretmeyen hata yaratmak için, WinNT registry’si değiştirilir. SQL Server Agent’in bir alert üretmemesi bu değişimin bir sonucudur.

Önemli: Sadece registry içinde nonalert oluşum sağlayan bir hata konfigüre edilebilir. Bu çözüm, son başvurulacak yol olarak kullanılmalı.

Çoklu Server Ortamı Kurma

Çoklu server yönetim konfigurasyonu, master server’dan ve bir veya daha fazla hedef server’dan oluşur. Multiserver yönetimini kurmak için, tüm server’lar SQL Server Enterprise Manager’a register edilirler.

Çoklu Server’ları Gruplama

Çoklu server yönetim konfigurasyonu, aşağıdakileri yapmaya izin verir:

q Mantıksal çalışan parçalar içine çoklu server’ları gruplamaya

q Bir locationdan çoklu server’ları yönetmeye

Örneğin; müşteri veritabanının alt takımı, şube ofisler tarafından korunursa, herbir şube ofisteki müşteri veritabanını yedeklemek için merkez büroda bir job yaratılabilir.

Uyarı: Çoklu server administration bütün server’lar üzerinde SQL Server 7.0 olmasını ister. Farklı versiyon olamaz.

Bir Master Server Tanımlama

Bir master server kendi server domain’inin altındaki bütün server’ları yönetir. Bir master server, sadece WinNT server’I çalıştıran bir bilgisayar üzerinde tanımlanabilir. Master server, Make Master Server Wizard ile tanımlanabilir. Master Server’larla ilgili olan aşağıdaki adımları inceleyelim.

§ Wizard, master server üzerinde ve herbir hedef server üzerinde bir MSXOperator yaratır.

§ Master server genellikle bir primary department server’I simgeler. Küçük organizasyonlarda, master server tüm şirkete hizmet verir.

§ Master server belirtilmeli.

Hedef Server’ları Tanımlama

Hedef server’lar, Make Target Server Wizard ile yaratılırlar. Hedef server:

q Sadece bir master server’I belirler.

q Master server olarak aynı domain’de bulunmalı.

q Kendi geçerli master server domain’ini terkedene kadar başka bir master server domain’in üyesi olamaz.

Bir Multiserver Ortamında Job’ları Otomatikleştirmek

Jobların hedef server’larda oluşması için, master server üzerinde yaratılması gerekir. Multiserver ortamlarındaki job’ları işlemek için gerekli olan adımlar aşağıda ele alınmıştır.

1. Master server, sysdownloadlist sistem tablosundaki hedef server’lar için job’ları ilan eder.

2. Hedef server, kendisi için tasarlanmış job’ların olup olmadığını belirlemek için periyodik olarak master server’a bağlanır.

Job varsa, hedef server job bilgisini download eder ve master server ile olan bağlantısını koparır.

3. Hedef server job’u tamamladığı zaman, master server’a yeniden bağlanır ve job durumunu raporlar.

Multiserver Job Tanımlamalarını Değiştirme

Master server job tanımlamalarını ve tasarılarını depolar. Multiserver ortamında job’lara bir herhangi bir değişikilik yapıldığı zaman, aşağıdaki adımlar göz önüne alınmalı.

¨ Job tanımlamaları hedef server’lardan değiştirilemez.

¨ Job’lar master server’larda değiştirilebilirler.

¨ Job güncellendiği zaman, hedef server’lar uyumlu hale getirilebilir.

Job History’yi İnceleme

Master server, Sysjobhistory ve sysjobservers sistem tablolarına hedef server’dan job ve job step bilgisini kaydeder. Job bilgisi, ayrıca herbir lokal hedef server’ının Sysjobhistory sistem tablosuna kaydedilir.

Web Üzerinde Veritabanı Bilgisini Yayınlama

SQL Server Web Assistant, Web Assistant Wizard veya sistem stored procedureler ile Web sayfaları yaratılabilir.

Web Sayfasının Özelliklerini Belirtme

SQL Server Web Assistant bir script oluşturur ve bu script, bir HTML dökümanı üreten bir job yaratmak için, sp_makewebtask sistem stored procedure’ünü çağırır. Bu HTML dökümanı sorguların sonuçlarını içerir.

Sorguyu Belirtme

SQL Server Web Assistant aşağıdakileri yapmaya izin verir.

¨ Sorguları oluşturmaya

¨ Sorguları text olarak girmeye

¨ Varolan bir sistem stored procedure’ünü kullanmaya

Tasarlanmış Web Sayfasını Güncelleştirme

SQL Server Web Assistant’ıyla bir Web sayfası yaratıldığı zaman, Web sayfasını güncelleştirmek için bir SQL Server Agent job’u yaratılabilir. Bu durum Web Assistant server olarak adlandırılır. Web Assistant job’u yaratılırken ve tasarlanırken, SQL Server Agent’in çalıştığından emin olmak gerekir. Aşağıdaki adımlar, bir Web sayfası güncellenirken kullanılan tasarlama seçeneklerini gösterir.
Tasarlama Seçeneği
Tanım

Only once, when I complete this wizard
Bir kere çalışma

On demand
Job sonra çalışır. Job’I çalıştırmak için SQL Server Web Assistant’I yeniden çalıştırmak gerekir.

Only once, at the following time
Tasarlanmış job, belirli bir tarih ve zamanda bir kere çalışır.

When the SQL Server data changes
Veri değiştiği zaman, SQL Server Web Assistant, Web sayfası yaratma job’unu çalıştırmak için bir trigger yaratır.

At regularly scheduled intervals
Tasarlanmış task, her n dakikada, saatte, günde veya haftada çalışır.



Output Dosyasının Yerini Ayarlama
SQL Server Web Assistant, bir Web sayfası için, çıktı dosyasının adını ve yerini belilemeye izin verir. Bu ya lokal bilgisayarın üzerinde yada remote olan birinin üzerinde olabilir. Default olarak C:\Mssql7\HTML klasörü gelir.

Format Seçeneklerini Belirtme

Template bir dosya kullanılmıyorsa, SQL Server Web Assistant aşağıdakilerin HTML dosyasında bulunmasına izin verir.

v Başlık (Title)

v Time Stamp

v Sorgu sonuçları için başlık (Title)

v Sütun Başlıkları (Header)

v Bir sorgunun döndürdüğü row’ların sayısının sınırı

v Web sayfasının başlığı için kullanılan HTML stili

v Sabit yazılar ve koyu, italik yazı tipleri

v Bir URL bağlantısı

Bir format seçeneği belirtilmemişse, SQL Server Web Assistant default olarak bir tane sağlar.

Bir web sayfası oluşturulduktan sonra, bu sayfa el ile düzenlenebilir ve veri gösterimini arttırmak için diğer HTML tag’ları eklenebilir.

Note: sp_makewebtask stored procedure ayrıca yarttığı job’u çalıştırmak için kullanılır. Bu stored procedure doğrudan kullanılabilir veya SQL Server Web Assistant’ın oluşturduğu bir script edit edilebilir.

Template Bir HTML Dosyası Kullanma

Template bir HTML dosyası, Web sayfasını tasarlamak için kullanılır. Template ile verilerin görünümü sağlanabilir. SQL Server Web Assistant ile Template bir dosya belirlendiği zaman

q HTML dosyası, .tpl uzantısıyla kaydedilir.

q Dosya, <%insert_data_here%> tag’ını içermeli.

q Sorguların sonuçları bir HTML tablosuna eklenir.

Template Bir HTML Dosyasının Biçimlendirilmesi

SQl Server Web Assistant’ın sağladığından daha okunabilir sonuçlar üretmek için sonuç kolonları biçimlenebilir.

Template dosya, <%begindetail%> ve <%enddetail%> HTML tag’ıyla row formatını belirtir.

Row <%insert_data_here%> tag’ına yerleştirilmeli.

Aşağıdaki tablo HTML tag’larını gösterir.

HTML
Anlamı

<parameters>
Parametrenin başını gösterir.

</parameters>
Parametrenin sonunu gösterir.


Web Assistant Job’larını Yönetme

Web Assistant Job’larını yönetmek için, SQL Server Enterprise Manager veya stored procedure’lar kullanılabilir.

Bir Web Assistant Job’u Çalıştırma

Aşağıdakileri yapmak için, Sp_runwebtask strored procedure ile bir Web Assistant job sayfası çalıştırılabilir.

ü Tanımlanmış bir Web Assistant Job’u çalıştırmak için

ü Bir HTML dökümanı oluşturmak için

Syntax sp_runwebtask [[@procname=] procname,] [[@outputfile=]outputfile

Procname, çalıştırılacak Web Assistant Job’un ismi ve outputfile yaratılacak HTML dosyasının ismidir.

Örnek 1: Bu örnek; C:\Web\Myfile.html’in @outputfile parametresini ve MYHTML prosedürünün @procname parametresini kullanarak bir Web Assistant Job çalıştırır.

Sp_runwebtask @procname=MYHTML, @outputfile=’C:\Web\Myfile.Html’

Web Assistant Job’u Silme

Aşağıdakiler yapılarak bir Web Assistant Job silinebilir:

§ SQL Server Web Assistant’daki uygun seçeneği seçerek

§ Sp_dropwebtask stored procedure’ünü çalıştırarak

Syntax sp_dropwebtask procname, outputfile

Örnek 2: Bu örnek; C:\Web\Myfile.html’in @outputfile dosyası ve MYHTML prosedürü ile bir Web Assistant Job’u siler.

Sp_dropwebtask MYHTML, ‘C:\ Web\Myfile.html’

Note: Sistem stored procedure’ler kullanılarak, Web Assistant Job’ları, çalıştırıldığı veya silindiği zaman, Sp_makewebtask stored procedure’ünün dbname parametresinde belirtilmiş veritabanının içinde bulunulması gerekir.

Tavsiye Edilen Uygulamalar

Administrative task’lar otomatikleştirileceği zaman, aşağıdaki adımlar göz önüne alınmalı.

h SQL Server ve SQL Server Agent’in, aynı WinNT domain kullanıcı account’unu ve şifresini kullandığından emin ol; çünkü aynı mail profile’I kullanıyorlar.

h Uygun hata bildirilerinin 18’den büyük olmasını sağlamak için, e-mail group alias’lara alert’leri gönder.

h İş ortamı için sysjobhistory sistem tablosunu uygun olarak boyutlandır. Eğer server üzerinde, farklı joblar tanımlanmışsa, sysjobhistory tablosu genişleyebilir ve msdb veritabanını doldurabilir.

h Kötü bir hata oluştuğu zaman, bir işlemi bildirmek için bir alert tanımla. SQL Server, 19-25 arasındaki hata seviyeleri ve msdb ve master veritabanı üzerindeki 1105 numaralı hata için predefined demo alert’ler sağlar. predefined demo alert’ler yeniden adlandırılmalı ve değiştirilmeli.

h Diğer işlemleri sağlayan bütün bildiriler başarısız olursa, bir alert’e yanıt sağlamak için bir fail-safe işlemi yarat.

Web sayfasını biçimleyen, bir template dosya yarat. Bir template, biçim seçeneklerini sonuç sütunlarına uygulamayı sağlar.
 
Geri
Üst