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 makalede SQL Server Management Studio, Transact-SQL veya PowerShell kullanarak SQL Server'da tam veritabanı yedeklemesi oluşturma işlemi açıklanmaktadır.
Daha fazla bilgi için bkz. Azure Blob Depolama ile SQL Server Yedekleme ve Geri Yükleme ve URL'ye SQL Server Yedekleme.
Sınırlamalar ve kısıtlamalar
-
BACKUP
deyimine açık veya örtük bir işlemde izin verilmez. - SQL Server'ın daha yeni bir sürümü tarafından oluşturulan yedeklemeler, SQL Server'ın önceki sürümlerinde geri yüklenemez.
Yedekleme kavramlarına ve görevlerine genel bakış ve daha ayrıntılı bilgi için devam etmeden önce bkz. Yedeklemeye Genel Bakış (SQL Server).
Öneriler
- Veritabanının boyutu arttıkça tam veritabanı yedeklemelerinin tamamlanması daha uzun sürer ve daha fazla depolama alanı gerektirir. Büyük veritabanları için, tam veritabanı yedeklemelerini bir dizi değişiklik veritabanı yedeklemesiyle tamamlayı göz önünde bulundurun.
- sp_spaceused sistem saklı yordamını kullanarak tam veritabanı yedeklemesinin boyutunu tahmin edin.
- Varsayılan olarak, her başarılı yedekleme işlemi SQL Server hata günlüğüne ve sistem olay günlüğüne bir girdi ekler. Sık sık yedeklerseniz başarı iletileri hızla birikerek büyük hata günlüklerine neden olur ve diğer iletilerin bulunmasını zorlaştırır. Böyle durumlarda, betiklerinizin hiçbiri bu girdilere bağımlı değilse izleme bayrağı 3226'yı kullanarak bu yedekleme günlüğü girdilerini gizleyebilirsiniz. Daha fazla bilgi için bkz. İzleme Bayrakları (Transact-SQL).
Güvenlik
TRUSTWORTHY , veritabanı yedeklemesinde KAPALI olarak ayarlanır. TRUSTWORTHY AÇIK olarak ayarlama hakkında bilgi için bkz. ALTER DATABASE SET Options (Transact-SQL).
SQL Server 2012 (11.x) sürümünden başlayarak , PAROLA ve MEDIAPASSWORD seçenekleri artık yedekleme oluşturmak için kullanılamaz. Yine de parolalarla oluşturulan yedeklemeleri geri yükleyebilirsiniz.
İzinler
BACKUP DATABASE
ve BACKUP LOG
izinleri varsayılan olarak sysadmin sabit sunucu rolünün üyeleriyle db_owner ve db_backupoperator sabit veritabanı rolleridir.
Yedekleme cihazının fiziksel dosyasındaki sahiplik ve izin sorunları yedekleme işlemini etkileyebilir. SQL Server hizmetinin cihazı okuması ve cihaza yazması gerekir. SQL Server hizmetinin çalıştırıldığı hesabın yedekleme cihazı üzerinde yazma izinleri olmalıdır. Ancak, sistem tablolarında bir yedekleme cihazı için giriş ekleyen sp_addumpdevice, dosya erişim izinlerini denetlemez. Yedekleme kullanılana veya geri yükleme denenene kadar yedekleme cihazının fiziksel dosyasındaki sorunlar görünmeyebilir.
SQL Server Management Studio'yu kullanma
Uyarı
SQL Server Management Studio kullanarak bir yedekleme görevi belirttiğinizde, Betik düğmesine tıklayıp bir betik hedefi seçerek ilgili Transact-SQL BACKUP betiğini oluşturabilirsiniz.
Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu ağacını genişletin.
Veritabanları'yı genişletin ve bir kullanıcı veritabanı seçin veya Sistem Veritabanları'yı genişletin ve bir sistem veritabanı seçin.
Yedeklemek istediğiniz veritabanına sağ tıklayın, Görevler'in üzerine gelin ve ardından Yedekle... seçeneğini belirleyin.
Veritabanını Yedekle iletişim kutusunda, seçtiğiniz veritabanı açılan listede görünür (bunu sunucudaki başka bir veritabanına değiştirebilirsiniz).
Yedekleme türü açılan listesinde bir yedekleme türü seçin. Varsayılan değer Tam'dır.
Önemli
Değişiklik veya işlem günlüğü yedeklemesi gerçekleştirmeden önce en az bir tam veritabanı yedeklemesi gerçekleştirmeniz gerekir.
Yedekleme bileşeni'nin altında Veritabanı'yı seçin.
Hedef bölümünde, yedekleme dosyası için varsayılan konumu gözden geçirin (.. /mssql/data klasörü).
Yedekle açılan listesini farklı bir cihaz seçmek için kullanabilirsiniz. Yedekleme nesneleri ve veya hedefleri eklemek için Ekle'yi seçin. Daha yüksek yedekleme hızı için yedekleme kümesini birden çok dosya arasında ayırabilirsiniz.
Yedekleme hedefini kaldırmak için, hedefi seçin ve Kaldır'ı seçin. Var olan bir yedekleme hedefinin içeriğini görüntülemek için bunu seçin ve İçerikler'i seçin.
(isteğe bağlı) Medya Seçenekleri ve Yedekleme Seçenekleri sayfalarının altındaki diğer kullanılabilir ayarları gözden geçirin.
Çeşitli yedekleme seçenekleri hakkında daha fazla bilgi için bkz. Genel sayfası, Medya seçenekleri sayfası ve Yedekleme seçenekleri sayfası.
Yedeklemeyi başlatmak için Tamam'ı seçin.
Yedekleme başarıyla tamamlandığında, TAMAM'ı seçerek SQL Server Management Studio iletişim kutusunu kapatın.
Ek bilgiler
Tam veritabanı yedeği oluşturduktan sonra değişiklik veritabanı yedeklemesi veya işlem günlüğü yedeklemesi oluşturabilirsiniz.
(isteğe bağlı) Yalnızca kopya yedekleme oluşturmak için Yalnızca kopya yedeklemesi onay kutusunu seçebilirsiniz. Yalnızca kopya yedekleme, geleneksel SQL Server yedeklemelerinden bağımsız bir SQL Server yedeklemesidir. Daha fazla bilgi için bkz. Copy-Only Yedeklemeler (SQL Server). Diferansiyel yedekleme türü için yalnızca kopya yedeklemesi mevcut değildir.
Bir URL'ye yedeklerseniz Medya Seçenekleri sayfasında Medya üzerine yazma seçeneği devre dışı bırakılır.
Örnekler
Aşağıdaki örnekler için aşağıdaki Transact-SQL koduyla bir test veritabanı oluşturun:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest
(
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
);
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
A. Varsayılan konuma diske tam yedekleme
Bu örnekte veritabanı varsayılan SQLTestDB
yedekleme konumunda diske yedeklenecektir.
Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu ağacını genişletin.
Veritabanları'yı genişletin, sağ tıklayın
SQLTestDB
, Görevler'in üzerine gelin ve Ardından Yedekle... öğesini seçin.Tamam'ı seçin.
Yedekleme başarıyla tamamlandığında, TAMAM'ı seçerek SQL Server Management Studio iletişim kutusunu kapatın.
B. Varsayılan olmayan konuma diske tam yedekleme
Bu örnekte veritabanı SQLTestDB
, seçtiğiniz bir konumda diske yedeklenecektir.
Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu ağacını genişletin.
Veritabanları'yı genişletin, sağ tıklayın
SQLTestDB
, Görevler'in üzerine gelin ve Ardından Yedekle... öğesini seçin.Genel sayfasındaki Hedef bölümünde, Yedekleme konumu: açılan listesinden Disk'i seçin.
Tüm mevcut yedekleme dosyaları kaldırılana kadar Kaldır'ı seçin.
Ekle'yi seçtiğinizde Yedekleme Hedefi Seç iletişim kutusu açılır.
Dosya adı metin kutusuna geçerli bir yol ve dosya adı girin ve bu dosyanın sınıflandırmasını basitleştirmek için uzantı olarak .bak kullanın.
Tamam'ı seçin ve ardından yedeklemeyi başlatmak için yeniden Tamam'ı seçin.
Yedekleme başarıyla tamamlandığında, TAMAM'ı seçerek SQL Server Management Studio iletişim kutusunu kapatın.
C. Şifrelenmiş yedekleme oluşturma
Bu örnekte veritabanı, SQLTestDB
varsayılan yedekleme konumuna şifreleme ile yedeklenecektir.
Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu ağacını genişletin.
Veritabanları'nı genişletin, Sistem Veritabanları'nı genişletin, öğesine sağ tıklayın
master
ve veritabanınıza bağlantı içeren bir sorgu penceresi açmak içinSQLTestDB
seçin.Veritabanı içinde bir veritabanı ana anahtarı ve sertifika oluşturmak için aşağıdaki komutları yürütebilirsiniz
master
.-- Create the master key CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'; -- If the master key already exists, open it in the same session that you create the certificate (see next step) OPEN MASTER KEY DECRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe' -- Create the certificate encrypted by the master key CREATE CERTIFICATE MyCertificate WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';
Nesne Gezgini'ndekiVeritabanları düğümünde sağ tıklayın
SQLTestDB
, Görevler'in üzerine gelin ve ardından Yedekle... öğesini seçin.Medya Seçenekleri sayfasındaki Medya üzerine yaz bölümünde Yeni bir medya kümesine yedekle'yi seçin ve var olan tüm yedekleme kümelerini silin.
Şifreleme bölümündeki Yedekleme Seçenekleri sayfasında Yedeklemeyi şifrele onay kutusunu seçin.
Algoritma açılır listesinden AES 256'yı seçin.
Sertifika veya Asimetrik anahtar açılan listesinden öğesini seçin
MyCertificate
.Tamam'ı seçin.
D. Azure Blob Depolama'ya yedekleme
Azure Blob Depolama'ya SQLTestDB
veritabanının tam yedeğini oluşturur örnek. Örnekte blob kapsayıcısı olan bir depolama hesabınız olduğu varsayılır. Örnek, sizin için bir paylaşılan erişim imzası oluşturur; Kapsayıcının paylaşılan erişim imzası varsa bu örnek başarısız olur.
Depolama hesabında Azure Blob Depolama kapsayıcınız yoksa devam etmeden önce bir kapsayıcı oluşturun. Bkz . Genel amaçlı depolama hesabı oluşturma ve Kapsayıcı oluşturma.
Microsoft SQL Server Veritabanı Altyapısı'nın uygun örneğine bağlandıktan sonra Nesne Gezgini'nde sunucu ağacını genişletin.
Veritabanları'yı genişletin, sağ tıklayın
SQLTestDB
, Görevler'in üzerine gelin ve Ardından Yedekle... öğesini seçin.Genel sayfasındaki Hedef bölümünde Yedekle: açılır listesinden URL seçin.
Ekle'yi seçtiğinizde Yedekleme Hedefi Seç iletişim kutusu açılır.
Daha önce SQL Server Management Studio ile kullanmak istediğiniz Azure depolama kapsayıcısını kaydettiyseniz seçin. Aksi takdirde yeni bir kapsayıcı kaydetmek için Yeni kapsayıcı'yı seçin.
Microsoft Aboneliğine Bağlan iletişim kutusunda hesabınızda oturum açın.
Depolama Hesabı Seç açılan metin kutusunda depolama hesabınızı seçin.
Blob Kapsayıcısı Seç açılan metin kutusunda blob kapsayıcınızı seçin.
Paylaşılan Erişim İlkesi Süre Sonu açılan takvim kutusunda, bu örnekte oluşturduğunuz paylaşılan erişim ilkesi için bir son kullanma tarihi seçin.
SQL Server Management Studio'da paylaşılan erişim imzası ve kimlik bilgisi oluşturmak için Kimlik Bilgisi Oluştur'u seçin.
Tamam'ı seçerek Microsoft Aboneliğine Bağlan iletişim kutusunu kapatın.
Yedekleme Dosyası metin kutusunda, yedekleme dosyasının adını değiştirin (isteğe bağlı).
Yedekleme hedefi seçin iletişim kutusunu kapatmak için Tamam'ı seçin.
Yedeklemeyi başlatmak için Tamam'ı seçin.
Yedekleme başarıyla tamamlandığında, TAMAM'ı seçerek SQL Server Management Studio iletişim kutusunu kapatın.
Uyarı
Azure Blob Depolama'ya yedekleme şu anda yönetilen kimlikler kullanılarak desteklenmiyor.
Transact-SQL Kullanımı
Tam veritabanı yedeklemesini oluşturmak için BACKUP DATABASE
komutunu yürüterek, aşağıdakileri belirterek tam veritabanı yedeklemesi oluşturun:
- Yedeklenecek veritabanının adı.
- Veritabanının tam yedeğinin yazıldığı yedek cihazı.
Tam veritabanı yedeklemesi için temel Transact-SQL söz dizimi şöyledir:
BACKUP DATABASE database TO backup_device [ ,... n ] [ WITH with_options [ ,... o ] ] ;
Seçenek | Açıklama |
---|---|
veritabanı | Yedeklenecek veritabanıdır. |
backup_device [ ,... n ] | Yedekleme işlemi için kullanılacak 1 ile 64 yedekleme cihazının listesini belirtir. Fiziksel bir yedekleme cihazı belirtebilir veya önceden tanımlanmışsa ilgili mantıksal yedekleme cihazını belirtebilirsiniz. Fiziksel yedekleme cihazı belirtmek için DISK veya TAPE seçeneğini kullanın: { DİSK | KASET } =physical_backup_device_name Daha fazla bilgi için bkz . Yedekleme Cihazları (SQL Server). |
WITH with_options [ ,... o ] | Bir veya daha fazla seçenek belirtmek için kullanılır, o. Bazı temel seçenekler hakkında bilgi için 2. adıma bakın. |
İsteğe bağlı olarak, bir veya daha fazla WITH seçeneği belirtin. Burada birkaç temel WITH seçeneği açıklanmıştır. Tüm WITH seçenekleri hakkında bilgi için YEDEKLEME (Transact-SQL)'e bakın.
Temel yedekleme kümesi WITH seçenekleri:
- { SıKıŞTıRMA | NO_COMPRESSION }: Yalnızca SQL Server 2008 (10.0.x) Enterprise ve sonraki sürümlerinde, bu yedeklemede yedekleme sıkıştırmasının gerçekleştirilip gerçekleştirilmeyeceğini belirtir ve sunucu düzeyi varsayılanı geçersiz kılır.
- ŞIFRELEME (ALGORITMA, SUNUCU SERTIFIKASı | ASIMETRIK ANAHTAR): Yalnızca SQL Server 2014 veya sonraki sürümlerinde kullanılacak şifreleme algoritmasını ve şifrelemenin güvenliğini sağlamak için kullanılacak Sertifika veya Asimetrik anahtarı belirtin.
- AÇIKLAMA= { 'text' | @text_variable }: Yedekleme kümesini açıklayan serbest biçimli metni belirtir. Dize en fazla 255 karakter içerebilir.
- AD = { backup_set_name | @backup_set_name_var }: Yedekleme kümesinin adını belirtir. Adlarda en fazla 128 karakter olabilir. AD belirtilmezse boş olur.
Varsayılan olarak, BACKUP
yedeklemeyi mevcut bir medya kümesine ekler ve mevcut yedekleme kümelerini korur. Açıkça belirtmek için seçeneğini kullanın NOINIT
. Mevcut yedekleme kümelerine ekleme hakkında bilgi için bkz. Medya Kümeleri, Medya Aileleri ve Yedekleme Kümeleri (SQL Server).
Yedekleme medyasını biçimlendirmek için FORMAT seçeneğini kullanın:
FORMAT [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Medyayı ilk kez kullanırken veya var olan tüm verilerin üzerine yazmak istediğinizde FORMAT yan tümcesini kullanın. İsteğe bağlı olarak, yeni medyaya bir medya adı ve açıklaması atayın.
Önemli
Deyiminin FORMAT yan tümcesini BACKUP
kullanırken çok dikkatli olun çünkü bu işlem daha önce yedekleme medyası üzerinde depolanan tüm yedeklemeleri yok eder.
Örnekler
Aşağıdaki örnekler için aşağıdaki Transact-SQL koduyla bir test veritabanı oluşturun:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT GETDATE()
)
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
A. Disk cihazına yedekleme
Aşağıdaki örnek, SQLTestDB
kullanarak yeni bir medya kümesi oluşturarak FORMAT
veritabanının tamamını diske yedekler.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
WITH FORMAT,
MEDIANAME = 'SQLServerBackups',
NAME = 'Full Backup of SQLTestDB';
GO
B. Bant cihazına yedekleme
Aşağıdaki örnek, yedeği önceki yedeklere ekleyerek veritabanının tamamını SQLTestDB
banda yedekler.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of SQLTestDB';
GO
C. Mantıksal bant cihazına yedekleyin
Aşağıdaki örnek, bir bant sürücüsü için mantıksal yedekleme cihazı oluşturur. Örnek daha sonra tam SQLTestDB veritabanını bu cihaza yedekler.
-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0'; USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO SQLTestDB_Bak_Tape
WITH FORMAT,
MEDIANAME = 'SQLTestDB_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of SQLTestDB';
GO
PowerShell'i kullanma
Backup-SqlDatabase cmdlet'ini kullanın. Tam veritabanı yedeklemesini açıkça belirtmek için - BackupAction parametresini varsayılan değeri olan Database olarak belirtin. Bu parametre tam veritabanı yedeklemeleri için isteğe bağlıdır.
Uyarı
Bu örnekler SqlServer modülünü gerektirir. Yüklenip yüklenmediğini belirlemek için komutunu çalıştırın Get-Module -Name SqlServer
. Yüklemek için PowerShell'in yönetici oturumunda komutunu çalıştırın Install-Module -Name SqlServer
.
Daha fazla bilgi için bkz. SQL Server PowerShell Sağlayıcısı.
Önemli
SQL Server yüklemesine bağlanmak için SQL Server Management Studio'nun içinden bir PowerShell penceresi açıyorsanız, SSMS'deki kimlik bilgileriniz PowerShell ile SQL Server örneğiniz arasında bağlantı kurmak için otomatik olarak kullanıldığından kimlik bilgisi bölümünü atlayabilirsiniz.
Örnekler
A. Tam yedekleme (yerel)
Aşağıdaki örnek, sunucu örneğinin <myDatabase>
Computer\Instance
varsayılan yedekleme konumuna veritabanının tam veritabanı yedeğini oluşturur. İsteğe bağlı olarak, bu örnek -BackupAction Veritabanını belirtir.
Tam söz dizimi örnekleri için bkz . Backup-SqlDatabase.
$credential = Get-Credential
Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential
B. Azure'a tam yedekleme
Aşağıdaki örnek, <myDatabase>
örneği üzerindeki <myServer>
veritabanının Azure Blob Depolama'ya tam yedeğini oluşturur. Okuma, yazma ve liste haklarıyla saklanan erişim politikası oluşturulmuştur.
https://<myStorageAccount>.blob.core.windows.net/<myContainer>
SQL Server kimlik bilgileri, Saklı Erişim İlkesi ile ilişkili bir Paylaşılan Erişim İmzası kullanılarak oluşturulmuştur. PowerShell komutu, konumu (URL) ve yedekleme dosyası adını belirtmek için BackupFile parametresini kullanır.
$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName
Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential
İlgili görevler
- Diferansiyel Veritabanı Yedeklemesi Oluşturma (SQL Server)
- SSMS Kullanarak Veritabanı Yedeklemesini Geri Yükleme
- Basit Kurtarma Modeli Altında Veritabanı Yedeklemesini Geri Yükleme (Transact-SQL)
- Tam Kurtarma Modeli Altında Veritabanını Hata Noktasına Geri Yükleme (Transact-SQL)
- Veritabanını Yeni Bir Konuma Geri Yükleme (SQL Server)
- Bakım Planı Sihirbazı'nı kullanma
İlgili içerik
- SQL Server yedekleme ve geri yükleme işlemleriyle ilgili sorunları giderme
- Yedeklemeye Genel Bakış (SQL Server)
- İşlem Günlüğü Yedeklemeleri (SQL Server)
- Medya Kümeleri, Medya Aileleri ve Yedekleme Kümeleri (SQL Server)
- sp_addumpdevice (Transact-SQL)
- BACKUP (Transact-SQL)
- Veritabanını Yedekle (Genel Sayfa)
- Veritabanını Yedekle (Yedekleme Seçenekleri Sayfası)
- Değişiklik Yedeklemeleri (SQL Server)
- Tam Veritabanı Yedeklemeleri (SQL Server)