İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL Server
  3. SQL Server Job Oluşturma
k_zd_m_

SQL Server Job Oluşturma

SQL-Server-Microsoft
VidyoConnect

SQL Server’da Job lar SQL Server Agent servisi aracılığıyla pek çok işlemi sırasıyla belirlenen periyotlarla gerçekleştirebilen bir işlemdir. Bir veya daha fazla kez çalıştırılabilen ve başarı veya başarısızlık açısından izlenebilen bir yönetim görevi tanımlamak için jobları kullanırız.

Bir Job u oluşturabilmek için sysadmin yetkisine sahip olmak gerekir ya da herhangi bir logine msdb veri tabanı üzerinden SQLAgentUserRole rolünün tanımlanmış olması gerekir.

Job oluşturmak için SQL Server Agent sağ tıkNewJob sekmesine tıklıyoruz.

Resim-1

Aşağıdaki New Job penceresi açılacaktır. Biz burada ihtiyacımız olan bir SP yi, günlük çalışacak şekilde düzenleyeceğiz. Jobumuzu Name kısmında isimlendiriyoruz, Owner kısmına da sa kullanıcısı girilmelidir. Owner kısmında aslında varsayılan olarak jobu oluşturan kişinin kullanıcısı gelir ancak burada sa kullanıcısı tercih edilir çünkü bir başka kullanıcının logini devre dışı bırakıldığında ya da silindiğinde jobun owner ını güncellemezsek jobun çalışmasını engelleyebilir, bu gibi sorunların önüne geçebilmek için sa tercih edilir. Gerekli olmadıkça belirli kullanıcılara bağlı işler yapılmamalıdır. Ancak jobu oluşturan kullanıcı sysadmin olmayıp SQLAgentUserRole rolüne sahipse  Owner alanına müdahalede bulunamaz, job kendi kullanıcısı ile oluşturulur.

Category kısmında da varsayılan olarak gelen kategorize edilmemiş bir iş olarak bırakabiliriz. Kategorilerin tek nedeni jobları organize etmenize yardımcı olmaktır, böylece bir kategoriye göre sıralayabilirsiniz ve birbiriyle ilişkili tüm jobları görebilirsiniz.

Description kısmında da yapılan işin hakkında bilgilendirme içerikli bir açıklama yazılabilir.

Resim-2

Steps sayfasında bu job için gerekli adımı/adımları belirtiriz. Mevcut adımlara Insert ile istenilen aralığa bir adım eklenebilir, Edit ile bu adımlar üzerinde değişiklikler yapılabilir veya istenmeyen bir adım var ise Delete deyip bu adımı kaldırabiliriz. New deyip bir adım oluşturmakla başlıyoruz:

 

 

 

 

 

 

 

 

 

 

 

 

Resim-3

New Job Step penceresi açılıyor. Oluşturacağımız adımı isimlendiriyoruz. Type kısmında job adımı için birçok farklı alana olanak sağlanıldığını görebiliriz. Burada yapacağımız işlem SP çalıştırmak olduğu için type seçeneğini varsayılan olarak da gelen Transact-SQL script(T-SQL) den yana kullanıyoruz. Job un bize sağlamış olduğu diğer type lar aşağıdaki gibidir:

  • ActiveX Script
  • Operating System (cmdExec)
  • PowerShell
  • Replication Distributor
  • Replication Merge
  • Replication Queue Reader
  • Replication Transaction-Load Reader
  • Replication Snapshot
  • SQL Server Analysis Services Command
  • SQL Server Analysis Services Query
  • SQL Server Integration Services Package

Command kısmında ilgili komutu yazıyoruz.

Resim-4

Burada dikkat etmemiz gereken bir diğer konu Database kısmında varsayılan olarak master veri tabanı geldiği için çalıştırmak istediğimiz SP nin veri tabanını seçmemiz gerekiyor ya da Command kısmında script içinde veri tabanı adını da belirtmeliyiz.

Resim-5

Advenced sayfasında oluşturduğumuz bu adım bittiğinde ne yapmasını istediğimi belirlerim. Eğer ikinci bir adım oluşturacaksak Go to the next step deyip bir başarılı çalışma sonrası bir sonraki adıma geç diyebilirim. Ancak tek adımlı bir jobumuz olacağı için başarılı çalışma sonucu jobun başarılı olarak raporlanmasını isteyip jobu bitirmek istiyorum.

Resim-6

T-SQL Komut Dosyası olduğundan, herhangi bir çıktısı varsa bu çıktıyı bir dosyaya koymak,bir tabloya veya history ye kaydetmek istediğimizde Output file, Log to table, Include step output in history kısımlarını işaretleyebiliriz. Bunları varsayılan modunda yani dahil edilmeden bırakıyorum.

Run as user kısmında eğer sysadmin rolündeysek, bu job adımını çalıştırmak için başka bir SQL Logini de seçebiliriz.

On success action
kısmının hemen altında bu adım başarısız olursa ne kadar daha çalıştırmayı deneyebileceğimizi ve bu denemeler arasında kaçar dakika beklemek istediğimizi belirliyoruz.

