Azure Blob Storage URL'sine SQL Server yedeklemesi

Applies to:SQL ServerAzure SQL Managed Instance

Bu makalede, yedekleme hedefi olarak Azure Blob Storage kullanmak için gereken kavramlar, gereksinimler ve bileşenler açıklanır. Yedekleme ve geri yükleme işlevi, DISK veya TAPE kullanırkenkiyle aynı ya da benzerdir, ancak birkaç fark vardır. Bu farklılıklar ve birkaç kod örneği bu makalede yer alır.

Tip

SQL Server 2025 (17.x) ile başlayarak yönetilen kimlikle URL'ye yedekleyebilirsiniz. SQL Server'ın Azure Arc ile etkinleştirilen yönetilen kimlik (önizleme) özellikli 'URL'ye Yedekleme' özelliğini gözden geçirin.

Overview

SQL Server 2012 Service Pack 1 CU2 ve SQL Server 2014, tanıdık T-SQL söz dizimini kullanarak yedekleri güvenli bir şekilde Azure depolama alanına yazmak üzere Azure Blob Storage'a işaret eden bir URL'ye yedekleme yapma özelliğini tanıtmıştır. SQL Server 2016 (13.x) Azure'daki Veritabanı Dosyaları için Dosya Anlık Görüntü Yedeklemeleri ve paylaşılan erişim imzası (SAS) anahtarları aracılığıyla güvenlik sunarak kullanıma sunulmuştur. Bu, Azure Storage güvenlik ilkesine sertifikalar yerine SAS anahtarları yoluyla güvenli ve basit bir kimlik doğrulama yöntemi sağlar.

Azure Blob Storage yedekleme veya geri yükleme gerçekleştirmek için bileşenleri ve aralarındaki etkileşimi anlamak önemlidir.

bu işlemin ilk adımı, Azure aboneliğinizde Azure Storage hesabı oluşturmaktır. Bu depolama hesabı, depolama hesabıyla oluşturulan tüm kapsayıcılar ve nesneler üzerinde tam yönetim izinlerine sahip bir yönetim hesabıdır. SQL Server Azure Blob Storage için blobların kimliğini doğrulamak ve yazmak ve okumak için Azure depolama hesabı adını ve erişim anahtarı değerini kullanabilir ya da belirli kapsayıcılarda oluşturulan ve okuma ve yazma hakları veren Paylaşılan Erişim İmzası belirtecini kullanabilir. Azure Storage Accounts hakkında daha fazla bilgi için bkz. About Azure Storage Accounts ve Paylaşılan Erişim İmzaları hakkında daha fazla bilgi için bkz. Shared Access signatures, Bölüm 1: SAS Modelini Anlama. SQL Server Kimlik Bilgisi bu kimlik doğrulama bilgilerini depolar ve yedekleme veya geri yükleme işlemleri sırasında kullanılır.

Azure Storage ve S3 uyumlu depolama

SQL Server 2022 (16.x), yedekleme cihaz türü olarak Azure Blob Storage kullanarak URL'ye yedekleme ile çalışmaya kavramsal olarak benzer bir yedekleme ve geri yükleme işleviyle S3 uyumlu nesne depolama alanına yedekleme yazma özelliği sunar. SQL Server 2022 (16.x), REST API kullanarak yeni bir S3 bağlayıcısı için destek ekleyerek BACKUP/RESTORE TO/FROM URL söz dizimini genişletir.

Bu makale, Azure Blob Storage için URL'ye Yedekleme kullanma hakkında bilgi içerir. S3 uyumlu depolama için URL'ye Yedekleme'yi kullanma hakkında daha fazla bilgi edinmek için bkz. SQL Server S3 uyumlu nesne depolama için URL'ye yedekleme.

Azure Storage'a yedekleme: Blok blobu ve sayfa blobu

Azure Blob Storage depolanabilen iki tür blob vardır: blok ve sayfa blobları. SQL Server 2016 ve üzeri için blok blobu tercih edilir.

Depolama anahtarı kimlik bilgileri içinde kullanılıyorsa sayfa blobu kullanılır; Paylaşılan Erişim İmzası kullanılırsa blok blobu kullanılır.

Blok blobu yedekleme yalnızca SQL Server 2016 veya sonraki sürümlerde Azure Blob Storage yedekleme için kullanılabilir. SQL Server 2016 veya üzerini çalıştırıyorsanız sayfa blobu yerine blok blobu yedekleme.

