Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu başlığında, SQL Server Management Studio, Transact-SQL veya PowerShell kullanarak SQL Server'da bir AlwaysOn kullanılabilirlik grubu için veritabanının nasıl hazırlandığı açıklanmaktadır. Veritabanı hazırlamak için iki adım gerekir:
- NORECOVERY ile RESTORE komutunu kullanarak birincil veritabanının son yedeğini ve sonraki günlük yedeklemelerini sekonder kopyayı barındıran her sunucu örneğine geri yükleyin.
- Geri yüklenen veritabanını kullanılabilirlik grubuna ekleyin.
Tip
Mevcut bir günlük gönderim yapılandırmanız varsa, bir veya daha fazla ikincil veritabanıyla birlikte günlük gönderimi birincil veritabanını bir kullanılabilirlik grubu birincil çoğaltmasına ve bir veya daha fazla ikincil çoğaltmaya dönüştürebilirsiniz. Daha fazla bilgi için bkz. Günlük Gönderiminden Always On Kullanılabilirlik Gruplarına (SQL Server) geçiş önkoşulları.
Önkoşullar ve kısıtlamalar
Veritabanını yerleştirmeyi planladığınız sistemin ikincil veritabanları için yeterli alana sahip bir disk sürücüsüne sahip olduğundan emin olun.
İkincil veritabanının adı, birincil veritabanının adıyla aynı olmalıdır.
Her geri yükleme işlemi için NORECOVERY ile RESTORE kullanın.
İkincil veritabanının birincil veritabanından farklı bir dosya yolunda (sürücü harfi dahil) bulunması gerekiyorsa, geri yükleme komutunun, veritabanı dosyalarının her biri için, bunları ikincil veritabanının yoluna belirtmek için WITH MOVE seçeneğini de kullanması gerekir.
Veritabanı dosya grubunu dosya grubuna göre geri yüklerseniz, veritabanının tamamını geri yüklemeyi unutmayın.
Veritabanını geri yükledikten sonra, son geri yüklenen veri yedeklemeden sonra oluşturulan her günlük yedeğini (NORECOVERY ile) geri yüklemeniz gerekir.
Recommendations
SQL Server'ın tek başına örneklerinde, mümkünse belirli bir ikincil veritabanının dosya yolunun (sürücü harfi dahil) ilgili birincil veritabanının yoluyla aynı olmasını öneririz. Bunun nedeni, ikincil veritabanı oluştururken veritabanı dosyalarını taşırsanız, ikincil veritabanında daha sonraki bir eklenti dosyası işlemi başarısız olabilir ve ikincil veritabanının askıya alınmasına neden olabilir.
İkincil veritabanlarınızı hazırlamadan önce, ikincil çoğaltmaların başlatılması tamamlanana kadar kullanılabilirlik grubundaki veritabanlarında zamanlanmış günlük yedeklemelerini askıya almanızı kesinlikle öneririz.
Security
Bir veritabanı yedeklendiğinde TRUSTWORTHY veritabanı özelliği KAPALI olarak ayarlanır. Bu nedenle TRUSTWORTHY, yeni geri yüklenen bir veritabanında her zaman KAPALI olur.
Permissions
BACKUP DATABASE ve BACKUP LOG izinleri, varsayılan olarak sysadmin sabit sunucu rolü üyeleri ile db_owner ve db_backupoperator sabit veritabanı rollerinin üyelerine aittir. Daha fazla bilgi için bkz . BACKUP (Transact-SQL).
Geri yüklenen veritabanı sunucu örneğinde mevcut olmadığında RESTORE deyimi CREATE DATABASE izinleri gerektirir. Daha fazla bilgi için bkz . RESTORE (Transact-SQL).
SQL Server Management Studio'yu kullanma
Uyarı
Yedekleme ve geri yükleme dosya yolları birincil çoğaltmayı barındıran sunucu örneği ile ikincil çoğaltmayı barındıran her örnek arasında aynıysa, Yeni Kullanılabilirlik Grubu Sihirbazı, Kullanılabilirlik GrubunaÇoğaltma Ekleme Sihirbazı veya Kullanılabilirlik Grubuna Veritabanı Ekleme Sihirbazı ile ikincil çoğaltma veritabanları oluşturabilmeniz gerekir.
İkincil veritabanı hazırlamak için
Birincil veritabanının yeni bir veritabanı yedeğine sahip değilseniz yeni bir tam veya değişiklik veritabanı yedeklemesi oluşturun. En iyi uygulama olarak, bu yedeklemeyi ve sonraki günlük yedeklemelerini önerilen ağ paylaşımına yerleştirin.
Birincil veritabanının en az bir yeni günlük yedeğini oluşturun.
Uyarı
Birincil çoğaltmadaki veritabanında daha önce bir işlem günlüğü yedeklemesi alınmamışsa, işlem günlüğü yedeklemesi gerekli olmayabilir. Microsoft, kullanılabilirlik grubuna her yeni veritabanı katlandığında işlem günlüğü yedeklemesi almayı önerir.
İkincil çoğaltmayı barındıran sunucu örneğinde, öncelikle birincil veritabanının tam yedeğini (ve isteğe bağlı olarak fark yedeğini) geri yükleyin, ardından sonraki günlük yedeklemelerini sırasıyla geri yükleyin.
GERİ YÜKLEME VERITABANı Seçenekleri sayfasında Veritabanını çalışma dışı bırak'ı seçin ve kaydedilmemiş işlemleri geri almayın. Ek işlem günlükleri geri yüklenebilir. (NORECOVERY ILE GERI YÜKLEME).
Birincil veritabanının ve ikincil veritabanının dosya yolları farklıysa, örneğin, birincil veritabanı 'F:' sürücüsündeyse ancak ikincil çoğaltmayı barındıran sunucu örneğinde F: sürücüsü yoksa, WITH yan tümcenize MOVE seçeneğini ekleyin.
İkincil veritabanının yapılandırmasını tamamlamak için ikincil veritabanını kullanılabilirlik grubuna eklemeniz gerekir. Daha fazla bilgi için İkincil Veritabanını Bir Kullanılabilirlik Grubuna (SQL Server) Birleştirme.
Uyarı
Bu yedekleme ve geri yükleme işlemlerini gerçekleştirme hakkında bilgi için bu bölümün devamında yer alan İlgili Yedekleme ve Geri Yükleme Görevleri'ne bakın.
İlgili Yedekleme ve Geri Yükleme Görevleri
Veritabanı yedeklemesi oluşturmak için
Günlük yedeklemesi oluşturmak için
Yedeklemeleri geri yüklemek için
Transact-SQL Kullanımı
İkincil veritabanı hazırlamak için
Uyarı
Bu yordamın bir örneği için, bu konunun önceki bölümlerinde yer alan Örnek (Transact-SQL) bölümüne bakın.
Birincil veritabanının yeni bir tam yedeğine sahip değilseniz, birincil çoğaltmayı barındıran sunucu örneğine bağlanın ve tam veritabanı yedeği oluşturun. En iyi uygulama olarak, bu yedeklemeyi ve sonraki günlük yedeklemelerini önerilen ağ paylaşımına yerleştirin.
İkincil çoğaltmayı barındıran sunucu örneğinde, birincil veritabanının tam veritabanı yedeğini (ve isteğe bağlı olarak değişiklik yedeği) ve ardından sonraki tüm günlük yedeklemelerini geri yükleyin. Her geri yükleme işlemi için NORECOVERY ile kullanın.
Birincil veritabanının ve ikincil veritabanının dosya yolları farklıysa, örneğin, birincil veritabanı 'F:' sürücüsündeyse ancak ikincil çoğaltmayı barındıran sunucu örneğinde F: sürücüsü yoksa, WITH yan tümcenize MOVE seçeneğini ekleyin.
Birincil veritabanındaki gerekli günlük yedeğinden sonra herhangi bir günlük yedekleme yapılmışsa, bunları ikincil kopyayı barındıran sunucuya da kopyalamalı ve bu günlük yedeklemelerini, en eskisinden başlayarak ve her zaman RESTORE WITH NORECOVERY kullanarak ikincil veritabanına uygulamalısınız.
Uyarı
Birincil veritabanı yeni oluşturulduysa ve henüz hiçbir günlük yedeklemesi alınmadıysa veya kurtarma modeli basitten tama değiştirildiyse günlük yedeklemesi mevcut olmaz.
İkincil veritabanının yapılandırmasını tamamlamak için ikincil veritabanını kullanılabilirlik grubuna eklemeniz gerekir. Daha fazla bilgi için İkincil Veritabanını Bir Kullanılabilirlik Grubuna (SQL Server) Birleştirme.
Uyarı
Bu yedekleme ve geri yükleme işlemlerini gerçekleştirme hakkında bilgi için, bu konunun devamında yer alan İlgili Yedekleme ve Geri Yükleme Görevleri'ne bakın.
Transact-SQL Örneği
Aşağıdaki örnek ikincil bir veritabanı hazırlar. Bu örnek, varsayılan olarak basit kurtarma modelini kullanan örnek veritabanını kullanır AdventureWorks2025 .
AdventureWorks2025veritabanını kullanmak için, onu tam kurtarma modelini kullanacak şekilde değiştirin.USE master; GO ALTER DATABASE MyDB1 SET RECOVERY FULL; GOVeritabanının kurtarma modelini SIMPLE yerine FULL olarak değiştirdikten sonra, ikincil veritabanını oluşturmak için kullanılabilecek tam bir yedekleme oluşturun. Kurtarma modeli yeni değiştirildiğinden, yeni bir medya kümesi oluşturmak için WITH FORMAT seçeneği belirtilir. Bu, tam kurtarma modeli altındaki yedeklemeleri basit kurtarma modeli altında yapılan önceki yedeklemelerden ayırmak için yararlıdır. Bu örneğin amacı doğrultusunda, yedekleme dosyası (C:\
AdventureWorks2025.bak) veritabanıyla aynı sürücüde oluşturulur.Uyarı
Üretim veritabanı için her zaman ayrı bir cihaza yedeklemeniz gerekir.
Birincil çoğaltmayı ()
INSTANCE01barındıran sunucu örneğinde, birincil veritabanının tam yedeğini aşağıdaki gibi oluşturun:BACKUP DATABASE MyDB1 TO DISK = 'C:\MyDB1.bak' WITH FORMAT GOTam yedeklemeyi ikincil çoğaltmayı barındıran sunucu örneğine kopyalayın.
NORECOVERY ILE RESTORE komutunu kullanarak tam yedeklemeyi ikincil çoğaltmayı barındıran sunucu örneğine geri yükleyin. Geri yükleme komutu, birincil ve ikincil veritabanlarının yollarının aynı olup olmadığına bağlıdır.
Yollar aynıysa:
İkincil çoğaltmayı barındıran bilgisayarda tam yedeklemeyi aşağıdaki gibi geri yükleyin:
RESTORE DATABASE MyDB1 FROM DISK = 'C:\MyDB1.bak' WITH NORECOVERY GOYollar farklıysa:
İkincil veritabanının yolu birincil veritabanının yolundan farklıysa (örneğin, sürücü harfleri farklıdır), ikincil veritabanını oluşturmak için geri yükleme işleminin bir MOVE yan tümcesi içermesi gerekir.
Önemli
Birincil ve ikincil veritabanlarının yol adları farklıysa, dosya ekleyemezsiniz. Bunun nedeni, dosya ekleme işleminin günlüğünü alırken, ikincil kopyanın sunucusunun yeni dosyayı, birincil veritabanı tarafından kullanılan aynı yola yerleştirmeye çalışmasıdır.
Örneğin, aşağıdaki komut varsayılan SQL Server örneğinin (C:\Program Files\Microsoft SQL Server\MSSQL12) veri dizininde bulunan bir birincil veritabanının yedeğini geri yükler. MSSQLSERVER\MSSQL\DATA. Geri yükleme veritabanı işlemi, veritabanını başka bir küme düğümünde ikincil çoğaltmayı barındıran (Always On1) adlı uzak bir SQL Server örneğinin veri dizinine taşımalıdır. Burada, veriler ve günlük dosyaları C:\Program Files\Microsoft SQL Server\MSSQL13.Always On1\MSSQL\DATA dizinine geri yüklenir. Geri yükleme işlemi, ikincil veritabanını geri yükleme veritabanında bırakmak için WITH NORECOVERY kullanır.
RESTORE DATABASE MyDB1 FROM DISK='C:\MyDB1.bak' WITH NORECOVERY, MOVE 'MyDB1_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.Always On1\MSSQL\DATA\MyDB1_Data.mdf', MOVE 'MyDB1_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.Always On1\MSSQL\DATA\MyDB1_Data.ldf'; GO
Tam yedeklemeyi geri yükledikten sonra, birincil veritabanında bir günlük yedeği oluşturmanız gerekir. Örneğin, aşağıdaki Transact-SQL deyimi günlüğü E:\MyDB1_log.trn adlı bir yedekleme dosyasına yedekler:
BACKUP LOG MyDB1 TO DISK = 'E:\MyDB1_log.trn' GOVeritabanını ikincil çoğaltmaya katabilmek için önce gerekli günlük yedeklemesini (ve sonraki günlük yedeklemelerini) uygulamanız gerekir.
Örneğin, aşağıdaki Transact-SQL deyimi C:\MyDB1.trn'den ilk günlüğü geri yükler:
RESTORE LOG MyDB1 FROM DISK = 'E:\MyDB1_log.trn' WITH FILE=1, NORECOVERY GOVeritabanı ikincil çoğaltmaya katılmadan önce başka günlük yedeklemeleri gerçekleşirse, norecovery ile RESTORE kullanarak ikincil çoğaltmayı barındıran sunucu örneğine sırasıyla bu günlük yedeklemelerinin tümünü de geri yüklemeniz gerekir.
Örneğin, aşağıdaki Transact-SQL deyimi E:\MyDB1_log.trn'den iki günlük daha geri yükler:
RESTORE LOG MyDB1 FROM DISK = 'E:\MyDB1_log.trn' WITH FILE=2, NORECOVERY GO RESTORE LOG MyDB1 FROM DISK = 'E:\MyDB1_log.trn' WITH FILE=3, NORECOVERY GO
PowerShell'i kullanma
İkincil veritabanı hazırlamak için
Birincil veritabanının son yedeklemesini oluşturmanız gerekiyorsa, dizini (cd) birincil çoğaltmayı barındıran sunucu örneğiyle değiştirin.
Yedeklemelerin her birini oluşturmak için Backup-SqlDatabase cmdlet'ini kullanın.
Dizini (cd) ikincil çoğaltmayı barındıran sunucu örneğiyle değiştirin.
Her birincil veritabanının veritabanını ve günlük yedeklemelerini geri yüklemek için , Restore-SqlDatabase cmdlet'ini kullanarak NoRecovery geri yükleme parametresini belirtin. Dosya yolları birincil çoğaltmayı barındıran bilgisayarlar ile hedef ikincil çoğaltma arasında farklılık gösteriyorsa RelocateFile geri yükleme parametresini de kullanın.
Uyarı
Bir cmdlet'in söz dizimini görüntülemek için SQL Server PowerShell ortamındaki Get-Help cmdlet'ini kullanın. Daha fazla bilgi için bkz. SQL Server PowerShell Yardım Alma.
İkincil veritabanının yapılandırmasını tamamlamak için kullanılabilirlik grubuna eklemeniz gerekir. Daha fazla bilgi için İkincil Veritabanını Bir Kullanılabilirlik Grubuna (SQL Server) Birleştirme.
SQL Server PowerShell sağlayıcısını ayarlamak ve kullanmak için
Örnek yedekleme ve geri yükleme betiği ve komutu
Aşağıdaki PowerShell komutları tam veritabanı yedeklemesini ve işlem günlüğünü bir ağ paylaşımına yedekler ve bu yedekleri bu paylaşımdan geri yükler. Bu örnekte, veritabanının geri yüklendiği dosya yolunun, veritabanının yedeklendiği dosya yolu ile aynı olduğu varsayılır.
# Create database backup
Backup-SqlDatabase -Database "MyDB1" -BackupFile "\\share\backups\MyDB1.bak" -ServerInstance "SourceMachine\Instance"
# Create log backup
Backup-SqlDatabase -Database "MyDB1" -BackupAction "Log" -BackupFile "\\share\backups\MyDB1.trn" -ServerInstance "SourceMachine\Instance"
# Restore database backup
Restore-SqlDatabase -Database "MyDB1" -BackupFile "\\share\backups\MyDB1.bak" -NoRecovery -ServerInstance "DestinationMachine\Instance"
# Restore log backup
Restore-SqlDatabase -Database "MyDB1" -BackupFile "\\share\backups\MyDB1.trn" -RestoreAction "Log" -NoRecovery -ServerInstance "DestinationMachine\Instance"
Sonraki Adımlar
İkincil veritabanının yapılandırmasını tamamlamak için, yeni geri yüklenen veritabanını kullanılabilirlik grubuna ekleyin. Daha fazla bilgi için bkz. İkincil Veritabanını Kullanılabilirlik Grubuna (SQL Server) Ekleme.
Ayrıca bakınız
Always On Kullanılabilirlik Grupları (SQL Server) Genel Bakış
BACKUP (Transact-SQL)
RESTORE Argümanlar (Transact-SQL)
RESTORE (Transact-SQL)
Başarısız Dosya Ekleme İşleminin Sorunlarını Giderme (Always On Kullanılabilirlik Grupları)