Kayıt ol
Tolga CEYHANTolga CEYHAN
Bildiri Daha fazla göster
Yazı Tipi BoyutlandırıcıAaa
  • Anasayfa
  • Rehberler & DeneyimlerRehberler & DeneyimlerRehberler & Deneyimler
    • TeknolojiTeknolojiTeknoloji
    • WordPressWordPressWordPress
    • Genel YaşamGenel YaşamGenel Yaşam
  • SanallaştırmaSanallaştırmaSanallaştırma
    • Hyper-VHyper-VHyper-V
  • Sistem Yönetimi
    • Ağ ve GüvenlikAğ ve GüvenlikAğ ve Güvenlik
    • Sistem GüvenliğiSistem GüvenliğiSistem Güvenliği
    • AzureAzureAzure
    • Active DirectoryActive DirectoryActive Directory
    • File ServerFile ServerFile Server
    • Group Policy (Grup İlkesi)Group Policy (Grup İlkesi)Group Policy (Grup İlkesi)
    • PowerShellPowerShellPowerShell
    • SQL ServerSQL ServerSQL Server
    • LinuxLinuxLinux
  • System Center
    • SCCMSCCMSCCM
  • Windows İşletim SistemleriWindows İşletim SistemleriWindows İşletim Sistemleri
    • Windows ServerWindows ServerWindows Server
      • Windows Server 2025
      • Server 2016
      • Server 2019
    • Windows 11
    • Windows 10
  • Veri & Yedekleme
    • Veeam Backup & ReplicationVeeam Backup & ReplicationVeeam Backup & Replication
Okuma: PowerShell SQL Server Backup Otomasyonu – Full Script
Paylaş
Tolga CEYHANTolga CEYHAN
Yazı Tipi BoyutlandırıcıAaa
  • Anasayfa
  • Hakkımda
  • İletisim
Arama
  • Anasayfa
  • Rehberler & DeneyimlerRehberler & DeneyimlerRehberler & Deneyimler
    • TeknolojiTeknolojiTeknoloji
    • WordPressWordPressWordPress
    • Genel YaşamGenel YaşamGenel Yaşam
  • SanallaştırmaSanallaştırmaSanallaştırma
    • Hyper-VHyper-VHyper-V
  • Sistem Yönetimi
    • Ağ ve GüvenlikAğ ve GüvenlikAğ ve Güvenlik
    • Sistem GüvenliğiSistem GüvenliğiSistem Güvenliği
    • AzureAzureAzure
    • Active DirectoryActive DirectoryActive Directory
    • File ServerFile ServerFile Server
    • Group Policy (Grup İlkesi)Group Policy (Grup İlkesi)Group Policy (Grup İlkesi)
    • PowerShellPowerShellPowerShell
    • SQL ServerSQL ServerSQL Server
    • LinuxLinuxLinux
  • System Center
    • SCCMSCCMSCCM
  • Windows İşletim SistemleriWindows İşletim SistemleriWindows İşletim Sistemleri
    • Windows ServerWindows ServerWindows Server
    • Windows 11
    • Windows 10
  • Veri & Yedekleme
    • Veeam Backup & ReplicationVeeam Backup & ReplicationVeeam Backup & Replication
Mevcut bir hesabınız var mı ? Kayıt ol
Bizi takip edin
  • Gizlilik Politikası
  • KVKK (Kişisel Verilerin Korunması Kanunu)
  • Çerez Politikası
  • Şartlar ve Koşullar
© 2022 Foxiz News Network. Ruby Design Company. All Rights Reserved.
Tolga CEYHAN > Sistem Yönetimi > PowerShell > PowerShell SQL Server Backup Otomasyonu – Full Script
PowerShellSistem GüvenliğiSistem YönetimiSQL ServerVeri & Yedekleme

PowerShell SQL Server Backup Otomasyonu – Full Script

Tolga CEYHAN
Son güncelleme: 27 Ocak 2026 23:51
Tolga CEYHAN
Paylaş
PowerShell SQL Server Backup
Paylaş

PowerShell SQL Server Backup Otomasyonu – Full Script

