yedek SQL Server 2025'e kadar kapsamlı rehberimizle veritabanımızda. Tüm beceri seviyeleri için adım adım talimatlar ve en iyi uygulamalar.
1. Giriş SQL Server yedek
1.1 Nedir SQL Server Yedekleme?
SQL Server Yedekleme, veri kaybına karşı koruma sağlamak için veritabanı dosyalarınızın kopyalarını oluşturma işlemidir. Yedekleme, veritabanınızın belirli bir andaki durumunu yakalar ve donanım arızaları, insan hataları veya felaketler meydana gelirse verileri geri yüklemenize olanak tanır.
SQL Server Yedeklemeleri varsayılan olarak tüm veritabanı nesnelerini (tablolar, saklı yordamlar, görünümler, dizinler ve işlem günlükleri dahil) içeren .bak dosyalarında depolar.
1.2 Neden SQL Server Yedekleme Kritik Önem Taşıyor
Veritabanı yedekleri, veri kaybına karşı son savunma hattınızdır. Uygun yedeklemeler olmadan kuruluşunuz şu risklerle karşı karşıya kalabilir:
- Kalıcı veri kaybı donanım arızalarından veya bozulmalardan
- Uzun süreli kesinti kurtarma girişimleri sırasında
- İş kesintisi ve gelir kaybı
- Uyumluluk ihlalleri veriler kurtarılamazsa
- itibar hasarı hizmet kesintilerinden
Düzenli SQL Server Yedeklemeler iş sürekliliğini sağlar ve veri korumasına ilişkin düzenleyici gereklilikleri karşılar.
1.3 Yaygın Veri Kaybı Senaryoları
Veri kaybının ne zaman meydana geldiğini anlamak, etkili bir yedekleme stratejisi geliştirmenize yardımcı olur:
- Donanım arızaları: Disk çökmeleri, sunucu arızaları veya depolama sistemi arızaları
- İnsan hataları: Kazara silmeler, hatalı güncellemeler veya düşürülen tablolar
- Yazılım sorunları: Uygulama hataları, bozuk güncellemeler veya sistem çökmeleri
- Güvenlik ihlalleri: Fidye yazılımı saldırıları, kötü amaçlı silmeler veya yetkisiz erişim
- Doğal afetler: Veri merkezlerini etkileyen yangınlar, seller veya elektrik kesintileri
2. anlayış SQL Server Yedekleme Türleri
SQL Server her biri farklı kurtarma ihtiyaçlarını ve depolama gereksinimlerini karşılayan birden fazla yedekleme türünü destekler.
2.1 Tam Yedekleme
Tam yedekleme, tüm veri dosyaları ve kurtarma için gereken işlem günlüğünün bir kısmı dahil olmak üzere tüm veritabanınızın tam bir kopyasını oluşturur.
2.1.1 Tam Yedekleme Ne Zaman Kullanılır?
Tam yedeklemeler şunlar için idealdir:
- Diğer yedekleme türleri için bir temel oluşturma
- Yedekleme süresinin kabul edilebilir olduğu küçük ve orta ölçekli veritabanları
- Haftalık veya aylık yedekleme planları
- Nadiren değişiklik yapılan veritabanları
2.1.2 Tam Yedeklemenin Avantajları ve Sınırlamaları
Avantajları:
- En basit geri yükleme süreci – tek bir dosya her şeyi içerir
- Kendi kendine yeten ve diğer yedeklemelerden bağımsız
- Tam veritabanı geri yüklemesi için en hızlı kurtarma süresi
Sınırlamalar:
- Önemli depolama alanı gerektirir
- Büyük veritabanları için daha uzun yedekleme süresi
- Yedekleme işlemleri sırasında daha yüksek kaynak tüketimi
2.2 Diferansiyel Yedekleme
Farklı yedekleme, yalnızca son tam yedeklemeden bu yana gerçekleşen veri değişikliklerini yakalar ve böylece yedekleme süresini ve depolama gereksinimlerini azaltır.
2.2.1 Diferansiyel Yedekleme Nasıl Çalışır?
Farklı yedeklemeler, değiştirilen kapsamları kullanarak değişiklikleri izler. Geri yükleme yaptığınızda, SQL Server Önce en son tam yedeklemeyi, ardından en son diferansiyel yedeklemeyi uygular.
2.2.2 Tam ve Diferansiyel Yedekleme
| Görünüş | Tam Yedekleme | Diferansiyel Yedekleme |
|---|---|---|
| Beden | Tam veritabanı | Yalnızca son tam yedeklemeden bu yana yapılan değişiklikler |
| Yedekleme Süresi | uzun | Tam doludan daha hızlı |
| Geri Yükleme Süreci | Tek dosya geri yükleme | Tam + diferansiyel gerektirir |
| Depolama Gerekli | Çoğu alan | Başlangıçta daha az alan, zamanla büyür |
2.3 İşlem Günlüğü Yedekleme
İşlem günlüğü yedeklemeleri, son günlük yedeklemesinden bu yana gerçekleşen tüm işlemleri yakalayarak, belirli bir noktada kurtarmayı mümkün kılar.
2.3.1 İşlem Günlüklerini Anlama
İşlem günlüğü, veritabanınızdaki her değişikliği kaydeder. Günlük yedeklemeleri, günlüğün etkin olmayan kısmını keserek, sonsuza kadar büyümesini ve diskinizi doldurmasını önler.
2.3.2 Noktasal Kurtarma
İşlem günlüğü yedeklemeleri, veritabanınızı günlük yedeklemesindeki belirli bir ana geri yüklemenize olanak tanır. Bu, yanlışlıkla yapılan veri değişiklikleri veya silinmelerinden kurtarma için çok önemlidir.
Belirli bir noktada kurtarma işlemini gerçekleştirmek için şunlara ihtiyacınız vardır:
- Son tam yedekleme
- En son diferansiyel yedekleme (isteğe bağlı)
- Tam/farklı yedeklemeden hedef zamanınıza kadar olan tüm işlem günlüğü yedeklemeleri.
2.4 Kuyruk Günlüğü Yedekleme
Kuyruk günlüğü yedeklemeleri, henüz yedeklenmemiş günlük kayıtlarını yakalayarak veri kaybını önler ve sağlam bir günlük zincirini korur. Bir veriyi kurtarmadan önce SQL Server Veritabanını en son zaman noktasına kadar yedeklemek için, işlem günlüğünün son kısmını yedeklemelisiniz. Son kayıt yedeği, veritabanı kurtarma planında önemli olan son yedektir.