Başlıca nedenler şunlardır:

  • Paylaşılan Erişim İmzası, depolama anahtarına kıyasla blob erişimini yetkilendirmenin daha güvenli bir yoludur.
  • Daha iyi yedekleme ve geri yükleme performansı elde etmek ve daha büyük veritabanı yedeklemesini desteklemek için birden çok blok blobu yedekleyebilirsiniz.
  • Blok blobu, sayfa blobundan daha ucuzdur.
  • Bir ara sunucu aracılığıyla page blob'larına yedekleme yapması gereken müşterilerin backuptourl.exe kullanmaları gerekir.

Büyük bir veritabanının Azure Blob Storage yedeklemesi, Azure SQL Managed Instance T-SQL farklılıkları, sınırlamaları ve bilinen sorunlar'da listelenen sınırlamalara tabidir.

Veritabanı çok büyükse:

  • Yedekleme sıkıştırması kullanın veya
  • Birden çok blok bloba yedekleme

Azure Arc tarafından etkinleştirilen Linux, kapsayıcılar ve SQL Managed Instance desteği

SQL Server örneği Aşağıdakiler dahil olmak üzere Linux'ta barındırılıyorsa:

  • Tek başına işletim sistemi
  • Containers
  • Azure Arc tarafından etkinleştirilen SQL Managed Instance
  • Diğer Linux tabanlı ortamlar

Azure Blob Storage url'sine desteklenen tek yedekleme, Paylaşılan Erişim İmzası'nı kullanarak blobları engellemektir.

Azure Blob Depolama

Depolama Hesabı: Depolama hesabı, tüm depolama hizmetlerinin başlangıç noktasıdır. Azure Blob Storage erişmek için önce bir Azure depolama hesabı oluşturun. Daha fazla bilgi için bkz . Depolama Hesabı Oluşturma

Konteyner: Kapsayıcı, bir dizi blobu gruplandırır ve sınırsız sayıda blob depolayabilir. Azure Blob Storage'a SQL Server bir yedekleme yazmak için en azından kök kapsayıcının oluşturulmuş olması gerekir. Bir kapsayıcıda Paylaşılan Erişim İmzası belirteci oluşturabilir ve yalnızca belirli bir kapsayıcıdaki nesnelere erişim vekleyebilirsiniz.

Blob: Herhangi bir türde ve boyutta bir dosya. Azure Blob Storage depolanabilen iki tür blob vardır: blok ve sayfa blobları. SQL Server yedekleme, kullanılan Transact-SQL söz dizimine bağlı olarak blob türünden birini kullanabilir. Bloblar şu URL biçimi kullanılarak adreslenebilir: https://< storage account.blob.core.windows.net/>< container>/<blob>. Azure Blob Storage hakkında daha fazla bilgi için bkz. Azure Blob Storage'a giriş. Sayfa ve blok blobları hakkında daha fazla bilgi için bkz. Blok ve Sayfa Bloblarını Anlama.

 Azure Blob Storage hesaplarının, kapsayıcıların ve blobların diyagramları.

Azure Snapshot: Belirli bir noktada alınan bir Azure blobunun anlık görüntüsü. Daha fazla bilgi için bkz. Blobun Anlık Görüntüsünü Oluşturma. SQL Server yedekleme artık Azure Blob Storage depolanan veritabanı dosyalarının Azure anlık görüntü yedeklemelerini destekliyor. Daha fazla bilgi için bkz. Azure'da Veritabanı Dosyaları için File-Snapshot Yedeklemeleri.

SQL Server bileşenleri

URL: URL, benzersiz bir yedekleme dosyasının Tekdüzen Kaynak Tanımlayıcısını (URI) belirtir. URL, SQL Server yedekleme dosyasının konumunu ve adını sağlamak için kullanılır. URL yalnızca bir kapsayıcıya değil gerçek bir bloba işaret etmelidir. Eğer blob mevcut değilse, oluşturalır. Mevcut bir blob belirtilirse, BACKUP blobdaki mevcut yedekleme dosyasının WITH FORMAT üzerine yazma seçeneği belirtilmediği sürece başarısız olur.

Aşağıda örnek bir URL değeri verilmişti: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak.

Note

HTTP kullanarak URL'ye yedekleme desteklenmez.

Credential: SQL Server kimlik bilgisi, SQL Server dışındaki bir kaynağa bağlanmak için gereken kimlik doğrulama bilgilerini depolamak için kullanılan bir nesnedir. Burada SQL Server yedekleme ve geri yükleme işlemleri, Azure Blob Storage ve kapsayıcısı ile blob nesneleri için kimlik doğrulaması yapmak için kimlik bilgilerini kullanır. Kimlik Bilgisi, depolama hesabının adını ve depolama hesabı erişim anahtarı değerlerini ya da kapsayıcı URL'sini ve Paylaşılan Erişim İmzası belirtecini depolar. Kimlik bilgisi oluşturulduktan sonra, deyimlerin BACKUP/RESTORE söz dizimi blob türünü ve gerekli kimlik bilgilerini belirler.

