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 makale, SQL Server Management Studio (SSMS), Transact-SQL veya PowerShell kullanılarak SQL Server'da tam veritabanı yedeklemesinin nasıl oluşturulacağını açıklar.
Daha fazla bilgi için bkz. Azure Blob Depolama ile SQL Server yedekleme ve geri yükleme ve Azure Blob Depolama için URL’ye SQL Server yedekleme. Yedek kavramları ve görevleri hakkında genel bir bakış için, Yedekleme genel bakış (SQL Server) sayfasına bakınız.
Öneriler
Bir veritabanı büyüdükçe, tam veritabanı yedeklemeleri daha uzun sürer ve daha fazla depolama gerektirir. Büyük veritabanları için, tam yedeklemeleri bir dizi diferansiyel veritabanı yedeklemesi ile destekleyin.
sp_spaceused sistem depolanmış prosedürle tam bir veritabanı yedeklemesinin boyutunu tahmin edin.
Varsayılan olarak, her başarılı yedekleme SQL Server hata günlüğüne ve sistem olay kaydına bir giriş ekliyor. Sık yedeklemeler bu kayıtları doldurabilir ve diğer mesajları bulmayı zorlaştırabilir.
Yedek kayıt girişlerini bastırmak için, scriptleriniz buna güvenmiyorsa, trace flag 3226 kullanın.
Sınırlamalar
Bu ifadeyi BACKUP açık veya örtük bir işlemde kullanamazsınız.
Önceki sürümlerde SQL Server'ın yeni sürümlerinden yedekleri geri getiremezsiniz. Örneğin, SQL Server 2025 (17.x) yedeklemesini SQL Server 2022 (16.x) üzerinde geri getiremezsiniz.
Güvenlik
Bir veritabanı yedeğinde TRUSTWORTHY, OFF olarak ayarlanır.
ON öğesini TRUSTWORTHY olarak ayarlamak için ALTER DATABASE SET seçeneklerine bakın.
SQL Server 2012 (11.x) ile itibaren, PASSWORD ve MEDIAPASSWORD seçenekleri yedekleme oluşturmak için mevcut değil. 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 üyelerine ve db_owner ile db_backupoperator sabit veritabanı rollerine verilir.
SQL Server servis hesabı, yedek cihazının fiziksel dosyasında okuma ve yazma izinlerine sahip olmalıdır. O dosyadaki sahiplik veya izin sorunları, yedekleme ve geri yükleme işlemlerini engeller ve yalnızca yedekleme veya geri yükleme işlemi çalıştığında ortaya çıkar.
Örneğin, sistem tablolarına yedek cihaz girişi ekleyen sp_addumpdevice sistem kayıtlı prosedürü dosya erişimini doğrulamaz .
SQL Server Management Studio kullanma
Nesne Gezgini'da Database Enginer'e bağlanın ve ardından sunucu ağacını genişletin.
Veritabanları'nı genişletin ve ardından bir kullanıcı veritabanı seçin. Ya da Sistem Veritabanları'nı genişletip bir sistem veritabanı seçin.
Yedeklemek istediğiniz veritabanına sağ tıklayın, Görevler'e işaret edin ve ardından Yedekle...'yi seçin.
Yedekleme Veritabanı iletişim kutusunda, seçtiğiniz veritabanı açılır menü listesinde görünür. Veritabanını sunucudaki herhangi bir diğer veritabanına değiştirebilirsiniz.
Yedekleme türü listesinde bir yedekleme türü seçin. Varsayılan değer Tam'dır.
Önemli
Değişiklik veya işlem günlüğü yedeklemesi yapabilmeniz için ö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ü).
Yedekleme listesini kullanarak farklı bir cihaz seçin. Yedek nesneler veya hedefler eklemek için Ekle'yi seçin. Yedek hızını artırmak için yedekleme setini birden fazla dosya arasında çizgileyebilirsiniz.
Yedekleme hedefini kaldırmak için, hedefi seçin ve Kaldır'ı seçin. Mevcut bir yedekleme hedefinin içeriğini görmek için onu seçin ve İçerikler'i seçin.
İsteğe göre, Medya Seçenekleri ve Yedek Seçenekleri sayfalarındaki diğer ayarları inceleyebilirsiniz.
Yedek seçenekleri hakkında daha fazla bilgi için Yedekleme Veritabanı (Genel Sayfa),Yedekleme Veritabanı (Medya Seçenekleri sayfası) ve Yedekleme Veritabanı (Yedek Seçenekler Sayfası) bölümlerine bakınız.
Yedeklemeyi başlatmak için Tamam'ı seçin.
Yedek başarıyla tamamlandığında, diyalogu kapatmak için OK tuşuna bas.
Remarks
SQL Server Management Studio'de bir yedekleme görevi belirttiğinizde, Script butonunu seçip ardından bir script hedefi seçerek ilgili Transact-SQL BACKUP script'i oluşturabilirsiniz.
Tam bir veritabanı yedekleri oluşturduktan sonra, diferansiyel veritabanı yedek veya işlem günlüğü yedekleri oluşturabilirsiniz.
İsteğe bağlı olarak, salt kopya yedeği oluşturmak için Salt Kopya Yedek onay kutusunu seçin. Yalnızca kopya yedekleme, geleneksel SQL Server yedeklemelerinden bağımsız bir SQL Server yedeklemesidir. Daha fazla bilgi için bkz . Salt kopya yedeklemeleri. Sadece kopyalama amaçlı yedeklemeler Diferansiyel yedekleme türü için mevcut değildir.
Medya Seçenekleri sayfasında bir URL'ye yedekleme yaptığınızda Medya Seçeneklerinin Üzerine Yaz seçeneği devre dışı bırakılır.
Örnekler
Aşağıdaki örnekler için, aşağıdaki Transact-SQL kodunu kullanarak 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 DEFAULT getdate() NOT NULL
);
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. Diske varsayılan konuma tam yedekleme
Bu örnek, veritabanını SQLTestDB varsayılan yedekleme konumundaki diske yedekleme yapar.
Nesne Gezgini'da Database Enginer'e bağlanın ve ardından 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.
Yedek başarıyla tamamlandığında, diyalogu kapatmak için OK tuşuna bas.
B. Diske bilinmeyen bir konuma tam yedekleme
Bu örnek, SQLTestDB veritabanını seçtiğiniz bir konumda diske yedekleme yapar.
Nesne Gezgini'da Database Enginer'e bağlanın ve ardından 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ında, Hedef bölümünde, Şuraya yedekle listesinde Disk seçeneğini belirleyin.
Tüm mevcut yedekleme dosyaları kaldırılana kadar Kaldır'ı seçin.
Add (Ekle) seçeneğini belirleyin. Yedek Hedefi Seç iletişim kutusu açılır.
Dosya adı kutusuna geçerli bir yol ve dosya adı girin. Dosya sınıflandırmayı basitleştirmek için .bak uzantı olarak kullanın.
OK seçin, sonra tekrar OK'ye seçerek yedeklemeyi başlatın.
Yedek başarıyla tamamlandığında, diyalogu kapatmak için OK tuşuna bas.
C. Şifrelenmiş yedekleme oluşturma
Bu örnek, SQLTestDB veritabanını varsayılan yedekleme konumuna şifrelemeyle yedekleme yapar.
Nesne Gezgini'da Database Enginer'e bağlanın ve ardından sunucu ağacını genişletin.
Veritabanları'nı genişletin, Sistem Veritabanları'nı genişletin,
masteröğesine sağ tıklayın ve ardından Yeni Sorgu'yu seçerekSQLTestDBveritabanınıza bağlantı içeren bir sorgu penceresi açın.Veritabanında bir veritabanı ana anahtarı ve sertifika
masteroluşturmak için aşağıdaki komutları çalıştırın.-- Create the master key. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; -- 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 = '<password>'; -- 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.
Yedekleme Seçenekleri sayfasının Şifreleme bölümünde Yedeklemeyi şifrele'yi seçin.
Algoritma listesinde AES 256'yı seçin.
Sertifika veya Asimetrik anahtar listesinde öğesini seçin
MyCertificate.Tamam'ı seçin.
D. Azure Blob Depolama'ya yedekleme
Bu örnek, SQLTestDB veritabanının Azure Blob Depolama'a tam yedeğini oluşturur. Örnek, zaten bir blob konteynerli bir depolama hesabınızın olduğunu varsayıyor. Örnek, paylaşılan erişim imzası oluşturur ve konteynerin mevcut paylaşılan erişim imzası varsa başarısız olur.
Depolama hesabınızda Blob Depolama konteyneriniz yoksa, devam etmeden önce bir tane oluşturun. Bkz . Genel amaçlı depolama hesabı oluşturma ve Kapsayıcı oluşturma.
Nesne Gezgini'da Database Enginer'e bağlanın ve ardından 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ında, Hedef bölümünde, Şuraya yedekle listesinde URL'yi seçin.
Add (Ekle) seçeneğini belirleyin. Yedek Hedefi Seç iletişim kutusu açılır.
Eğer SSMS ile kullanmak istediğiniz Azure depolama konteynerini daha önce kaydettiyseniz, onu seçin. Aksi takdirde yeni bir kapsayıcı kaydetmek için Yeni kapsayıcı'yı seçin.
Microsoft Aboneliğine Bağlanma iletişim kutusunda hesabınıza giriş yapın.
Depolama Hesabı Seç kutusunda depolama hesabınızı seçin.
Blob Kapsayıcısını Seç kutusunda blob kapsayıcınızı seçin.
Paylaşılan Erişim Politikası Süresi takvim kutusunda, bu örneğin oluşturduğu paylaşılan erişim politikası için bir son kullanma tarihi seçin.
SSMS'de paylaşılan erişim imzası ve kimlik doğrulaması oluşturmak için Kimlik Oluştur'u seçin.
Microsoft Aboneliği'ne Bağlan iletişim kutusunu kapatmak için OK seçeneğini seçin.
Yedekleme Dosyası kutusunda, isterseniz yedekleme dosyasının adını değiştirin.
Bir yedek hedef seç iletişim kutusunu kapatmak için OK seçeneğini seçin.
Yedeklemeyi başlatmak için Tamam'ı seçin.
Yedek başarıyla tamamlandığında, diyalogu kapatmak için OK tuşuna bas.
Uyarı
Yönetilen kimlikleri kullanarak Blob Depolama'ya yedekleme şu anda desteklenmiyor.
Transact-SQL kullanma
Bildirimi BACKUP DATABASE çalıştırarak tam bir veritabanı yedeklemesi oluşturun. Belirtmek:
- 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 |
|---|---|
<database> |
Yedekleme için veritabanı. |
<backup_device> [ , ...n ] |
Yedek işlemi için kullanılacak 1 ila 64 yedek cihaz belirtir. Fiziksel bir yedekleme cihazı belirtin veya zaten tanımlanmışsa karşılık gelen mantıksal yedekleme cihazı belirtin. Fiziksel yedek cihaz belirtmek için , TAPE, veya URL seçeneği kullanınDISK:{ DISK | URL | TAPE} = physical_backup_device_nameAzure Blob Depolama veya S3 uyumlu object storage'a yedeklemek için kullanın URL. Daha fazla bilgi için bkz . Yedekleme Cihazları (SQL Server). |
WITH <with_options> [ , ...n ] |
Bir veya daha fazla seçeneği belirtmek için kullanılır, n. Temel WITH seçeneklerin bazıları aşağıdaki listede açıklanmıştır. |
İsteğe bağlı olarak, bir veya daha fazla WITH seçenek belirtin. Burada birkaç temel WITH seçenek açıklanmıştır. Tüm WITH seçenekler hakkında bilgi için bkz.BACKUP
Temel yedekleme kümesi WITH seçenekleri:
{ SIKIŞTIRMA | SIKIŞTIRMA_YOK }. SQL Server, yedekleme sıkıştırmasının yedekte yapılıp yapılmadığını belirtir ve sunucu düzeyindeki varsayılan değeri geçersiz kılar.
ŞİFRELEME (ALGORİTMA, SUNUCU CERTIFICATE | ASYMMETRIC KEY). SQL Server 2014 veya sonrasında, kullanılacak şifreleme algoritmasını ve şifrelemeyi güvence altına almak için hangi sertifika veya asimetrik anahtarı kullanacağını belirtir.
AÇIKLAMA = { 'metin' | @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. Belirtmezseniz
NAME, boş olur.
Varsayılan olarak, BACKUP yedeklemeyi mevcut bir medya kümesine ekler ve mevcut yedekleme kümelerini korur. Bu yapılandırmayı NOINIT açıkça belirtmek için seçeneğini kullanın. 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 şu FORMAT seçeneği kullanın:
FORMAT [ , MEDYAADI = { media_name | @media_name_variable } ] [ , MEDYAAÇIKLAMASI = { text | @text_variable } ]
Medyayı ilk kez kullandığınızda veya mevcut tüm verileri üzerine yazmak istediğinizde bu FORMAT maddeyi kullanın. İsteğe bağlı olarak, yeni medyaya bir medya adı ve açıklaması atayın.
Önemli
Ifadenin FORMAT maddesini BACKUP kullanırken dikkatli olun çünkü bu seçenek, yedekleme medyasında daha önce depolanmış tüm yedeklemeleri yok eder.
Örnekler
Aşağıdaki örnekler için, aşağıdaki Transact-SQL kodunu kullanarak 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 DEFAULT GETDATE() NOT NULL
);
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, veritabanının tamamını SQLTestDB diske yedekler. Yeni bir medya kümesi oluşturmak için FORMAT kullanır.
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, veritabanının tamamını SQLTestDB banda yedekler. Yedeklemeyi önceki yedeklemelere ekler.
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 veritabanının tamamını SQLTestDB bu cihaza yedekler.
-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXECUTE 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
Backup-SqlDatabase cmdlet'ini kullanın. Tam veritabanı yedeklemesini açıkça belirtmek için parametresini -BackupAction varsayılan değeriyle Databasebelirtin. Bu parametre tam veritabanı yedeklemeleri için isteğe bağlıdır.
SSMS içinden bir PowerShell penceresi açıp SQL Server Database Engine'e bağlanırsanız, SSMS'deki kimlik bilginiz PowerShell ile Database Engine arasındaki bağlantıyı otomatik olarak kurduğu için kimlik kaydı bölümünü atlayabilirsiniz.
Uyarı
Bu örnek modülü SqlServer gerektirir. Daha fazla bilgi için bkz. SQL Server PowerShell Sağlayıcısı.
Örnekler
A. Tam yedekleme (yerel)
Aşağıdaki örnek, sunucu örneğinin <myDatabase>Computer\Instancevarsayılan yedekleme konumuna veritabanının tam veritabanı yedeğini oluşturur. İsteğe bağlı olarak, bu örnek öğesini belirtir -BackupAction Database.
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ğindeki <myServer> veritabanının Blob Depolama'ya tam yedeğini oluşturur. Kayıtlı erişim politikası okuma, yazma ve liste haklarıyla oluşturulur. SQL Server kimlik bilgisi, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, depolanmış erişim politikasıyla ilişkili paylaşılan erişim imzası kullanılarak oluşturulur. komutu, konumu (URL) ve yedekleme dosyası adını belirtmek için parametresini kullanır $backupFile .
$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
- Fark veritabanı yedeği oluşturma (SQL Server)
- SSMS kullanarak veritabanı yedeklemesini geri yükleme
- Basit kurtarma modeli altında veritabanı yedeklemesini geri getir
- Veritabanını hata noktasına geri yükleme - tam kurtarma
- 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şlemlerinin sorunlarını giderme
- Yedeklemeye genel bakış (SQL Server)
- İşlem günlüğü yedeklemeleri (SQL Server)
- Medya kümeleri, medya aileleri ve yedekleme kümeleri (SQL Server)
- sys.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)