Resim-7

Bu adımın başarısız olması durumunda alacağı aksiyonu belirlediğimiz kısımdır. Başarısız çalışma sonucu jobun başarısız olarak raporlanmasını isteyip jobu bitirmek istiyorum.

Resim-8

Step kısmını OK deyip bitiriyoruz. Başka bir adım eklemek istediğimizde yine aynı şekilde ekleyebiliriz. Altta Start Step kısmında bu Job hangi adım ile çalışmaya başlayacak onu belirleyebiliyoruz.

Resim-9

Step kısmından sonra, Schedule sayfasına tıklıyoruz bu alan step sayfasında belirlediğimiz adımların ne zaman hangi aralıklarla çalışacağı bilgilerini barındırır.

New deyip bir Schedule oluşturuyoruz:

Resim-10

Jobun her gün çalışmasını istiyorum. Jobumuzu isimlendirip Schedule Type kısmında varsayılan olarak da gelen Recurring olarak bırakıyoruz, bu type ile bu jobun tekrar tekrar çalışmasını istiyorum buna bağlı olarak da aşağıdaki periyot bilgilerini doldurmalıyız.

Start automatically when SQL Server Agent starts: SQL Server Agent servisi başlatıldığında otomatik olarak jobu da başlatır.

Start whenever the CPUs become idle to start: Jobu CPU’lar boşta kaldığında başlatmayı sağlar.

One time: Zamanlamanın yalnızca bir kez çalışmasını istiyorsak tercih ederiz, bunun tercih edilmesi sonucu One-time occurrence alanı aktif olacaktır. Buradan da tek seferlik çalışmanın tarih ve saat bilgilerini girmemiz gerekir.

Resim-11

Frequency kısmında schedule ın hangi aralıklarla çalıştığını belirtiriz. Varsayılan olarak yukarıdaki gibi Weekly gelir ancak jobun her gün çalışmasını istiyorum. Recurs every alanında, belirlediğim Occurs alanına göre kaç günde/haftada/ayda bir tekrarlanacağını belirleyebiliriz.

Daily frequency alanında hangi saatte ya da gün içinde ne kadar sıklıkla çalıştığını belirtiriz. Günde bir kere saat 11:00’da çalışmasını istiyorum o yüzden Occurs once at işaretlenmeli. Gün içinde birkaç kere çalışmasını istiyorsak Occurs every deyip kaç saat/dakika/saniyede bir çalışması gerektiğini belirtmeliyiz.

Duration alanında Schedule ın başlangıç ve bitiş tarihlerini sınırlandırabiliriz. Start date alanı varsayılan olarak bugünün tarihi gelir, End date kısmı da varsayılan olarak No end date olarak gelir. Jobumuzun daimi olarak çalışmasını istediğim için bitiş tarihi belirlemiyorum.

Summary alanı da belirlediğimiz bu şartların bir özetini bizlere göstermektedir.

Schedule ı düzenlemeyi bitirdik OK deyip oluşturuyoruz.

Resim-12

Alerts sayfası Jobun çalışma durumunu takibini yapabilmek için alarm oluşturabilme imkanı tanır.

Resim-13

Notification sayfasında job tamamlandığında alınmasını istediğimiz aksiyonları belirtebiliriz.

Resim-14

Targets sayfası jobun hedef sunucularını yönetmek için kullanılan alandır. Kayıtlı herhangi bir server yoksa ve kendi localimde bu jobu çalıştırmak istiyorsam varsayılan olarak gelen Target local server işaretli olması gerekir.

Resim-15

Tüm aşamaları tamamladıktan sonra OK deyip jobumuzu Create ediyoruz.

Jobumuzun loglarını takip edebilmek için Job üzerine sağ tıkView History sekmesine tıklamamız yeterli olacaktır.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz. 

Referanslar

https://www.mshowto.org

TAGs:SQL Server Job Oluşturma, SQL Server Job Create, Job Steps, Job Schedule, Daily Job, SQL Server Agent, SQLAgentUserRole

VidyoConnect
Yorum Yap

Yazar Hakkında

Trakya Üniversitesi - Bilgisayar Mühendisliği mezunuyum. Öğrenim hayatım boyunca C, C++, C#, VB.NET ve ASP.NET MVC dilleri ile SQL Server veri tabanı altyapılı çeşitli otomasyon projelerinde yer aldım. İş hayatıma ERP Software Support Specialist pozisyonuyla başlayıp kısa bir süre sonra kariyerime BELBİM Elektronik Para ve Ödeme Hizmetleri A.Ş.'de Ms SQL Database Administrator pozisyonu ile yön vermiş bulunmaktayım. SQL Server ile birlikte Data Warehouse, Oracle ve PostgreSQL alanlarına ilgiliyim ve kendimi bu alanlarda geliştirmeye devam ediyorum.

Yorum Yap

Yorumlar (1)

  1. Çok yararlı ve cok güzel bir makale olmuş tebrik ederim Arzu Hanım.