Paylaşılan Erişim İmzası oluşturma hakkında bir örnek için, bu makalenin devamında Paylaşılan Erişim İmzası Oluşturma örneklerine bakın ve SQL Server Kimlik Bilgisi oluşturmak için bu makalenin devamında Kimlik bilgisi oluşturma örneklerine bakın.

Kimlik bilgileri hakkında daha fazla bilgi için bkz. Credentials (Database Engine).

Kimlik bilgilerinin kullanıldığı diğer örnekler hakkında bilgi için bkz. SQL Server Agent Ara Sunucusu oluşturma.

Azure değiştirilemez depolama desteği

SQL Server 2025 (17.x), fidye yazılımı saldırılarına karşı koruma sağlayan Azure sabit depolama desteği sunar. Sabit depolama alanına yazılan dosyalar değiştirilemezlik tarafından tanımlandığı gibi değiştirilemez veya silinemez.

Genellikle SQL Server yedeklemeler iki adımda oluşturulur. Başlangıçta, .bak yedekleme dosyası sıfırlarla oluşturulur ve ardından dosya verilerle güncelleştirilir. Sabit depolama alanında dosya değişikliğine, dosya yazıldıktan ve işlendikten sonra izin verilmediğinden, yedekleme işlemi artık sıfırlarla yedekleme dosyasını oluşturmak için ilk adımı atlar. Bunun yerine, blok bloblarına yazıldığında yedeklemenin tamamı tek adımda oluşturulur.

Azure depolama, kapsayıcı düzeyi ve sürüm düzeyi olmak üzere iki tür değişmezlik sağlar. Şu anda yalnızca kapsayıcı düzeyinde sabit depolama desteklenir.

SQL Server 2025 (17.x) yedeklemesini URL'ye yaparak değişmez depolama kullanmak için şu adımları izleyin:

  1. Azure depolama kapsayıcınız için değişmezliği yapılandırın.

  2. Veritabanınızı Azure depolama kapsayıcısına yedeklemek için BACKUP dosyasını verin. Sabit depolama alanında seçeneğini kullanırsanız WITH FORMAT ve aynı ada sahip bir yedekleme zaten varsa bir hata alırsınız ve yedekleme başarısız olur.

    BACKUP DATABASE [<Database>] TO URL = '<url>';
    

Azure Blob Storage için güvenlik

Aşağıda, Azure Blob Storage'a yedekleme veya geri yükleme sırasında güvenlikle ilgili dikkat edilmesi gerekenler ve gereksinimler yer alır.

  • Azure Blob Storage için kapsayıcı oluştururken erişimi private olarak ayarlamanızı öneririz. Özel erişimin ayarlanması, erişimin Azure hesabında kimlik doğrulaması yapmak için gerekli bilgileri sağlayabilen kullanıcılara veya hesaplara erişimini kısıtlar.

    Important

    SQL Server, Azure hesap adı ve erişim anahtarı kimlik doğrulaması ya da Paylaşılan Erişim İmzası ve erişim belirtecinin SQL Server Kimlik Bilgileri'nde depolanmasını gerektirir. Bu bilgiler, yedekleme veya geri yükleme işlemleri gerçekleştirirken Azure hesabında kimlik doğrulaması yapmak için kullanılır.

    Warning

    Azure Storage depolama hesabı için disabling Paylaşılan Anahtar yetkilendirmesini destekler. Paylaşılan Anahtar yetkilendirmesi devre dışı bırakılırsa SQL Server URL'ye Yedekleme çalışmaz.

  • BACKUP veya RESTORE komutlarını vermek için kullanılan kullanıcı hesabı, db_backup işleç veritabanı rolünde ve Herhangi bir kimlik bilgilerini değiştirme izinlerine sahip olmalıdır.