PowerShell SQL Server backup otomasyonu, kurumsal ortamlarda SQL Server veritabanlarının düzenli, tutarlı ve geri yüklenebilir şekilde yedeklenmesini sağlayan en pratik yöntemlerden biridir. Özellikle birden fazla SQL Server instance bulunan yapılarda, PowerShell SQL Server backup yaklaşımı ile yedekleme sürecini script tabanlı ve merkezi yönetilebilir hale getirmek mümkündür.

Contents
PowerShell SQL Server Backup Otomasyonu – Full ScriptNeden PowerShell tabanlı SQL yedekleme ?Neden SQL Server Agent Yerine PowerShell?PowerShell ile SQL Server Yönetiminin Sağladığı AvantajlarÖn GereksinimlerPowerShell ile SQL Server Backup Otomasyon Script’iScript Nasıl Çalışır? (Adım Adım)PowerShell SQL Server Yedekleme Neden Her Senaryoda Yeterli Değildir?Sık Karşılaşılan PowerShell SQL Backup Hataları ve ÇözümleriPowerShell Script mi, Profesyonel SQL Backup Çözümü mü?Zamanlanmış Görev ile Otomatik ÇalıştırmaDetaylı Bilgi İçin Microsoft Learn

PowerShell SQL Server backup yaklaşımıyla, tüm SQL yedekleme sürecini script tabanlı, sürüm kontrol edilebilir ve merkezi yönetilebilir hale getirmek mümkündür. Özellikle birden fazla SQL Server instance bulunan ortamlarda bu yaklaşım ciddi operasyonel avantaj sağlar.

Bu yazıda, tek script ile tüm SQL veritabanlarını yedekleyen, log tutan ve zamanlanabilir profesyonel bir PowerShell SQL Server backup otomasyonu hazırlayacağız.

Neden PowerShell tabanlı SQL yedekleme ?

Kurumsal ortamlarda SQL Server yedekleme stratejisi yalnızca “backup alınıyor mu?” sorusuyla sınırlı değildir. Asıl önemli olan; yedeklerin güvenli, izlenebilir, geri yüklenebilir ve standart olmasıdır.

SQL Server Agent job’ları zamanla aşağıdaki problemleri doğurabilir:

  • Job’ların GUI üzerinden yönetilmesi

  • Standart dışı yapılandırmalar

  • Versiyon kontrolünün zor olması

  • Hata ve log takibinin dağınık hale gelmesi

PowerShell SQL Server backup otomasyonu ile:

  • Tüm SQL Server’larda aynı script kullanılabilir

  • Değişiklikler Git ile versiyonlanabilir

  • Loglama merkezi hale gelir

  • Otomasyon süreçleri dokümante edilir

Neden SQL Server Agent Yerine PowerShell?

SQL Server Agent job’ları küçük ve tekil ortamlarda iş görse de, kurumsal yapılarda yönetimi zorlaşır. Farklı sunucularda farklı job’lar oluşur ve zamanla bu job’ların kim tarafından oluşturulduğu, ne amaçla çalıştığı belirsizleşir.

PowerShell tabanlı SQL Server backup yaklaşımı:

  • Taşınabilir

  • Okunabilir

  • Otomasyon sistemlerine entegre edilebilir

Bu sayede yedekleme süreci kişiye bağımlı olmaktan çıkar, kurumsal bir standarda dönüşür.

PowerShell ile SQL Server Yönetiminin Sağladığı Avantajlar

PowerShell SQL Server backup otomasyonu sayesinde:

  • Tüm veritabanlarını otomatik yedekleyebilirsiniz

  • Yedekleri tarih damgalı klasörlerde saklayabilirsiniz

  • Detaylı log dosyaları oluşturabilirsiniz

  • Windows Task Scheduler ile tamamen otomatik bir yapı kurabilirsiniz

Bu yapı özellikle lab, test ve küçük–orta ölçekli üretim ortamlarında son derece etkilidir.

Ön Gereksinimler

SQL Server yedekleme script’ini kullanmadan önce aşağıdaki bileşenlerin hazır olması gerekir:

  • PowerShell 5.1 veya üzeri

  • SQL Server Management Studio (SSMS) veya SMO bileşenleri

  • Yedeklerin yazılacağı yeterli disk alanı (örneğin D:\SQLBackups)

  • Script’i çalıştıran kullanıcının SQL Server üzerinde sysadmin yetkisine sahip olması