Not: Tüm geri yükleme senaryoları kuyruk günlüğü yedeklemesi gerektirmez. Kurtarma noktası daha önceki bir günlük yedeklemesinde yer alıyorsa, kuyruk günlüğü yedeklemesine ihtiyacınız yoktur. Ayrıca, bir veritabanını taşıyorsanız veya değiştiriyorsanız (üzerine yazıyorsanız) ve en son yedeklemeden sonraki bir zamana geri yüklemeniz gerekmiyorsa, kuyruk günlüğü yedeklemesi gereksizdir.
2.4.1 Tail-Log Yedeklemeleri Ne Zaman Gereklidir?
Aşağıdaki senaryolar, tail-log yedeklemesi almanız gereken zamanı açıklamaktadır:
Çevrimiçi Veritabanı Geri Yükleme: Veritabanı çevrimiçiyse ve veritabanında bir geri yükleme işlemi gerçekleştirmeyi planlıyorsanız, öncelikle günlüğün sonunu yedekleyin. Çevrimiçi bir veritabanında hata oluşmasını önlemek için, yedekleme yaparken BACKUP Transact-SQL ifadesinin WITH NORECOVERY seçeneğini kullanmalısınız. SQL Server veri tabanı.
Çevrimdışı Veritabanı Kurtarma: Veritabanı çevrimdışıysa ve başlatılamıyorsa ve veritabanını geri yüklemeniz gerekiyorsa, öncelikle işlem günlüğünün son kısmını yedekleyin. Bu aşamada hiçbir işlem gerçekleşemeyeceğinden, WITH NORECOVERY seçeneğini kullanmak isteğe bağlıdır. Bu senaryoda NORECOVERY, esasen yalnızca kopyalama amaçlı işlem günlüğü yedeklemesiyle aynıdır.
Hasarlı Veritabanı Yedeklemesi: Bir veritabanı hasarlıysa, BACKUP ifadesinin WITH CONTINUE_AFTER_ERROR seçeneğini kullanarak bir kuyruk günlüğü yedeği almayı deneyin. Hasarlı bir veritabanında, günlüğün kuyruk bölümünün yedeklenmesi yalnızca günlük dosyaları hasarsızsa, veritabanı kuyruk günlüğü yedeklemelerini destekleyen bir durumdaysa ve toplu olarak kaydedilmiş herhangi bir değişiklik içermiyorsa başarılı olabilir. Kuyruk günlüğü yedeği oluşturulamıyorsa, en son MS sürümünden sonra gerçekleştirilen tüm işlemler SQL Server Yedek veritabanları kayboldu.
2.4.2 Tail-Log Yedeklemeleri için Temel Seçenekler
İYİLEŞME YOKSA: Daha sonra geri yüklemeyi planladığınız çevrimiçi bir veritabanının günlük kaydının bir kısmını yedekliyorsanız WITH NORECOVERY seçeneğini kullanın. NORECOVERY, veritabanını çevrimdışı duruma getirir. Ayrıca yedekleme de yapabilirsiniz. SQL Server Çevrimdışı bir veritabanının kuyruk günlüğü. Veritabanını çevrimdışı bırakmak istiyorsanız WITH NORECOVERY kullanın. COPY_ONLY veya NO_TRUNCATE seçeneğini belirtmediğiniz sürece günlüğün kesileceğini unutmayın.
DEVAM_ET_HATASIYLA: CONTINUE_AFTER_ERROR komutunu yalnızca hasarlı bir veritabanının sonunu yedekliyorsanız kullanın. Hasarlı bir veritabanındaki bir günlük kaydının sonunu yedeklediğinizde, günlük yedeklemelerinde normalde yakalanan bazı meta veriler kullanılamayabilir.
2.5 Yalnızca Kopyalama Yedeklemesi
Yalnızca kopyalama yedeklemeleri, normal yedekleme sırasını etkilemeden bağımsız bir yedekleme oluşturur. Farklı yedekleme zincirlerini veya işlem günlüğü sürekliliğini bozmaz.
Yalnızca kopyalamaya yönelik yedeklemeleri şunlar için kullanın:
- Test veya geliştirme veritabanı kopyaları oluşturma
- Planlanmış yedeklemeleri etkilemeden özel yedeklemeler
- Büyük değişiklikler veya testlerden önce yedekleme yapın
2.6 Dosya ve Dosya Grubu Yedekleme
Dosya ve dosya grubu yedeklemeleri, tüm veritabanını değil, belirli veritabanı dosyalarını veya dosya gruplarını hedefler. Bu yaklaşım, her şeyi yedeklemenin çok uzun sürdüğü çok büyük veritabanları için iyi sonuç verir.
Avantajları şunlardır:
- Büyük veritabanları için daha hızlı yedekleme işlemleri
- Birden fazla dosya grubunun paralel yedeklenmesi
- Granüler kurtarma seçenekleri
- Salt okunur dosya grupları için optimize edilmiş yedekleme zamanlamaları
2.7 Kısmi Yedekleme
Kısmi yedeklemeler, birincil dosya grubundaki tüm verileri ve salt okunur dosya grupları hariç tüm okunabilir/yazılabilir dosya gruplarını içerir. Bu, salt okunur dosya gruplarında depolanan statik geçmiş verileri içeren veritabanları için yedekleme boyutunu ve süresini azaltır.
3. SQL Server Kurtarma Modelleri
SQL Server Kurtarma modelleri hangi yedekleme türlerinin mevcut olduğunu ve işlem günlüklerinin nasıl yönetileceğini belirler.
3.1 Basit Kurtarma Modeli
3.1.1 Özellikler ve Kullanım Örnekleri
Basit kurtarma, her kontrol noktasından sonra işlem günlüğünü otomatik olarak keser ve günlük yedeklemelerine gerek kalmadan alan geri kazanır.
En iyi:
- Geliştirme ve test veritabanları
- Yedeklemeler arasında veri kaybının kabul edilebilir olduğu veritabanları
- Tekrar çalıştırılabilen ETL süreçlerine sahip veri ambarları
- Salt okunur veya raporlama veritabanları
3.1.2 Mevcut Yedekleme Seçenekleri
Basit kurtarma şunları destekler:
- Tam yedeklemeler
- Diferansiyel yedeklemeler
- Dosya ve dosya grubu yedeklemeleri
- Yalnızca kopyalama yedeklemeleri
İşlem günlüğü yedekleri kullanılamaz basit kurtarma modelinde.
3.2 Tam Kurtarma Modeli
3.2.1 Özellikler ve Avantajlar
Tam kurtarma, tüm işlemleri kaydeder ve yedekleyene kadar günlük kayıtlarını korur. Bu, işlem günlüğü yedeklemesi içindeki herhangi bir noktaya tam veri kurtarma olanağı sağlar.
Anahtar faydaları:
- Minimum veri kaybı potansiyeli
- Noktasal geri yükleme yeteneği
- Günlük gönderimini ve veritabanı yansıtmayı destekler
- Maksimum kurtarma esnekliği
3.2.2 İşlem Günlüğü Yönetimi
Tam kurtarma sırasında, aşağıdakileri yapmak için düzenli işlem günlüğü yedeklemeleri gerçekleştirmelisiniz:
- İşlem günlüğünün disk alanını doldurmasını önleyin
- Sürekli bir yedekleme zincirini koruyun
- Noktasal kurtarmayı etkinleştir
- Günlük dosyası büyümesini kontrol edin
Tipik yedekleme programı: tam yedeklemeler haftalık, farklı yedeklemeler günlük, günlük yedeklemeler 15-30 dakikada bir yapılır.
3.3 Toplu Kayıtlı Kurtarma Modeli
3.3.1 Toplu Kayıt Ne Zaman Kullanılır
Toplu olarak kaydedilen kurtarma, düzenli işlemler için tam günlük kaydını korurken, BULK INSERT, SELECT INTO ve dizin yeniden oluşturma gibi toplu işlemleri en az düzeyde kaydeder.
Toplu olarak kaydedilen kurtarmayı şu durumlarda kullanın:
- Büyük toplu ithalat işlemlerinin gerçekleştirilmesi
- Büyük tablolarda dizinlerin yeniden oluşturulması
- Minimum günlük kaydından faydalanan işlemleri yürütme
- Belirli işlemler sırasında işlem günlüğü boyutunun azaltılması gerekiyor
3.3.2 Sınırlamalar ve Hususlar
Önemli sınırlamalar:
- Toplu işlemler sırasında belirli bir noktada geri yükleme kullanılamaz
- Toplu işlemler gerçekleştiğinde günlük yedekleri daha büyüktür
- Gerektiğinde tam ve toplu kayıt arasında geçiş yapılmalıdır
3.4 Doğru Kurtarma Modelini Seçme
İş gereksinimlerinize göre kurtarma modelinizi seçin:
| Kurtarma Modeli | Veri Kaybı Riski | Belirli Bir Noktada Kurtarma | En |
|---|---|---|---|
| Basit | Son yedeklemeden bu yana değişiklikler | Yok hayır | Geliştirme/test, kabul edilebilir veri kaybı |
| Her Şey Dahil | Minimum (genellikle dakika) | Evet | Üretim veritabanları, kritik veriler |
| Toplu Kayıtlı | Son günlük yedeklemesinden bu yana değişiklikler | Toplu işlemler sırasında sınırlıdır | Toplu işlemler sırasında geçici kullanım |
4. yedek SQL Server SSMS Kullanarak Veritabanı
4.1 Ön Koşullar ve Hazırlık
Yedeklemeden önce SQL Server veritabanı, şunları sağlayın:
- Uygun izinlere sahipsiniz (db_owner veya BACKUP DATABASE izni)
- Yedekleme dosyası için yeterli disk alanı
- SQL Server Yönetim Stüdyosu (SSMS) kuruldu
- Ağ konumlarına yedekleme yapılırsa erişilebilir ağ yolları
4.2 Adım Adım: SSMS ile Tam Yedekleme
Bilgisayarınızın tam yedeğini oluşturmak için şu adımları izleyin: SQL Server SSMS kullanılarak veritabanı oluşturuldu.
4.2.1 Açılış SQL Server Yönetim Stüdyosu
- Başlatmak SQL Server Yönetim Stüdyosu
- Sunucu adınızı girin Sunucu adı alan
- Kimlik doğrulama yönteminizi seçin
- Tıkla Bağlantı Kurun
4.2.2 Veritabanı ve Yedekleme Seçeneklerini Seçme
- In Nesne Gezgini, Genişletin veritabanları düğüm
- Yedeklemek istediğiniz veritabanına sağ tıklayın
- Seç Görevler -> Yedekleyin
- içinde Yedek veritabanı pencere, veritabanı adını doğrulayın
- Seç Her Şey Dahil gibi Yedekleme türü
4.2.3 Yedekleme Hedefini Yapılandırma
- Varış yeritık Kaldır varsayılan yolu temizlemek için (gerekirse)
- Tıkla Ekle yeni bir yedekleme konumu belirtmek için
- Dosya yolunu ve adını girin .bak uzatma
- Tıkla OK varış noktasını onaylamak için
4.2.4 Advanced Backup Ayarlar
- Tıkla Medya Seçenekleri sol panelde
- Yedekleme seçeneklerini seçin:
- Mevcut tüm yedekleme kümelerinin üzerine yaz – Mevcut yedekleri değiştirir
- Mevcut yedekleme kümesine ekle – Mevcut yedekleme dosyasına ekler
- Tıkla yedekleme Seçenekleri sol panelde
- İsteğe bağlı ayarları yapılandırın:
- Yedeklemeyi sıkıştır – Yedekleme dosyasının boyutunu azaltır
- Yedeklemeyi şifrele – Hassas verileri korur
- Bittiğinde yedeklemeyi doğrulayın – Yedekleme bütünlüğünü kontrol eder
4.2.5 Yedeklemenin Yürütülmesi
- Tüm ayarları inceleyin Yedek veritabanı pencere
- Tıkla OK yedekleme işlemine başlamak için
- Yedeklemenin tamamlanmasını bekleyin
- Yedekleme tamamlandığında bir başarı mesajı görüntülenir
- Tıkla OK onay iletişim kutusunu kapatmak için
4.3 SSMS ile Farklı Yedekleme Oluşturma
Farklı bir yedekleme oluşturmak için tam yedeklemeyle aynı adımları izleyin, ancak şunu seçin: Diferansiyel 4.2.2 adımındaki yedekleme türü olarak. Farklı yedeklemelerin temel olarak önceden tam bir yedekleme gerektirdiğini unutmayın.
4.4 SSMS ile İşlem Günlüğü Yedeği Oluşturma
İşlem günlüğü yedeklemeleri yalnızca Tam veya Toplu Kayıtlı kurtarma modellerini kullanan veritabanları için kullanılabilir.
- Veritabanına sağ tıklayın Nesne Gezgini
- Seç Görevler -> Yedekleyin
- Klinik İşlem Günlüğü yedekleme türü olarak
- Hedefi ve seçenekleri gerektiği gibi yapılandırın
- Tıkla OK günlük yedeğini oluşturmak için
4.5 SSMS ile Yalnızca Kopyalama Yedeklemesi Oluşturma
Yalnızca kopyalama yedeklemeleri normal yedekleme dizinizi etkilemez.
- Tam yedekleme oluşturmak için adımları izleyin
- içinde yedekleme Seçenekleri Kanal
- kontrol Yalnızca kopyalama yedeklemesi seçenek
- Yedekleme işlemini normal şekilde tamamlayın
5. yedek SQL Server T-SQL Kullanarak Veritabanı
5.1 Temel YEDEKLEME VERİTABANI Sözdizimi
T-SQL BACKUP DATABASE komutu, veritabanı üzerinde programatik kontrol sağlar. SQL Server yedeklemeler.
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
5.2 Tam Yedekleme T-SQL Komutları
5.2.1 Basit Tam Yedekleme Komut Dosyası
Minimum seçeneklerle temel bir tam yedekleme oluşturun:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
5.2.2 Seçeneklerle Tam Yedekleme
Açıklayıcı bilgiler ve biçimlendirme seçenekleri ekleyin:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
INIT,
NAME = 'AdventureWorks-Full Database Backup',
DESCRIPTION = 'Full backup of AdventureWorks database',
STATS = 10
GO
Seçeneklerin açıklaması:
- FORMAT – Yeni bir yedekleme seti oluşturur
- INIT – Mevcut yedekleme dosyasının üzerine yazar
- ADI – Yedekleme seti adını atar
- AÇIKLAMA – Açıklayıcı metin ekler
- İSTATİSTİKLER – Her %10'da bir ilerleme gösterir
5.3 Farklı Yedekleme T-SQL Komutları
Diferansiyel yedeklemeler DIFFERENTIAL seçeneğini kullanır:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
5.4 İşlem Günlüğü Yedekleme T-SQL Komutları
İşlem günlüğü yedeklemeleri için BACKUP LOG'u kullanın:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
5.5 Gelişmiş T-SQL Yedekleme Seçenekleri
5.5.1 Birden Fazla Dosyaya Yedekleme
Daha hızlı performans için yedeklemeyi birden fazla dosyaya dağıtın:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
DISK = 'D:\Backups\AdventureWorks_2.bak',
DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO
5.5.2 Sıkıştırmalı Yedekleme
Yedekleme dosya boyutunu ve ağ bant genişliğini azaltın:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
5.5.3 Şifreleme ile Yedekleme
Hassas verileri şifrelemeyle koruyun:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
),
STATS = 10
GO
5.5.4 Parola Korumalı Yedekleme
Şifre koruması ekleyin (kullanımdan kaldırıldı, bunun yerine şifreleme kullanın):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
5.5.5 Yansıtılmış Yedeklemeler
Farklı konumlara eş zamanlı kopyalar oluşturun:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
5.6 T-SQL Yedekleme Örnekleri ve Komut Dosyaları
Hata yönetimiyle birlikte tam yedekleme betiği:
DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);
SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';
BEGIN TRY
BACKUP DATABASE @DatabaseName
TO DISK = @BackupPath
WITH COMPRESSION,
INIT,
NAME = @DatabaseName + '-Full Backup',
STATS = 10;
PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO
6. yedek SQL Server PowerShell Kullanarak Veritabanı
6.1 PowerShell Yedekleme Komutları
SQL Server PowerShell modülü yedekleme otomasyonu için cmdlet'ler sağlar:
- Yedekleme-SqlDatabase – Veritabanı yedekleri oluşturur
- SqlDatabase'i Geri Yükle – Veritabanı yedeklerini geri yükler
- Get-SqlDatabase – Veritabanı bilgilerini alır
içe aktar SQL Server modülü:
Import-Module SqlServer
6.2 PowerShell ile Yedekleme Komut Dosyaları Oluşturma
Temel PowerShell yedekleme komutu:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
Diferansiyel yedekleme örneği:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
İşlem günlüğü yedekleme:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
6.3 PowerShell ile Yedeklemeleri Otomatikleştirme
Birden fazla veritabanı için otomatik yedekleme betiği oluşturun:
# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
New-Item -ItemType Directory -Path $BackupPath
}
# Backup each database
foreach ($Database in $Databases) {
$BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
try {
Backup-SqlDatabase -ServerInstance $ServerInstance `
-Database $Database `
-BackupFile $BackupFile `
-BackupAction Database `
-CompressionOption On
Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
}
catch {
Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
}
}
7. yedek SQL Server Komut Satırını Kullanarak Veritabanı
SQL Server yedeklemenize olanak tanıyan komut satırı yardımcı programları sağlar SQL Server SSMS veya grafik arayüzler kullanmadan veritabanına erişim. Bu araçlar, otomasyon, komut dosyası oluşturma ve uzaktan yönetim senaryoları için olmazsa olmazdır.
7.1 SQLCMD Yedekleme Veritabanını Kullanın
SQLCMD, modern bir komut satırı yardımcı programıdır SQL Server OSQL'in yerini alan bu araç, gelişmiş işlevsellik sunar ve komut isteminden T-SQL komutlarını çalıştırmak için önerilen araçtır.
7.1.1 Temel SQLCMD Sözdizimi
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: belirtir SQL Server örnek adı
- -d: Veritabanı adını belirtir
- -Q: Bir sorguyu çalıştırır ve çıkar
- -VE: Windows Kimlik Doğrulamasını Kullanır
- -U: belirtir SQL Server Kullanıcı adını gir
- -P: Şifreyi belirtir SQL Server giriş
7.1.2 SQLCMD ile Yedekleme Oluşturma
Yedeklemek için SQL Server SQLCMD'yi kullanarak şu adımları izleyin:
- Açılış komut İstemi or PowerShell
- gidin SQL Server araçlar dizini (genellikle kurulum sırasında PATH'e eklenir)
- SQLCMD yedekleme veritabanı komutunu uygun parametrelerle çalıştırın
- Yedekleme dosyasının başarıyla oluşturulduğunu doğrulayın
Windows Kimlik Doğrulaması kullanılarak tam yedekleme komutu örneği:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Örnek kullanımı SQL Server Kimlik doğrulama:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
SQLCMD ile Farklı Yedekleme Oluşturma
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
SQLCMD ile İşlem Günlüğü Yedeği Oluşturma
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
7.1.3 Yayıncı Veritabanının Yedeklenmesi SQL Server Çoğaltma
Yayıncı veritabanlarının yedeklenmesi sırasında SQL Server Çoğaltma işleminde, çoğaltma meta verilerini korumak ve işlem tutarlılığını sağlamak için WITH REPLICATION seçeneğini kullanın.
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
Hakkında daha fazla bilgi için SQL Server çoğaltma, bizimkine bakın kapsamlı rehber.
7.2 OSQL Yedekleme Veritabanını Kullanın
OSQL, eski bir komut satırı yardımcı programıdır SQL ServerMicrosoft bunun yerine SQLCMD kullanılmasını önerse de, eski betikler ve sistemlerle geriye dönük uyumluluk için OSQL hala kullanılabilir durumda.
7.2.1 Temel OSQL Sözdizimi
OSQL sözdizimi SQLCMD'ye benzer:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: SQL Server örnek adı
- -d: Veri tabanı ismi
- -Q: Sorguyu yürütür ve çıkar
- -VE: Güvenilir bağlantıyı kullanır (Windows Kimlik Doğrulaması)
- -U: Kullanıcı adını gir
- -P: Giriş şifresi
7.2.2 OSQL ile Yedekleme Oluşturma
OSQL yedekleme veritabanı işlemlerini gerçekleştirmek için:
- Açılış komut İstemi
- OSQL'in sisteminizde mevcut olduğunu doğrulayın SQL Server Kurulum
- OSQL yedekleme komutunu çalıştırın
Örnek tam yedekleme:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
Örnek diferansiyel yedekleme:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
8. Üçüncü Taraf SQL Server Yedekleme Araçları
Süre SQL Server Yerel yedekleme yeteneklerini içeren üçüncü taraf araçlar, karmaşık gereksinimleri olan kuruluşlar için gelişmiş özellikler, otomasyon ve kurumsal düzeyde yönetim sunar. Bu çözümler, yedekleme için gelişmiş sıkıştırma, merkezi yönetim ve kolaylaştırılmış iş akışları sağlar. SQL Server birden fazla ortamda veritabanları.
8.1 Veeam Yedekleme SQL Server
Veeam, yedekleme için özel olarak tasarlanmış kapsamlı veri koruma çözümleri sunar SQL Server Üretim sistemleri üzerinde minimum etkiye sahip veritabanları.
Temel Özellikler:
- Uygulamaya duyarlı işleme SQL Server yedekleme tutarlılığı
- İşlem günlüğü yedekleme ve yönetimi
- Ayrıntılı geri yükleme seçenekleriyle belirli bir noktada kurtarma
- Birleşik veri koruması için Veeam Backup & Replication ile entegrasyon
- Otomatik yedekleme doğrulaması ve onaylaması
- Always On Kullanılabilirlik Grupları için Destek
- VM düzeyi ve uygulama düzeyi SQL Server yedekleme seçenekleri
8.2 Barracuda Yedekleme SQL Server
Barracuda, MS için basitleştirilmiş yönetimle buluta entegre yedekleme çözümleri sağlar SQL Server yedekleme veritabanı işlemleri.
Temel Özellikler:
- Otomatik SQL Server yedekleme planlaması
- Barracuda Cloud Storage'a yerleşik bulut çoğaltması
- Küresel veri tekilleştirme ve sıkıştırma
- Anında yerel kurtarma yetenekleri
- Web tabanlı yönetim konsolu
- Tam, farklı ve işlem günlüğü yedeklemeleri için destek
- Değişmez yedeklemelerle fidye yazılımı koruması
8.3 Veritas NetBackup için SQL Server
Veritas NetBackup, kapsamlı koruma sağlayan kurumsal düzeyde bir yedekleme platformudur. SQL Server karmaşık BT ortamlarındaki veritabanları.
Temel Özellikler:
- Binlerce kişi için kurumsal ölçekte yedekleme yönetimi SQL Server durumlarda
- Gelişmiş veri çoğaltma ve sıkıştırma algoritmaları
- Esnek yedekleme politikaları ve zamanlaması
- Herkes için destek SQL Server kurtarma modelleri
- Teyp kütüphaneleri ve bulut depolama ile entegrasyon
- Veritabanlarının, tabloların ve nesnelerin ayrıntılı kurtarılması
- Çoklu platform desteği (Windows, Linux) SQL Server)
- Otomatik yedekleme yaşam döngüsü yönetimi
8.4 Commvault Complete Backup & Recovery for SQL Server
Commvault, kapsamlı yedeklemeyle akıllı veri yönetimi sunar SQL Server yetenekleri ve gelişmiş otomasyon özellikleri.
Temel Özellikler:
- Yapay zeka destekli yedekleme optimizasyonu ve anormallik tespiti
- Yedekleme, kurtarma ve arşivleme için birleşik platform
- Gelişmiş ortodontik vakalar için kapsamlı çözüm paketi SQL Server yedekleme sıkıştırması (%90'a kadar azalma)
- Otomatik felaket kurtarma orkestrasyonu
- Sıfıra yakın RPO koruması için Canlı Senkronizasyon
- Için destek SQL Server şirket içi, bulut ve hibrit dağıtımlar
- Anlık görüntü tabanlı yedeklemeler için IntelliSnap
- Kapsamlı uyumluluk ve e-keşif yetenekleri
8.5 Cohesity DataProtect için SQL Server
Cohesity, modern uygulamalar için hiper birleşik altyapı ile yeni nesil veri yönetimi sağlar SQL Server yedekleme işlemleri.
Temel Özellikler:
- Basitleştirilmiş yönetim için web ölçekli mimari
- Anında toplu geri yükleme yetenekleri SQL Server veritabanları
- Uygulamayla tutarlı anlık görüntüler
- Tüm yedeklemelerde küresel veri çoğaltma kaldırma
- Yerel bulut entegrasyonu (AWS, Azure, Google Cloud)
- Dahili analiz ve izleme panoları
- Veritabanı yeteneklerini klonlayın ve test edin
- Değiştirilemez anlık görüntülerle fidye yazılımı koruması
8.6 Red Gate SQL Yedekleme Pro
Red Gate SQL Backup Pro, yalnızca SQL yedeklemesini optimize etmeye odaklanan özel bir araçtır SQL Server Üstün sıkıştırma ve performansla yedekleme ve geri yükleme işlemleri.
Temel Özellikler:
- Sektör lideri sıkıştırma oranları (%95'e kadar)
- Yedekleme için ağ dayanıklılığı SQL Server güvenilmez bağlantılar üzerinden
- 256 bit AES ile yedekleme şifrelemesi
- Yedek kopya doğrulaması ve bütünlük kontrolü
- Ayrıntılı yedekleme geçmişi ve raporlama
- Ile entegrasyon SQL Server Yönetim Stüdyosu
- Ağ konumlarına ve bulut depolamaya yedekleme desteği
- Daha hızlı işlemler için paralel yedekleme ve geri yükleme
9. Nasıl Geri Yüklenir SQL Server veritabanı
9.1 Geri Yükleme Sürecini Anlama
Geri yükleme SQL Server Veritabanı, veritabanını yedekleme dosyalarından yeniden oluşturur. Geri yükleme işlemi, yedekleme dosyasını okur ve veritabanını yedeklenmiş haline yeniden yapılandırır.
Önemli hususlar:
- Geri yükleme mevcut veritabanının üzerine yazar
- Geri yükleme sırasında kullanıcıların bağlantısı kesilir
- Geri yükleme, yedekleme sırasını (önce tam, sonra farklı, sonra günlükler) takip etmelidir
- Geri yükleme işlemi sırasında veritabanı kullanılamaz
9.2 SSMS Kullanarak Tam Yedeklemeyi Geri Yükleme
Tam veritabanı yedeğini geri yüklemek için aşağıdaki adımları izleyin.
9.2.1 Adım Adım Geri Yükleme İşlemi
- Açılış SQL Server Yönetim Stüdyosu ve sunucunuza bağlanın
- In Nesne Gezgini, sağ tık veritabanları
- Seç Veritabanını Geri Yükle
- içinde Kaynak bölümünde, seçin cihaz
- Tıkla ... yedekleme dosyalarına göz atmak için düğme
- Tıkla Ekle ve .bak dosyanıza gidin
- Yedekleme dosyasını seçin ve tıklayın OK
- içinde Varış yeri bölümüne veritabanı adını girin
- Geri yüklemek için yedekleme kümelerini inceleyin
- Tıkla OK geri yüklemeyi başlatmak için
9.2.2 Seçenekleri ve Ayarları Geri Yükle
Tıkla Seçenekler sol panelde yapılandırmak için:
- Mevcut veritabanının üzerine yaz (WITH REPLACE) – Mevcut veritabanının üzerine geri yükleme yapılmasına izin verir
- Çoğaltma durumlarını koruyun (WITH KEEP_REPLICATION) - Tutmak SQL Server kopya belirtmek, bildirmek
- Geri yüklenen veritabanına erişimi kısıtla (KISITLI_KULLANICIYLA) – Geri yükleme sonrası erişimi sınırlandırır
- Kurtarma durumu – KURTARMA İLE GERİ YÜKLEME veya KURTARMAMA arasında seçim yapın
9.3 Diferansiyel Yedeklemeyi Geri Yükleme
Farklı geri yükleme hem tam hem de farklı yedeklemeleri gerektirir:
- İlk olarak, tam yedeklemeyi şu şekilde geri yükleyin: İYİLEŞME YOK seçenek
- Daha sonra diferansiyel yedeklemeyi şu şekilde geri yükleyin: KURTARMA seçenek
T-SQL örneği:
-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO
9.4 İşlem Günlüğü Yedeklemeleriyle Geri Yükleme
Belirli bir noktadaki kurtarma için şu sırayla geri yükleyin:
- NORECOVERY ile tam yedeklemeyi geri yükleyin
- NORECOVERY ile diferansiyel yedeklemeyi geri yükleyin (mümkünse)
- NORECOVERY ile işlem günlüğü yedeklerini geri yükleyin
- RECOVERY ile son günlük yedeklemesini geri yükleyin
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO
9.5 Belirli Bir Noktaya Geri Yükleme
STOPAT seçeneğini kullanarak veritabanını belirli bir zaman noktasına geri yükleyin:
-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO
9.6 Tablo Geri Yükleme
SQL Server Yedekleme dosyalarından doğrudan tablo düzeyinde geri yüklemeyi desteklemiyor. Ancak yine de bazı çözümler mevcut.
9.6.1 Yöntem 1: Veritabanı Anlık Görüntüleri (Önleme İçin En İyisi)
Veritabanı anlık görüntüleri, sorun oluşmadan önce oluşturulmuşlarsa, tablo verilerini geri yüklemenin en hızlı yolunu sağlar. Anlık görüntü, bir veritabanının belirli bir zamandaki salt okunur, statik bir görünümüdür.
Veritabanı Anlık Görüntüsü Oluşturma:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
Anlık Görüntüden Tablo Verilerini Geri Yükleme:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
Sürüm Gereksinimleri: Veritabanı anlık görüntüleri şu adreste mevcuttur: SQL Server Enterprise Edition (tüm sürümler) ve Standard Edition (şu tarihten itibaren) SQL Server 2016 SP1.
9.6.2 Yöntem 2: Geçici Veritabanına Geri Yükleme (En Yaygın Olan)
Bu yöntem, bir sorun meydana geldikten sonra tablo verilerini kurtarmanız gerektiğinde ve anlık görüntü (snapshot) mevcut olmadığında işe yarar:
- Yedeklemeyi geçici bir veritabanına geri yükle
- Geçici veritabanındaki tablo verilerini geçerli veritabanına kopyala.
9.7 Sayfa Geri Yükleme
Sayfa geri yükleme, tüm veritabanını geri yüklemeden tek tek hasarlı sayfaları kurtarır ve yalnızca bozuk sayfaları hedefleyerek kesinti süresini en aza indirir. Bu özellik yalnızca Tam veya Toplu Kayıtlı kurtarma modellerinde mevcuttur ve sayfa yedeklemesinden mevcut günlük dosyasına kadar kesintisiz bir işlem günlüğü yedekleme zinciri gerektirir.
Sayfa geri yükleme işlemini gerçekleştirmek için öncelikle hasarlı sayfaları belirleyin, kuyruk günlüğü yedeklemesi alın, belirli sayfaları geri yükleyin ve ardından tüm işlem günlüklerini uygulayın:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
Not: Basit kurtarma modelinde sayfa geri yükleme özelliği mevcut değildir. Sistem tablolarından veya birincil dosya grubu meta verilerinden sayfaları geri yükleyemezsiniz.
9.8 Parça Parça Geri Yükleme
Parça parça geri yükleme (kısmi geri yükleme), birincil dosya grubundan başlayarak, dosya grubu düzeyinde veritabanını aşamalar halinde geri yükler. Bu, kritik verileri hemen çevrimiçi hale getirirken, daha az kritik veriler arka planda geri yüklenir. Basit kurtarma modelinde, tüm okuma-yazma dosya grupları birincil dosya grubuyla birlikte geri yüklenmelidir; yalnızca salt okunur dosya grupları ayrı olarak geri yüklenebilir. Tam veya Toplu Kayıtlı kurtarma modellerinde, işlem günlükleri uygulandıktan sonra her dosya grubu bağımsız olarak çevrimiçi hale getirilebilir.
| Kurtarma Modeli | Parça Parça Davranışı Geri Yükleme |
|---|---|
| Basit | Birincil dosya grupları ve tüm okuma-yazma dosya grupları birlikte geri yüklenir. Sadece okuma amaçlı dosya grupları ayrı olarak geri yüklenir. |
| Tam/Toplu Kayıtlı | Her dosya grubu, dosya grubu düzeyinde bağımsız olarak geri yüklendi. |
Tam kurtarma modeli örneği – önce veritabanını çevrimiçi hale getirmek için birincil dosya grubunu geri yükleyin, ardından veritabanı çalışır durumda kalırken ikincil dosya gruplarını geri yükleyin:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
Basit kurtarma modeli örneği:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
9.9 T-SQL Komutlarını Kullanarak Geri Yükleme
Dosya taşıma ile tam geri yükleme betiği:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
REPLACE,
STATS = 10;
GO
9.10 Geri Yüklemeden Önce Yedekleme Bütünlüğünün Doğrulanması
Yedeklemenin geçerliliğini geri yüklemeden kontrol edin:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
Bu komut, veritabanını gerçekten geri yüklemeden yedekleme kümesinin tamamlandığını ve okunabilir olduğunu doğrular.
10 SQL Server Yedekleme En İyi Uygulamaları
10.1 Yedekleme Stratejisi Geliştirme
10.1.1 İş Gereksinimlerinin Değerlendirilmesi
Yedeklemeleri uygulamadan önce şunları değerlendirin:
- Veri kritikliği: Bu veriler operasyonlar açısından ne kadar önemli?
- Frekansı değiştir: Veriler ne sıklıkla değişiyor?
- Veritabanı boyutu: Veritabanı ne kadar büyük?
- Mevcut kaynaklar: Hangi depolama alanı ve bant genişliği mevcut?
- Uyumluluk gereksinimleri: Hangi düzenlemelere uymalısınız?
10.1.2 RTO ve RPO'nun Tanımlanması
Kurtarma Süresi Hedefi (RTO): Kabul edilebilir maksimum kesinti süresi. İşlemleri ne kadar çabuk geri yüklemeniz gerektiğini belirler.
Kurtarma Noktası Hedefi (RPO): Kabul edilebilir maksimum veri kaybı. Yedekleme sıklığını belirler.
| RTO/RPO Gereksinimi | Önerilen Yedekleme Stratejisi |
|---|---|
| RPO: Saatler, RTO: Saatler | Günlük tam + her 1-2 saatte bir işlem kaydı |
| RPO: Dakika, RTO: Saat | Her 15-30 dakikada bir günlük tam + günlük yedeklemeleri |
| RPO: Sıfıra yakın, RTO: Dakika | Her Zaman Açık Kullanılabilirlik Grupları + sık sık günlük yedeklemeleri |
| RPO: Gün, RTO: Gün | Haftalık tam + günlük fark |
10.2 Yedekleme Programı Oluşturma
10.2.1 Frekans Önerileri
Üretim veritabanları için tipik yedekleme programı:
- Tam yedeklemeler: Haftalık (Pazar gecesi düşük aktivite sırasında)
- Diferansiyel yedeklemeler: Günlük (her gece)
- İşlem günlüğü yedekleri: İş saatleri içerisinde her 15-30 dakikada bir
- Yalnızca kopyalama yedeklemeleri: Test veya geliştirme için ihtiyaç duyulduğunda
10.2.2 Performans ve Korumanın Dengelenmesi
Planlama yaparken şu faktörleri göz önünde bulundurun:
- Yoğun olmayan saatler: Düşük etkinlik dönemlerinde tam yedeklemeler çalıştırın
- Kaynak etkisi: Sıkıştırma G/Ç'yi azaltır ancak CPU kullanımını artırır
- Şebeke bant genişliği: Trafik düşük olduğunda ağ yedeklemelerini planlayın
- Yedekleme pencereleri: Yedeklemelerin iş saatlerinden önce tamamlandığından emin olun
10.3 Yedekleme Depolama En İyi Uygulamaları
10.3.1 Tesis İçi ve Tesis Dışı Depolama
Yerinde yedeklemeler:
- Daha hızlı yedekleme ve geri yükleme süreleri
- Yüksek frekanslı erişim için daha düşük maliyet
- Yerel afetlere karşı savunmasız
- Hızlı iyileşme senaryoları için en iyisi
Site dışı yedeklemeler:
- Yerel afetlere karşı koruma
- Coğrafi yedeklilik gerekliliklerine uyum
- Daha yavaş geri yükleme süreleri
- Afet kurtarma için gerekli
10.3.2 Bulut Yedekleme Seçenekleri
Bulut depolama avantajları:
- Azure Blob Depolama: Yerli SQL Server entegrasyon, seyrek erişim için uygun maliyetli
- Amazon S3: Son derece dayanıklı, esnek depolama katmanları
- Google Bulut Depolama: Rekabetçi fiyatlandırma, küresel kullanılabilirlik
10.3.3 Yedekleme Saklama Politikaları
Örnek saklama politikası:
- 7 gün boyunca günlük yedeklemeler yapın
- 4 hafta boyunca haftalık yedeklemeler yapın
- 12 ay boyunca aylık yedeklemeler yapın
- Yıllık yedekleri 7 yıl boyunca saklayın (uyumluluk)
10.4 Yedekleme Sıkıştırma ve Şifreleme
Sıkıştırmanın faydaları:
- Yedekleme dosyasının boyutunu %50-70 oranında azaltır
- Yedekleme süresini azaltır
- Depolama maliyetlerini düşürür
- Uzaktan yedeklemeler için ağ bant genişliğini azaltır
Şifreleme en iyi uygulamaları:
- Hassas veriler içeren yedeklemeleri her zaman şifreleyin
- AES 256 bit şifrelemeyi kullanın
- Güvenli sertifika veya anahtar yönetimi
- Belge şifreleme anahtarlarını ayrı ayrı saklayın
10.5 Yedeklemeleri Test Etme ve Doğrulama
10.5.1 Düzenli Geri Yükleme Testi
Test geri yükleme prosedürlerini üç ayda bir veya ayda bir yapın:
- Yedekleri bir test ortamına geri yükleyin
- Veri bütünlüğünü ve eksiksizliğini doğrulayın
- Uygulama işlevselliğini kontrol edin
- Belge geri yükleme süresi (RTO'yu doğrula)
- Herhangi bir sorunu belirleyin ve çözün
10.5.2 RESTORE VERIFYONLY'yi kullanma
Yedekleme doğrulamasını otomatikleştirin:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Doğrulamayı yedekleme tamamlandıktan hemen sonra veya planlı bakımın bir parçası olarak çalıştırın.
10.6 Yedekleme Otomasyonu ve İzleme
10.6.1 SQL Server Ajan İşleri
Otomatik yedekleme işleri oluşturun:
- Genişletmek SQL Server Danışman
SSMS'de
- Sağ tıklatın İş İlanlar seçin Yeni iş
- İşe bir ad verin (örneğin, "Günlük Tam Yedekleme")
- eklemek adım T-SQL yedekleme komutlarıyla
- Hat için bir Çizelge yürütme süresi için
- yapılandırma Bildirimler başarı/başarısızlık için
10.6.2 Bakım Planları
SQL Server Bakım Planları yedekleme otomasyonu için görsel bir arayüz sağlar:
- Şu yöne rotayı ayarla Yönetim -> Bakım Planları
- Sağ tıklayın ve seçin Bakım Planı Sihirbazı
- Otomatikleştirilecek yedekleme görevlerini seçin
- Yedekleme zamanlamasını ve seçeneklerini yapılandırın
- Raporlama ve günlük kaydını ayarlayın
10.6.3 Yedekleme Uyarıları ve Bildirimleri
E-posta bildirimlerini yapılandırın:
- Veritabanı Postasını Ayarla SQL Server
- Yedekleme hataları için uyarılar oluşturun
- Yedekleme işi geçmişini izleyin
- Yöneticilere özet raporlar gönderin
10.7 Dokümantasyon ve Afet Kurtarma Planlaması
Kapsamlı belgeleri koruyun:
- Yedekleme programı: Ne zaman ve ne yedeklenir?
- Saklama politikaları: Yedeklemeler ne kadar süreyle saklanır?
- Depolama yerleri: Yedeklemeler nerede saklanır?
- Geri yükleme prosedürleri: Adım adım kurtarma talimatları
- Iletişim bilgileri: Kilit personel ve tedarikçiler
- Kurtarma testi sonuçları: Belgelenmiş test sonuçları
11. ileri SQL Server Yedekleme Senaryoları
11.1 Çok Büyük Veritabanlarının (VLDB) Yedeklenmesi
11.1.1 Dosya ve Dosya Grubu Stratejileri
Birkaç yüz gigabaytı aşan veritabanları için:
- Salt okunur ve okunup yazılabilir verileri farklı dosya gruplarına ayırın
- Salt okunur dosya gruplarını seyrek olarak yedekleyin
- Etkin dosya gruplarına sık sık yedekleme yapın
- Ayrıntılı kontrol için dosya düzeyinde yedeklemeleri kullanın
Örnek dosya yedekleme:
-- Back up specific file
BACKUP DATABASE LargeDB
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO
11.1.2 Yedekleme Performans Optimizasyonu
VLDB yedekleme performansını iyileştirin:
- Çizgili yedeklemeler: Birden fazla dosyaya aynı anda yazın
- Sıkıştırma: G/Ç ve depolama gereksinimlerini azaltın
- Birden fazla yedekleme aygıtı: Yedekleme işlemlerini paralel hale getirin
- Hızlı depolama: Yedekleme aşaması için SSD'leri kullanın
- Arabellek sayısı: BUFFERCOUNT seçeneğini artırın
- Maksimum transfer boyutu: MAXTRANSFERSIZE ayarını optimize edin
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
DISK = 'D:\Backups\LargeDB_2.bak',
DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
BUFFERCOUNT = 100,
MAXTRANSFERSIZE = 4194304;
GO
11.2 Always On Kullanılabilirlik Gruplarında Yedekleme
Her Zaman Açık Kullanılabilirlik Grupları yedekleme yükünü kopyalar arasında dağıtır:
- Yedekleme tercihlerini yapılandırın (birincil, ikincil veya herhangi bir kopya)
- Birincil iş yükünü azaltmak için yedeklemeleri ikincil kopyalara aktarın
- İkincil kopyalarda COPY_ONLY yedeklemelerini kullanın
- Yedekleme öncelik ayarlarını izleyin
-- Check backup preferences
SELECT
ag.name AS AvailabilityGroup,
ar.replica_server_name,
ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO
11.3 Veritabanı Yansıtma için Yedekleme
Veritabanı yansıtma senaryolarında:
- Ana veritabanını düzenli olarak yedekleyin
- İşlem günlüğü yedeklemeleri yansıtma için önemlidir
- Ayna veritabanı GERİ YÜKLEME durumundadır (doğrudan yedeklenemez)
- Yedeklemeden sonra yedek aynayı düşünün
11.4 Azure Blob Depolamasına Yedekleme
SQL Server Azure Blob Storage'a doğrudan yedekleme yapılabilir:
- Azure Depolama Hesabı Oluşturun
- Oluştur SQL Server Azure kimlik doğrulaması için kimlik bilgisi
- Yedekleme hedefi için URL sözdizimini kullanın
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO
-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
STATS = 10;
GO
11.5 URL'ye Yedekleme
URL'ye yedeklemenin faydaları:
- Sınırsız bulut depolama kapasitesi
- Coğrafi yedeklilik otomatik olarak işlenir
- Kullandıkça öde fiyatlandırma modeli
- Yerel disk alanı gerekmez
- Yedekleme başına 64'e kadar URL'yi destekler (şeritli)
11.6 Performans için Çizgili Yedeklemeler
Çizgili yedeklemeler, daha hızlı G/Ç için verileri birden fazla dosyaya böler:
-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
DISK = 'D:\Backups\AW_Stripe2.bak',
DISK = 'E:\Backups\AW_Stripe3.bak',
DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO
Not: Geri yükleme için tüm Stripe dosyaları gereklidir. Herhangi bir dosyanın eksik olması, yedeklemeyi kullanılamaz hale getirir.
12. Sorun Giderme SQL Server Yedekleme Sorunları
12.1 Yaygın Yedekleme Hataları ve Çözümleri
Hata: “İşletim sistemi hatası 5: Erişim engellendi”
- Nedeni: SQL Server hizmet hesabında izinler eksik
- Çözüm: Yazma izinlerini verin SQL Server yedekleme klasöründeki hizmet hesabı
Hata: "Yedekleme aygıtı açılamıyor... Aygıt hatası veya aygıt çevrimdışı"
- Nedeni: Geçersiz yol veya kullanılamayan ağ paylaşımı
- Çözüm: Yolun mevcut olduğunu doğrulayın, ağ bağlantısını kontrol edin, yeterli disk alanı olduğundan emin olun
Hata: "Diskte yeterli alan yok"
- Nedeni: Yedekleme için yetersiz disk alanı
- Çözüm: Disk alanını boşaltın, sıkıştırmayı kullanın, farklı bir konuma yedekleyin
Hata: "Veritabanı kullanımda. Veritabanı diğer kullanıcılar tarafından kullanılıyor"
- Nedeni: Geri yükleme sırasında etkin bağlantılar
- Çözüm: WITH REPLACE seçeneğini kullanın veya önce kullanıcıların bağlantısını kesin
12.2 Yedekleme Performans Sorunları
Yavaş yedeklemeleri teşhis edin:
- Disk G/Ç performansını kullanarak kontrol edin performans izleyicisi
- Yedekleme ilerlemesini STATS seçeneğiyle izleyin
- Değerlendirme SQL Server darboğazlar için hata günlüğü
- G/Ç'yi azaltmak için sıkıştırmayı düşünün
- Birden fazla diskte şeritli yedeklemeler kullanın
Yedekleme ilerlemesini izlemek için sorgu:
SELECT
session_id,
command,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests
WHERE command LIKE 'BACKUP%';
GO
12.3 Alan ve Depolama Sorunları
Depolama sorunlarını önleyin:
- Saklama politikalarını uygulayın: Eski yedekleri otomatik olarak sil
- Sıkıştırma kullanın: Yedekleme dosya boyutunu %50-70 oranında azaltın
- Arşivden daha ucuz depolamaya: Eski yedekleri arşiv depolama alanına taşıyın
- Disk alanını izleyin: Düşük disk alanı için uyarılar ayarlayın
- Yedekleme boyutunu tahmin edin: Yedeklemeden önce beklenen boyutu hesaplayın
Yedekleme boyutunu tahmin edin:
-- Estimate full backup size
EXEC sp_spaceused;
GO
12.4 İzin ve Erişim Sorunları
Yedeklemeler için gerekli izinler:
- YEDEKLEME VERİTABANI izin
- db_backupoperator rol üyeliği
- sysadmin sunucu rolü (tüm yedekleme işlemleri için)
Yedekleme izinlerini verin:
-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO
-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO
12.5 Bozuk Yedekleme Dosyaları
Bozuk yedekleri tespit edin ve yönetin:
Yedekleme bütünlüğünü doğrulayın:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Gelecekteki yedeklemeler için CHECKSUM'u etkinleştirin:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
Önleme stratejileri:
- Yedekleme sırasında her zaman CHECKSUM seçeneğini kullanın
- Yedeklemeleri oluşturulduktan hemen sonra doğrulayın
- Test düzenli olarak geri yüklenir
- Yedekleri güvenilir depolama alanında saklayın
- Birden fazla yedek kopya tutun
12.6 Bozuk Yedekleme Dosyalarından Verileri Kurtarma
Yedekleme dosyalarınız bozuksa ve yine de bunlardan veri kurtarmak istiyorsanız, aşağıdaki gibi üçüncü taraf araçları kullanabilirsiniz: DataNumen SQL Recovery, aşağıdaki gibi:
- Ana Sayfa DataNumen SQL Recovery.
- Filtreyi “Tüm dosyalar (*.*)” olarak değiştirerek bozuk yedekleme dosyasını kaynak dosya olarak seçin:
- Gerekirse çıktı .MDF dosyasını ayarlayın.
- Veritabanını kurtarmak için "Kurtarmayı Başlat" seçeneğine tıklayın ve talimatları izleyin.
- Kurtarma işleminin ardından yeni bir kurtarma veritabanı görünecektir. SQL Server kurtarılan tüm verileri içeren.
13 SQL Server Yedekleme Güvenliği
13.1 Yedekleme Dosyalarının Güvenliğini Sağlama
Yedekleme dosyalarını yetkisiz erişime karşı koruyun:
- Dosya sistemi izinleri: Erişimi yalnızca yetkili yöneticilerle sınırlayın
- Ağ güvenliği: Ağ yedeklemeleri için güvenli protokolleri kullanın
- Fiziksel güvenlik: Yedekleme ortamını güvenli konumlarda saklayın
- Erişim kaydı: Yedekleme dosyası erişimini denetle
13.2 Şifreleme Seçenekleri
SQL Server şeffaf yedekleme şifrelemesini destekler:
Şifreleme için sertifika oluşturun:
-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO
-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO
Şifrelenmiş yedekleme:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
Önemli: Sertifikayı ve özel anahtarı ayrı ayrı yedekleyin. Bunlar olmadan, şifrelenmiş yedekler geri yüklenemez.
-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
FILE = 'C:\Certificates\BackupCertificate.key',
ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO
13.3 Erişim Kontrolü ve İzinler
En az ayrıcalık ilkesini uygulayın:
- Yedekleme izinlerini yalnızca gerekli hesaplara verin
- Yedekleme ve geri yükleme işlemleri için ayrı hesaplar kullanın
- Yedeklemeler için sa hesabını kullanmaktan kaçının
- Yedekleme izinlerini düzenli olarak denetleyin
- Artık ihtiyaç duyulmadığında izinleri kaldırın
13.4 Uyumluluk Hususları
Düzenleyici gereklilikleri karşılayın:
- GDPR: Kişisel verileri içeren yedekleri şifreleyin, saklama politikalarını uygulayın
- HIPAA: Yedeklemelerdeki PHI'yi şifreleyin, erişimi kontrol edin, denetim izlerini koruyun
- PCI DSS: Kart sahibi verilerinin yedeklerini şifreleyin, güvenli yedekleme depolaması yapın
- SOK: Yedekleme bütünlüğünü ve belge saklama politikalarını koruyun
14. Yedekleme İşlemlerinin İzlenmesi ve Bakımı
14.1 Yedekleme Geçmişini İzleme
SQL Server yedekleme geçmişini msdb veritabanında depolar:
-- View recent backup history
SELECT
bks.database_name,
bks.backup_start_date,
bks.backup_finish_date,
CASE bks.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
ELSE 'Other'
END AS backup_type,
bks.backup_size / 1024 / 1024 AS backup_size_mb,
bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO
Yakın zamanda yedeklenmemiş veritabanlarını bulun:
SELECT
d.name AS database_name,
MAX(bs.backup_finish_date) AS last_backup_date,
DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO
14.2 Kullanma SQL Server Raporlar
SQL Server Management Studio yerleşik yedekleme raporlarını içerir:
- Nesne Gezgini'nde veritabanına sağ tıklayın
- Seç Raporlar -> Standart Raporlar
- Mevcut raporlardan birini seçin:
- Yedekleme ve Geri Yükleme Olayları
- Tüm Yedeklemeler
- İşlem Günlüğü Gönderim Durumu
14.3 Üçüncü Taraf İzleme Araçları
Ticari izleme çözümleri:
- SQL Sentry: Kapsamlı izleme ve uyarı
- Redgate SQL İzleyicisi: Gerçek zamanlı izleme ve teşhis
- SolarWinds Veritabanı Performans Analizörü: Performans ve yedekleme izleme
- Idera SQL Tanılama Yöneticisi: Yedekleme doğrulaması ve uyarıları
14.4 Yedekleme Sağlık Kontrolleri
Sağlık kontrol prosedürü oluşturun:
-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
-- Check for databases without recent full backup
SELECT
'Missing Recent Full Backup' AS issue,
d.name AS database_name,
ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs
ON d.name = bs.database_name AND bs.type = 'D'
WHERE d.database_id > 4
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
AND j.name LIKE '%backup%';
END
GO
15 SQL Server Yedekleme SSS
15.1 Ne Sıklıkla Yedekleme Yapmalıyım? SQL Server?
Yedekleme sıklığı Kurtarma Noktası Hedefinize (RPO) bağlıdır:
- Kritik üretim veritabanları: Tam haftalık, günlük fark, her 15-30 dakikada bir kayıt
- Standart üretim veritabanları: Tam haftalık, günlük fark, her 1-2 saatte bir kayıt
- Geliştirme veritabanları: Tam günlük veya haftalık
- Salt okunur veritabanları: Her veri değişikliğinden sonra tam
15.2 Tam ve Diferansiyel Yedekleme Arasındaki Fark Nedir?
Tam yedekleme, veritabanının tamamını kopyalarken, diferansiyel yedekleme yalnızca son tam yedeklemeden bu yana gerçekleşen değişiklikleri yakalar. Diferansiyel yedeklemeler daha küçük ve daha hızlıdır, ancak geri yükleme için temel tam yedeklemeyi gerektirir.
15.3 Yedekleme yapabilir miyim? SQL Server Çalışırken mi?
Evet, SQL Server Çevrimiçi yedeklemeyi destekler. Kullanıcılar yedekleme işlemleri sırasında çalışmaya devam edebilirler. SQL Server Tutarlılığı sağlamak için işlem günlüğünü kullanır ve eş zamanlı değişiklikler yapılsa bile yedeklemelerin geçerli olmasını sağlar.
15.4 Ne Kadar Sürer SQL Server Yedek Al?
Yedekleme süresi şunlara göre değişir:
- Veritabanı boyutu: Daha büyük veritabanları daha uzun sürer
- Yedekleme türü: Tam yedeklemeler en uzun sürer
- Sıkıştırma: CPU süresini artırabilir ancak genel süreyi azaltabilir
- Depolama hızı: SSD'ler HDD'lerden önemli ölçüde daha hızlıdır
- Sunucu yükü: Daha yüksek etkinlik yedeklemeleri yavaşlatır
Tipik aralıklar: 10 GB veritabanının modern donanımlarda sıkıştırma ile tam yedeklemesi 5-15 dakika sürebilir.
15.5 Nerede Saklamalıyım? SQL Server Yedeklemeler?
En iyi uygulama: 3-2-1 kuralını izleyin:
- 3 verilerinizin kopyaları
- 2 farklı depolama türleri (örneğin, disk ve bant/bulut)
- 1 site dışına kopyalama
Önerilen yerler:
- Hızlı kurtarma için yerel disk
- Merkezi yönetim için ağ depolama
- Felaket kurtarma için bulut depolama (Azure, AWS)
15.6 .bak Dosya Uzantısı Nedir?
.bak uzantısı, varsayılan dosya uzantısıdır SQL Server yedekleme dosyaları. Bu bir zorunluluk değil, bir gelenektir. SQL Server Yedeklemeler herhangi bir dosya uzantısıyla çalışır. Ancak, .bak uzantısı kullanmak yedekleme dosyalarının kolayca tanımlanmasını sağlar ve bu, endüstri standardı bir uygulamadır.
15.7 Yedekleme Nasıl Yapılır SQL Server Ağ Sürücüsüne mi?
Bir ağ sürücüsüne yedeklemek için:
- Sağlamak SQL Server hizmet hesabının ağ paylaşımında yazma izinleri var
- Yedekleme komutunda UNC yolunu kullanın:
\\ServerName\ShareName\BackupFile.bak - Otomatik yedeklemeleri planlamadan önce bağlantıyı test edin
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
15.8 Sıkıştırabilir miyim? SQL Server Yedeklemeler?
Evet, SQL Server Yerel yedekleme sıkıştırmasını destekler (Enterprise Edition veya Standard Edition'dan itibaren). SQL Server Sıkıştırma genellikle yedekleme boyutunu %50-70 oranında azaltır ve G/Ç'yi azaltarak yedekleme süresini kısaltır, ancak CPU kullanımını artırır.
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. Sonuç
16.1 Anahtar Paketleri
Etkili SQL Server Yedekleme stratejileri verilerinizi korur ve iş sürekliliğini sağlar. Şu önemli noktaları unutmayın:
- Yedekleme türlerini anlayın: Kurtarma gereksinimlerinize göre uygun yedekleme türlerini (tam, farklı, işlem günlüğü) seçin
- Uygun kurtarma modelini seçin: Kritik veriler için tam kurtarma, geliştirme veritabanları için basit
- Yedekleme zamanlamasını uygulayın: Düzenli tam yedeklemeler, farklı ve günlük yedeklemeleriyle birleştirildiğinde veri kaybı en aza indirilir
- Test geri yükleme prosedürleri: Yedeklemeler yalnızca başarıyla geri yüklenebiliyorsa değerlidir
- Otomatikleştirin ve izleyin: Kullanım SQL Server Temsilci, bakım planları ve izleme araçları
- Güvenli yedeklemeler: Hassas verileri şifreleyin ve yedekleme dosyalarına erişimi kontrol edin
- Kopyaları tesis dışında saklayın: Bulut veya uzak depolama ile site genelindeki felaketlere karşı koruma sağlayın
- Her şeyi belgeleyin: Yedekleme ve kurtarma prosedürlerinin açık bir şekilde belgelenmesini sağlayın
16.2 Sonraki Adımlar ve Kaynaklar
geliştirmek için SQL Server yedekleme uygulaması:
- Mevcut yedekleme stratejinizi en iyi uygulamalara göre değerlendirin
- RTO ve RPO gereksinimlerinizi hesaplayın
- Üretim dışı sistemlerde test geri yükleme prosedürleri
- Yedekleme planlarını düzenli olarak inceleyin ve güncelleyin
- Otomatik izleme ve uyarıları uygulayın
- Ekip üyelerine geri yükleme prosedürleri konusunda eğitim verin
Ek kaynaklar:
- Microsoft SQL Server Belgeler: Resmi yedekleme ve geri yükleme kılavuzu
- SQL Server yedekleme topluluk forumları: Deneyimleri ve çözümleri paylaşın
- Profesyonel sertifikalar: Microsoft Sertifikalı: Azure Veritabanı Yöneticisi Ortağı
16.3 Önerilen Araçlar ve Çözümler
Farklı senaryolara göre:
Küçük işletmeler:
- Yerli SQL Server planlanmış yedekleme SQL Server Ajan işleri
- Bulut entegrasyonu için SQLBackupAndFTP
- Azure Yedekleme için SQL Server
Orta ölçekli işletmeler:
- SQL Server Bakım Planları
- Redgate SQL Backup Pro gibi üçüncü taraf araçlar
- Veeam Yedekleme için SQL Server
Büyük işletmeler:
- Maksimum sıkıştırma için Quest LiteSpeed
- Kurumsal yedekleme yönetimi için Commvault veya Veritas NetBackup
- Always On Kullanılabilirlik Grupları için yüksek kullanılabilirlik
SQL Server Yedekleme, veritabanı yönetiminin temelidir. Doğru planlama, uygulama ve test ile verilerinizin korunmasını ve gerektiğinde kurtarılabilir olmasını sağlayabilirsiniz. Verilerinizi güvence altına almak için bu en iyi uygulamaları bugünden itibaren uygulamaya başlayın. SQL Server veritabanları.
Yazar Hakkında
Yuan Sheng 10 yılı aşkın deneyime sahip kıdemli bir veritabanı yöneticisidir (DBA) SQL Server ortamlar ve kurumsal veritabanı yönetimi alanında uzmanlaşmıştır. Finansal hizmetler, sağlık ve üretim sektörlerindeki yüzlerce veritabanı kurtarma senaryosunu başarıyla çözmüştür.
Yuan şu konuda uzmanlaşmıştır: SQL Server Veritabanı kurtarma, yüksek erişilebilirlik çözümleri ve performans optimizasyonu alanlarında kapsamlı uygulamalı deneyime sahiptir. Terabaytlarca veri tabanını yönetme, Always On Kullanılabilirlik Grupları uygulama ve kritik öneme sahip iş sistemleri için otomatik yedekleme ve kurtarma stratejileri geliştirme konularında kapsamlı uygulamalı deneyime sahiptir.
Yuan, teknik uzmanlığı ve pratik yaklaşımıyla, veritabanı yöneticilerinin ve BT profesyonellerinin karmaşık sorunları çözmelerine yardımcı olan kapsamlı kılavuzlar oluşturmaya odaklanıyor. SQL Server Zorlukları verimli bir şekilde çözer. En son gelişmelerle güncel kalır. SQL Server Microsoft'un gelişen veritabanı teknolojilerini ve sürümlerini takip ederek, önerilerinin gerçek dünyadaki en iyi uygulamaları yansıttığından emin olmak için kurtarma senaryolarını düzenli olarak test ediyor.
hakkında sorularınız var SQL Server Kurtarma veya ek veritabanı sorun giderme kılavuzuna mı ihtiyacınız var? Yuan memnuniyetle karşılar geri bildirim ve öneriler Bu teknik kaynakların iyileştirilmesi için.