Azure Blob Storage yedekleme/geri yükleme sınırlamaları

  • SQL Server, sayfa blobu kullanılarak desteklenen maksimum yedekleme boyutunu 1 TB ile sınırlar. Blok blobları kullanılarak desteklenen maksimum yedekleme boyutu yaklaşık 195,3 GB (50.000 blok * 4 MB MAXTRANSFERSIZE) ile sınırlıdır. Blok blobları, çok daha büyük yedekleme boyutlarını desteklemek için şerit oluşturmayı destekler; sınır en fazla 64 URL'dir ve bu da aşağıdaki formülle sonuçlanır: 64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB.

    Important

    Tek bir blok blobu tarafından desteklenen maksimum yedekleme boyutu yaklaşık 195,3 GB olsa da, SQL Server daha küçük blok boyutlarında yazması mümkündür ve bu da yedeklemenin tamamı aktarilmeden önce SQL Server 50.000 blok sınırına ulaşmasına neden olabilir. Özellikle fark veya sıkıştırılmamış yedeklemeler kullanıyorsanız blok sınırını önlemek için yedeklemeleri (200 GB'tan küçük olsalar bile) şeritleyin.

  • İşlem günlüğü yedeklemeleri, birden çok yedekleme dosyasına yedek alırken kullanıcı tarafından belirtilen MAXTRANSFERSIZE'i yoksayar. Bunun yerine, yedekleme komutundaki değerden bağımsız olarak MAXTRANSFERSIZE birden fazla dosya belirtilirse 64 KB kullanılır. Bu nedenle, URL'ye bir işlem günlüğü yedeklemesinin en büyük boyutu yaklaşık 195,3 GB'tır (50.000 blok * 4 MB MAXTRANSFERSIZE * 1 dosya VEYA 50.000 blok * 64 KB * 64 dosya). Sıkıştırma, daha büyük bir işlem günlüğünün yedeklenebilmesini sağlayabilir, ancak sıkıştırma oranları farklılık gösterir.

  • Transact-SQL, SMO, PowerShell cmdlet'lerini veya SQL Server Management Studio Yedekleme veya Geri Yükleme sihirbazını kullanarak yedekleme veya geri yükleme deyimleri oluşturabilirsiniz.

  • Azure Storage hesabına yedekleme yaparken SQL Server yalnızca Paylaşılan Erişim İmzası (SAS) belirteçleri veya depolama hesabı anahtarlarıyla kimlik doğrulamasını destekler. Microsoft Entra ID (formerly Azure Active Directory) ile kimlik doğrulaması dahil olmak üzere diğer tüm kimlik doğrulama yöntemleri desteklenmez.

  • Mantıksal cihaz adı oluşturma desteklenmez. Bu nedenle sp_dumpdevice kullanarak veya SQL Server Management Studio aracılığıyla URL'yi yedekleme cihazı olarak eklemek desteklenmez.

  • Mevcut yedekleme bloblarına ekleme desteklenmez. Mevcut bir blob üzerine yapılan yedeklemeler, yalnızca WITH FORMAT seçeneği kullanılarak yazılabilir. Ancak, dosya anlık görüntüsü yedeklemeleri kullanılırken (WITH FILE_SNAPSHOT bağımsız değişkeni kullanılarak), özgün dosya anlık görüntüsü yedeklemesiyle oluşturulmuş yetim dosya anlık görüntüsü bırakmamak için WITH FORMAT bağımsız değişkenine izin verilmez.

  • Tek bir yedekleme işleminde birden çok bloba yedekleme yalnızca blok blobları kullanılarak ve SQL Kimlik Bilgileri için depolama hesabı anahtarı yerine Paylaşılan Erişim İmzası (SAS) belirteci kullanılarak desteklenir.

  • BLOCKSIZE Belirtme, sayfa blobları için desteklenmez.

  • MAXTRANSFERSIZE Belirtme işlemi sayfa bloblarını desteklemez.

  • Yedek kümesi seçeneklerini belirtme - RETAINDAYS ve EXPIREDATE desteklenmemektedir.

  • SQL Server yedekleme cihazı adı için en fazla 259 karakter sınırı vardır. Belirtilen URL BACKUP TO URL için kullanılan gerekli öğeler 36 karakter tüketir, bu durum hesap, kapsayıcı ve blob adları için toplam 223 karakter bırakır.

  • SQL Server 2019 (15.x) ve önceki sürümlerin Paylaşılan Erişim İmzası (SAS) belirteçleri için 256 karakter sınırı vardır ve bu da kullanılabilecek belirteçlerin türünü sınırlar (örneğin, Kullanıcı Temsilcisi Anahtarı belirteçleri desteklenmez).

  • Sunucunuz bir ara sunucu aracılığıyla Azure erişiyorsa, izleme bayrağı 1819'ı kullanmanız ve ardından aşağıdaki yöntemlerden biriyle WinHTTP proxy yapılandırmasını ayarlamanız gerekir:

    • Windows XP veya Windows Server 2003 ve önceki sürümlerde proxycfg.exe yardımcı programı.
    • Windows Vista ve Windows Server 2008 veya sonraki sürümlerde netsh.exe yardımcı programı.
  • 2025'ten önce SQL Server, Azure Blob Storage için sabit depolamayı desteklemez. Sabit Depolama ilkesini false olarak ayarlayın.

  • SQL Server 2025 ve sonraki sürümlerde destek için bkz. Azure sabit depolama desteği.

    • Azure depolama, kapsayıcı düzeyi ve sürüm düzeyi olmak üzere iki tür değişmezlik sağlar. Şu anda yalnızca kapsayıcı düzeyinde sabit depolama desteklenir.
  • URL'ye yedekleme premium depolama için desteklenmez.

Azure Blob Storage'de desteklenen bağımsız değişkenler ve ifadeler

Azure Blob Storage'da yedekleme/geri yükleme işlemleri için destek

Backup/Restore Açıklaması Supported Exceptions Comments
BACKUP Yes BLOCKSIZE ve MAXTRANSFERSIZE blok blobları için desteklenir. Sayfa blobları için destek sağlanmıyor. Blok blobunda BACKUP, SQL Server kimlik bilgilerine kaydedilmiş bir Paylaşılan Erişim İmzası gerektirir. Sayfa blobunda BACKUP, depolama hesabı anahtarının SQL Server kimlik bilgilerine kaydedilmesini ve WITH CREDENTIAL bağımsız değişkeninin belirtilmesi gerekir.
RESTORE Yes SQL Server kimlik bilgisi tanımlanmalıdır ve SQL Server kimlik bilgisi, depolama hesabı anahtarı gizli olarak tanımlanıyorsa WITH CREDENTIAL bağımsız değişkeni belirtilmelidir.
RESTORE FILELISTONLY Yes SQL Server kimlik bilgisi tanımlanmalıdır ve SQL Server kimlik bilgisi, depolama hesabı anahtarı gizli olarak tanımlanıyorsa WITH CREDENTIAL bağımsız değişkeni belirtilmelidir.
RESTORE HEADERONLY Yes SQL Server kimlik bilgisi tanımlanmalıdır ve SQL Server kimlik bilgisi, depolama hesabı anahtarı gizli olarak tanımlanıyorsa WITH CREDENTIAL bağımsız değişkeni belirtilmelidir.
RESTORE LABELONLY Yes SQL Server kimlik bilgisi tanımlanmalıdır ve SQL Server kimlik bilgisi, depolama hesabı anahtarı gizli olarak tanımlanıyorsa WITH CREDENTIAL bağımsız değişkeni belirtilmelidir.
RESTORE VERIFYONLY Yes SQL Server kimlik bilgisi tanımlanmalıdır ve SQL Server kimlik bilgisi, depolama hesabı anahtarı gizli olarak tanımlanıyorsa WITH CREDENTIAL bağımsız değişkeni belirtilmelidir.
RESTORE REWINDONLY No

Yedekleme deyimleri hakkında söz dizimi ve genel bilgiler için bkz . BACKUP.

Geri yükleme deyimleri hakkında söz dizimi ve genel bilgiler için bkz. RESTORE Deyimleri.

Azure Blob Storage'de yedekleme için argüman desteği

Argument Supported Exception Comments
DATABASE Yes
LOG Yes
TO (URL) Yes ve DISK'nin aksineTAPE, URL mantıksal ad belirtmeyi veya oluşturmayı desteklemez. Bu bağımsız değişken, yedekleme dosyasının URL yolunu belirtmek için kullanılır.
MIRROR TO Yes
WITH Seçenekler:
CREDENTIAL Yes WITH CREDENTIAL yalnızca Azure Blob Storage yedeklemek için BACKUP TO URL seçeneği kullanıldığında ve yalnızca SQL Server kimlik bilgisi gizli dizi olarak depolama hesabı anahtarı kullanılarak tanımlandığında desteklenir
FILE_SNAPSHOT Yes
ENCRYPTION Yes WITH ENCRYPTION bağımsız değişkeni belirtildiğinde, SQL Server Dosya-Anlık Görüntüsü Yedekleme, yedekleme yapılmadan önce veritabanının tamamının TDE ile şifrendiğinden emin olur ve eğer öyleyse, veritabanı için TDE'de belirtilen algoritmayı kullanarak anlık görüntü dosyasının yedekleme dosyasını şifreler. Veritabanının tamamında veritabanındaki tüm veriler şifrelenmemişse yedekleme başarısız olur (örneğin, şifreleme işlemi henüz tamamlanmamıştır).
DIFFERENTIAL Yes
COPY_ONLY Yes
COMPRESSION|NO_COMPRESSION Yes Dosya anlık görüntüsü yedekleme için desteklenmez
DESCRIPTION Yes
NAME Yes
EXPIREDATE | RETAINDAYS No
NOINIT | INIT No Bloblara ekleme mümkün değildir. Yedeklemenin üzerine yazmak için WITH FORMAT değişkenini kullanın. Ancak, dosya anlık görüntüsü yedeklemeleri WITH FILE_SNAPSHOT bağımsız değişkeni kullanılarak yapılırken, özgün yedeklemeyle oluşturulan yalnız kalmış dosya anlık görüntülerini önlemek için WITH FORMAT bağımsız değişkenine izin verilmez.
NOSKIP | SKIP No
NOFORMAT | FORMAT Yes Mevcut bir bloba alınan yedekleme belirtilmediği sürece WITH FORMAT başarısız olur. WITH FORMAT belirtildiğinde mevcut blobun üzerine yazılır. Ancak, dosya anlık görüntüsü yedeklemeleri kullanılırken (WITH FILE_SNAPSHOT bağımsız değişkeni kullanılarak), özgün dosya anlık görüntüsü yedeklemesiyle oluşturulmuş yetim dosya anlık görüntüsü bırakmamak için FORMAT bağımsız değişkenine izin verilmez. Ancak, dosya anlık görüntüsü yedeklemeleri WITH FILE_SNAPSHOT bağımsız değişkeni kullanılarak yapılırken, özgün yedeklemeyle oluşturulan yalnız kalmış dosya anlık görüntülerini önlemek için WITH FORMAT bağımsız değişkenine izin verilmez.
MEDIADESCRIPTION Yes
MEDIANAME Yes
BLOCKSIZE Yes Sayfa blobu için desteklenmez. Blok blobu için desteklenir. Blok blobunda izin verilen 50.000 bloğun kullanımını iyileştirmenizi öneririz BLOCKSIZE=65536 .
BUFFERCOUNT Yes
MAXTRANSFERSIZE Yes Sayfa blobu için desteklenmez. Blok blobu için desteklenir. Varsayılan değer 1048576. Değer, 65.536 baytlık artışlarla 4 MB'a kadar değişebilir.

Blok blobunda izin verilen 50.000 bloğun kullanımını iyileştirmenizi öneririz MAXTRANSFERSIZE=4194304 .
NO_CHECKSUM | CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
NORECOVERY | STANDBY Yes
NO_TRUNCATE Yes

Yedekleme bağımsız değişkenleri hakkında daha fazla bilgi için bkz. YEDEKLEME.

Azure Blob Storage'da geri yükleme argümanları desteği

Argument Supported Exceptions Comments
DATABASE Yes
LOG Yes
FROM (URL) Yes FROM URL bağımsız değişkeni, yedekleme dosyasının URL yolunu belirtmek için kullanılır.
WITH Seçenekler:
CREDENTIAL Yes WITH CREDENTIAL yalnızca Azure Blob Storage'dan geri yüklemek için RESTORE FROM URL seçeneği kullanıldığında desteklenir.
PARTIAL Yes
RECOVERY | NORECOVERY | STANDBY Yes
LOADHISTORY Yes
MOVE Yes
REPLACE Yes
RESTART Yes
RESTRICTED_USER Yes
FILE No
PASSWORD Yes
MEDIANAME Yes
MEDIAPASSWORD Yes
BLOCKSIZE Yes
BUFFERCOUNT No
MAXTRANSFERSIZE No
CHECKSUM | NO_CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
FILESTREAM Yes Anlık görüntü yedekleme için desteklenmez
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
KEEP_REPLICATION Yes
KEEP_CDC Yes
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER Yes
STOPAT | STOPATMARK | STOPBEFOREMARK Yes

Geri yükleme bağımsız değişkenleri hakkında daha fazla bilgi için bkz. RESTORE Deyimleri - Bağımsız Değişkenler.

SSMS ile yedekleme

SQL Server Kimlik Bilgisi kullanarak SQL Server Management Studio'daki Yedekleme görevi aracılığıyla veritabanını URL'ye yedekleyebilirsiniz.

Note

SQL Server dosya anlık görüntüsü yedeklemesi oluşturmak veya var olan bir medya kümesinin üzerine yazmak için, SQL Server Management Studio Yedekleme görevi yerine Transact-SQL, PowerShell veya C# kullanmanız gerekir.

Aşağıdaki adımlarda, Azure depolamayı yedeklemeye izin vermek için SQL Server Management Studio'daki Veritabanını Yedekle görevinde yapılan değişiklikler açıklanmaktadır:

  1. Object Explorer'da SQL Server Database Engine örneğine bağlanın ve bu örneği genişletin.

  2. Veritabanları'nı genişletin, istediğiniz veritabanına sağ tıklayın, Görevler'in üzerine gelin ve ardından Yedekle... seçeneğini belirleyin.

  3. Genel sayfasındaki Hedef bölümünde URL seçeneği Yedekle: açılır listesindeki seçenekler arasında mevcuttur. URL seçeneği Azure depolama alanına yedekleme oluşturmak için kullanılır. Ekle'yi seçtiğinizde Yedekleme Hedefi Seç iletişim kutusu açılır:

    1. Azure storage container: Yedekleme dosyalarını depolamak için Azure depolama kapsayıcısının adı. Açılan listeden mevcut bir kapsayıcıyı seçin veya kapsayıcıyı el ile girin.

    2. Paylaşılan Erişim İlkesi: El ile girilen kapsayıcı için Paylaşılan Erişim İmzası'nı girin. Mevcut bir kapsayıcı seçildiyse bu alan kullanılamaz.

    3. Yedekleme Dosyası: Yedekleme dosyasının adı.

    4. Yeni Kapsayıcı: Paylaşılan Erişim İmzanız olmayan mevcut bir kapsayıcıyı kaydetmek için kullanılır. Bkz. Microsoft Azure Aboneliğine bağlanma (URL'ye Yedekleme).

Note

Ekle , tek bir medya kümesi için birden çok yedekleme dosyasını ve depolama kapsayıcısını destekler.

Hedef olarak URL'yi seçtiğinizde , Medya Seçenekleri sayfasındaki bazı seçenekler devre dışı bırakılır. Aşağıdaki makalelerde Veritabanını Yedekle iletişim kutusu hakkında daha fazla bilgi yer alır:

Bakım planını yedekleme için kullanın

Daha önce açıklanan yedekleme görevine benzer şekilde, SQL Server Management Studio'daki Bakım Planı Sihirbazı hedef seçeneklerden biri olarak URL ve SQL Kimlik Bilgileri gibi Azure depolamaya yedeklemek için gereken diğer destekleyici nesneleri içerir. Aynı şekildedir Daha fazla bilgi için Bakım Planı Kullanma Sihirbazı'ndakiYedekleme Görevlerini Tanımlama bölümüne bakın.

Note

Şeritli yedekleme kümesi, SQL Server dosya anlık görüntüsü yedeklemesi veya Paylaşılan Erişim belirteci kullanan bir SQL kimlik bilgisi oluşturmak için Bakım Planı Sihirbazı'nda Yedekleme görevi yerine Transact-SQL, PowerShell veya C# kullanmanız gerekir.

SSMS ile geri yükleme

Veritabanını Geri Yükle görevi, geri yükleneceği cihaz olarak URL'yi içerir. Aşağıdaki adımlar, Azure Blob Storage geri yüklemek için Geri Yükleme görevini kullanmayı açıklar:

  1. Veritabanları'ya sağ tıklayın ve Veritabanını Geri Yükle...'yi seçin.

  2. Genel sayfasında, Kaynak bölümünün altında Cihaz'ı seçin.

  3. Yedek cihazları seç iletişim kutusunu açmak için gözat (...) düğmesini seçin.

  4. Yedekleme medya türü: açılan listesinden URL'yi seçin. Yedek Dosya Konumu Seç iletişim kutusunu açmak için Ekle'yi seçin.

    1. Azure storage container: Yedekleme dosyalarını içeren Azure depolama kapsayıcısının tam adı. Açılır listeden var olan bir kapsayıcıyı seçin veya tam nitelikli kapsayıcı adını manuel olarak girin.

    2. Paylaşılan Erişim İmzası: Belirlenen kapsayıcı için Paylaşılan Erişim İmzası girmek için kullanılır.

    3. Eklemek: Paylaşılan Erişim İmzanız olmayan mevcut bir kapsayıcıyı kaydetmek için kullanılır. Bkz. Microsoft Azure Aboneliğine bağlanma (URL'ye Yedekleme).

    4. OK: SQL Server sağladığınız SQL Kimlik Bilgisi ile Azure depolamaya bağlanır ve Microsoft Azure'da Yedek Dosyası Bul iletişim kutusunu açar. Depolama kapsayıcısında bulunan yedekleme dosyaları bu sayfada görüntülenir. Geri yüklemek için kullanmak istediğiniz dosyayı seçin ve Tamam'ı seçin. Bu işlem sizi Yedekleme Cihazlarını Seç iletişim kutusuna geri götürür ve bu iletişim kutusunda Tamam'ı seçerek geri yüklemeyi tamamlayabileceğiniz ana Geri Yükleme iletişim kutusuna geri dönersiniz.

Kod örnekleri

Bu bölüm aşağıdaki örnekleri içerir.

Note

Azure Blob Storage ile SQL Server 2016 kullanma kılavuzu için bkz. Azure Blob Storage ile SQL Server Kullanma Kılavuzu

Paylaşılan Erişim İmzası Oluşturma

Aşağıdaki örnek, yeni oluşturulan bir kapsayıcıda SQL Server Kimlik Bilgisi oluşturmak için kullanılabilecek Paylaşılan Erişim İmzaları oluşturur. Betik, Saklı Erişim İlkesi ile ilişkili bir Paylaşılan Erişim İmzası oluşturur. Daha fazla bilgi için bkz. Paylaşılan Erişim İmzaları, Bölüm 1: SAS Modelini Anlama. Betik ayrıca SQL Server'da kimlik bilgisi oluşturmak için gereken T-SQL komutunu yazar.

Note

Örnek için Azure PowerShell gerekir. Azure PowerShell yükleme ve kullanma hakkında bilgi için bkz. Azure PowerShell yükleme ve yapılandırma. Bu betikler Azure PowerShell 5.1.15063 kullanılarak doğrulanmıştır.

Bir Saklı Erişim İlkesi ile ilişkili Paylaşılan Erişim İmzası

# Define global variables for the script
$prefixName = '<a prefix name>'  # used as the prefix for the name for various objects
$subscriptionName = '<your subscription name>'   # the name of subscription name you will use
$locationName = '<a data center location>'  # the data center region you will use
$storageAccountName = $prefixName + 'storage' # the storage account name you will create or use
$containerName = $prefixName + 'container'  # the storage container name to which you will attach the SAS policy with its SAS token
$policyName = $prefixName + 'policy' # the name of the SAS policy

# Set a variable for the name of the resource group you will create or use
$resourceGroupName = $prefixName + 'rg'

# adds an authenticated Azure account for use in the session
Connect-AzAccount

# set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionName $subscriptionName

# create a new resource group - comment out this line to use an existing resource group
New-AzResourceGroup -Name $resourceGroupName -Location $locationName

# Create a new ARM storage account - comment out this line to use an existing ARM storage account
New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName

# Get the access keys for the ARM storage account
$accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName

# Create a new storage account context using an ARM storage account
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].value

# Creates a new container in Azure Blob Storage
$container = New-AzStorageContainer -Context $storageContext -Name $containerName
$cbc = $container.CloudBlobContainer

# Sets up a Stored Access Policy and a Shared Access Signature for the new container
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.TrimStart('?'))''

# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
Write-Host 'Credential T-SQL'
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri, $sas.TrimStart('?')
$tSql | clip
Write-Host $tSql

Betiği başarıyla çalıştırdıktan sonra, CREATE CREDENTIAL komutunu bir sorgu aracına kopyalayın, SQL Server örneğine bağlanın ve Paylaşılan Erişim İmzası ile kimlik bilgilerini oluşturmak için komutunu çalıştırın.

Kimlik oluşturma

Aşağıdaki örneklerde Azure Blob Storage kimlik doğrulaması için SQL Server kimlik bilgileri oluşturulur. Aşağıdakilerden birini yapın.

  1. Paylaşılan Erişim İmzası Kullanma

    Paylaşılan Erişim İmzası oluşturmak için önceki betiği çalıştırdıysanız, CREATE CREDENTIAL SQL Server örneğine bağlı bir sorgu düzenleyicisine kopyalayın ve komutunu çalıştırın.

    Aşağıdaki T-SQL, Paylaşılan Erişim İmzası kullanmak için kimlik bilgilerini oluşturan bir örnektir.

    IF NOT EXISTS (SELECT *
                   FROM sys.credentials
                   WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')
        CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
            WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
    
  2. Depolama hesabı kimliğini ve erişim anahtarını kullanma

    IF NOT EXISTS (SELECT *
                   FROM sys.credentials
                   WHERE name = '<mycredentialname>')
        CREATE CREDENTIAL [<mycredentialname>]
            WITH IDENTITY = '<mystorageaccountname>', SECRET = '<mystorageaccountaccesskey>';
    

Tam veritabanı yedeklemesi gerçekleştirme

Aşağıdaki örnekler, AdventureWorks2025 veritabanının Azure Blob Storage tam veritabanı yedeğini gerçekleştirir. Aşağıdaki örneklerden birini kullanın:

  1. Paylaşılan Erişim İmzası kullanarak URL'ye

    BACKUP DATABASE AdventureWorks2022
        TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak';
    GO
    
  2. Depolama hesabı kimliği ve erişim anahtarı kullanılarak URL'ye erişim

    BACKUP DATABASE AdventureWorks2022
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'
    WITH CREDENTIAL = '<mycredentialname>',
    COMPRESSION, STATS = 5;
    GO
    

STOPAT kullanarak belirli bir zamana geri yükleme

Aşağıdaki örnek, AdventureWorks2025 adlı örnek veritabanını belirli bir andaki durumuna geri yükler ve bir geri yükleme işlemini gösterir.

Paylaşılan Erişim İmzası'nın kullanıldığı URL'den

RESTORE DATABASE AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.bak'
    WITH MOVE 'AdventureWorks2022_data' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.mdf',
    MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.ldf',
    NORECOVERY, REPLACE, STATS = 5;
GO

RESTORE LOG AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'
    WITH RECOVERY, STOPAT = 'May 18, 2015 5:35 PM';
GO