SMO nesnelerini kullanacağımız için aşağıdaki .NET assembly’leri yüklenecektir:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null

PowerShell ile SQL Server Backup Otomasyon Script’i

PowerShell SQL Server backup otomasyonu script örneği

 

Aşağıdaki script:

  • Belirtilen SQL instance’a bağlanır

  • tempdb hariç tüm veritabanlarını FULL backup alır

  • Günlük tarihli klasörler oluşturur

  • Her veritabanı için .bak dosyası üretir

  • Log dosyasına tüm işlemleri yazar

⚠️ Script aynen korunmuştur.

<#
.SYNOPSIS
PowerShell SQL Server backup otomasyon script’i
.DESCRIPTION
Belirtilen SQL instance üzerindeki tüm veritabanlarını (tempdb hariç)
günlük klasörlere FULL backup olarak yedekler ve log dosyası oluşturur.
#>

param(
[string]$SqlInstance = "localhost\SQLEXPRESS",
[string]$BackupRoot = "D:\SQLBackups"
)

$DateTag = Get-Date -Format "yyyyMMdd"
$BackupPath = Join-Path $BackupRoot $DateTag
$LogFile = Join-Path $BackupPath "BackupLog_$DateTag.txt"

if (-not (Test-Path $BackupPath)) {
New-Item -Path $BackupPath -ItemType Directory | Out-Null
}

function Write-Log {
param([string]$Message)
$time = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
"$time - $Message" | Out-File -FilePath $LogFile -Append
}

Write-Log "PowerShell SQL Server backup işlemi başlatıldı. Instance: $SqlInstance"

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null

$Server = New-Object Microsoft.SqlServer.Management.Smo.Server $SqlInstance
$Databases = $Server.Databases | Where-Object { $_.IsSystemObject -eq $false -and $_.Name -ne "tempdb" }

foreach ($Db in $Databases) {
try {
$DbName = $Db.Name
$BackupFile = Join-Path $BackupPath ("{0}_{1}.bak" -f $DbName, $DateTag)

Write-Log "Veritabanı yedekleme başlıyor: $DbName"

$Backup = New-Object Microsoft.SqlServer.Management.Smo.Backup
$Backup.Action = "Database"
$Backup.Database = $DbName
$Backup.Devices.AddDevice($BackupFile, "File")
$Backup.Initialize = $true
$Backup.Checksum = $true
$Backup.ContinueAfterError = $false

$Backup.SqlBackup($Server)

Write-Log "Yedekleme tamamlandı: $DbName -> $BackupFile"
}
catch {
Write-Log "HATA: $DbName için yedekleme başarısız. Ayrıntı: $($_.Exception.Message)"
}
}

Write-Log "Tüm veritabanları için PowerShell SQL Server backup işlemi tamamlandı."

Bu script’i örneğin C:\Scripts\SqlFullBackup.ps1 olarak kaydedebilirsin.

Script Nasıl Çalışır? (Adım Adım)

Script çalıştığında önce tarih bazlı bir backup klasörü oluşturur. Ardından SMO nesneleri aracılığıyla SQL Server instance’a bağlanır ve sistem veritabanları hariç tüm veritabanlarını listeler.

Her veritabanı için ayrı bir .bak dosyası oluşturulur, checksum doğrulaması yapılır ve tüm işlemler log dosyasına yazılır. Bu yapı, hem manuel hem de zamanlanmış çalışmalarda sürecin izlenebilir olmasını sağlar.

PowerShell SQL Server Yedekleme Neden Her Senaryoda Yeterli Değildir?

PowerShell SQL Server backup script’leri güçlüdür ancak her üretim senaryosu için yeterli değildir.

Bu script örneğinde:

  • Backup dosyaları şifrelenmemektedir

  • Yedekler yalnızca local disk üzerinde tutulmaktadır

  • Ransomware, disk arızası veya silinme senaryolarına karşı ek koruma yoktur

Bu nedenle PowerShell SQL Server backup otomasyonu genellikle ilk katman çözüm olarak değerlendirilmelidir.

Sık Karşılaşılan PowerShell SQL Backup Hataları ve Çözümleri

Access Denied Hatası
Script’i çalıştıran kullanıcının SQL Server üzerinde sysadmin yetkisi kontrol edilmelidir.

