SQL Server Agent İle Otomatik Görev Tanımlama Uygulaması
- Ali
- | 07 May 2025
- | SQL
Herkese merhaba Ben Ali,
Giriş
SQL Server Agent, SQL Server içerisinde zamanlanmış görevleri otomatik ve periyodik olarak geçekleştirmemizi sağlayan güçlü bir hizmettir. Veritabanı yedekleme, E-posta gönderme, düzenli veri aktarımı gibi birçok görevi zamanlayarak otomatikleştirmek mümkündür. Bu uygulamada, SQL Server Agent kullanarak belirli aralıklarla veritabanına tarih ekleyen basit bir görev (job) oluşturacağız. Kavramsal bilgilere ihtiyaç duyarsanız, "SQL Server Agent Kavramı" başlıklı makaleye göz atabilirsiniz.
SQL Server Agent, Object Explorer penceresinin en altında yer alır. Eğer adının yanında kırmızı bir işaret varsa bu, servisin çalışmadığını gösterir. Endişelenmeyin, servisi aşağıdaki yöntemlerden biriyle kolayca başlatabilirsiniz:
- Windows Servisleri Üzerinden: Başlat menüsüne
services.msc
yazıp açın. Ardından listeden SQL Server Agent (MSSQLSERVER) hizmetini bulun ve başlatın. - SQL Server Management Studio (SSMS) üzerinden: Object Explorer'da SQL Server Agent'a sağ tıklayıp Start seçeneğini kullanarak servisi başlatabilirsiniz.
Servis başlatıldığında kırmızı işaret kaybolacaktır ve SQL Server Agent aktif hale gelecektir.
Örnek Veritabanı ve Tablo Oluşturma
Bir job tanımlamadan önce test amacıyla kullanacağımız basit bir veritabanı ve tablo oluşturalım:
CREATE DATABASE SSAGENT;
GO
USE SSAGENT;
GO
CREATE TABLE DATES (
ID INT IDENTITY PRIMARY KEY,
DATE_ DATETIME
);
GO
INSERT INTO DATES (DATE_)
VALUES (GETDATE());
Bu işlemi, SQL Server Agent aracılığıyla belirli aralıklarla otomatik hale getireceğiz.
Yeni Bir Job Oluşturmak
Object Explorer üzerinden sırasıyla şu adımları izleyin:
- SQL Server Agent > Jobs > New Job
General Sekmesi:
- Name: Örneğin "Otomatik Tarih At"
- Owner: Görevi hangi kullanıcı çalıştıracak ise o kullanıcıyı seçiyoruz.
- Description: Bu job için isteğe bağlı bir açıklama yazabiliriz.
Steps Sekmesi:
- New butonuna tıklayarak yeni bir adım oluşturun.
- Step Name: Otomatik Tarih Ekle
- Type: Transact-SQL script (T-SQL)
- Database: SSAGENT
- Command:
INSERT INTO DATES (DATE_) VALUES (GETDATE());
Schedules Sekmesi:
- Name: Örneğin “10 Saniyede Bir”
- Schedule Type: Recurring (tekrarlı)
- Frequency:
- Occurs: Daily (günlük)
- Daily Frequency: Every 10 seconds (SSMS arayüzüne göre bu saniyelik ayarlar detaylı konfigürasyon gerektirebilir)
Alternatif zamanlama seçenekleri:
- Start automatically when SQL Server Agent starts: SQL Server Agent başladığında bir kez çalışır.
- Start whenever the CPUs become idle: CPU’lar boşta kaldığında çalışır.
- One time: Tek seferlik çalıştırma.
Kapanış
SQL Server Agent, SQL Server yönetimini kolaylaştıran ve iş sürekliliğini sağlayan önemli bir bileşendir. Bu uygulama ile belirli aralıklarla veri ekleyen basit bir otomasyonun nasıl kurulduğunu öğrendik. Daha karmaşık iş akışları için birden fazla adım, koşul ve hata yönetimi gibi özellikleri de keşfetmenizi öneririm. Veritabanı bakım ve yönetim görevlerini güvenilir şekilde otomatikleştirmek için SQL Server Agent’tan en iyi şekilde yararlanabilirsiniz.