Backup Device Failure
Yedek alınan diskte yeterli boş alan yoksa backup başarısız olur.

SMO Assembly Load Error
SMO bileşenleri yüklü değilse script çalışmaz. SSMS veya SQL Feature Pack kurulmalıdır.

Bu hataların log dosyasında tutulması, özellikle zamanlanmış görevlerde kritik öneme sahiptir.

PowerShell Script mi, Profesyonel SQL Backup Çözümü mü?

ÖzellikPowerShell ScriptProfesyonel Çözüm
Encryption❌✅
Monitoring❌✅
Cloud / Offsite❌✅
Merkezi Yönetim❌✅

PowerShell script’leri lab ve küçük ortamlar için idealdir. Ancak büyük ve kritik sistemlerde profesyonel SQL backup çözümleri tercih edilmelidir.

Zamanlanmış Görev ile Otomatik Çalıştırma

Script’i her gece saat 02:00’de çalıştırmak için:

schtasks /create /sc daily /st 02:00 /tn "SQLFullBackup" /tr "powershell.exe -File C:\Scripts\SqlFullBackup.ps1"

Bu sayede PowerShell kullanarak SQL Server backup otomasyonu tamamen insan müdahalesi olmadan çalışır.

PowerShell tabanlı SQL yedekleme, SQL altyapısını daha standart, dokümante, versiyonlanabilir ve kolay yönetilebilir hale getirir. Script tabanlı yaklaşım, otomasyon kültürünü güçlendirir ve operasyonel hataları azaltır.

Ancak üretim ortamlarında güvenlik, izleme ve felaket kurtarma senaryoları mutlaka profesyonel çözümlerle desteklenmelidir. Bu script, sağlam bir temel sunarak SQL Server yönetiminde otomasyonun ilk adımını oluşturur.

PowerShell ve SQL Server yönetimi konusunda resmi ve güncel dokümantasyonlara erişmek, script tabanlı çözümlerin doğru ve güvenli şekilde uygulanması açısından önemlidir. Microsoft tarafından sağlanan resmi kaynaklar, PowerShell SQL Server backup senaryoları için referans niteliğindedir.

Detaylı Bilgi İçin Microsoft Learn
ETİKETLENDİ:backupotomasyonpowershellsmosql serververitabanı yönetimiYedekleme

Haber Bültenine Kaydolun

Gelişmeleri takip edin! Son dakika haberlerini doğrudan e-posta kutunuza alın.
[mc4wp_form id=310]
Kaydolarak şartlarımızı kabul etmiş olursunuz. Kullanım Şartları ve verileri saklamamızı kabul edersinizGizlilik Politikası. Dilediğiniz zaman aboneliğinizi iptal edebilirsiniz.
Bu makaleyi paylaş
Facebook Twitter Bağlantıyı kopyala Yazdır
Paylaş
By Tolga CEYHAN
Takip et:
Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.
Önceki makale PowerShell Windows Server Health Check ve Otomatik Raporlama
Sonraki Makale Windows LAPS Configuration Guide (Intune + GPO + Azure AD)
Yorum Yap

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bunlarda İlginizi Çekebilir

Ağ ve GüvenlikFile ServerFirewall-Güvenlik DuvarıPowerShellRehberler & DeneyimlerSistem Güvenliği

NTFS Permission Tasarımı ve AGDLP Modeli Rehberi

Tolga CEYHAN Tolga CEYHAN 8 Min Read
File ServerRehberler & DeneyimlerSistem Yönetimi

Windows File Server Güvenliği Rehberi

Tolga CEYHAN Tolga CEYHAN 4 Min Read
Genel YaşamRehberler & DeneyimlerTeknoloji

Blockchain Mantığı ile PowerShell Log Bütünlüğü

Tolga CEYHAN Tolga CEYHAN 5 Min Read
  • Anasayfa
  • Hakkımda
  • İletisim

Arama Yap..

Tolga CEYHANTolga CEYHAN
Bizi takip edin
© 2017 Tolga CEYHAN. All Rights Reserved.
  • Gizlilik Politikası
  • KVKK (Kişisel Verilerin Korunması Kanunu)
  • Çerez Politikası
  • Şartlar ve Koşullar
Go to mobile version