Bagikan melalui


Pencadangan SQL Server ke URL untuk Microsoft Azure Blob Storage

Berlaku untuk: SQL Server Azure SQL Managed Instance

Artikel ini memperkenalkan konsep, persyaratan, dan komponen yang diperlukan untuk menggunakan Microsoft Azure Blob Storage sebagai tujuan pencadangan. Fungsionalitas pencadangan dan pemulihan sama atau mirip dengan saat menggunakan DISK atau TAPE, dengan beberapa perbedaan. Perbedaan ini dan beberapa contoh kode disertakan dalam artikel ini.

Gambaran Umum

Penting untuk memahami komponen dan interaksi di antara mereka untuk melakukan pencadangan ke atau memulihkan dari Microsoft Azure Blob Storage.

Membuat akun Azure Storage dalam langganan Azure Anda adalah langkah pertama dalam proses ini. Akun penyimpanan ini adalah akun administratif yang memiliki izin administratif penuh pada semua kontainer dan objek yang dibuat dengan akun penyimpanan. SQL Server dapat menggunakan nama akun penyimpanan Azure dan nilai kunci aksesnya untuk mengautentikasi dan menulis dan membaca blob ke Microsoft Azure Blob Storage atau menggunakan token Tanda Tangan Akses Bersama yang dihasilkan pada kontainer tertentu yang memberinya hak baca dan tulis. Untuk informasi selengkapnya tentang Akun Azure Storage, lihat Tentang Akun Azure Storage dan untuk informasi selengkapnya tentang Tanda Tangan Akses Bersama, lihat Tanda Tangan Akses Bersama, Bagian 1: Memahami Model SAS. Informasi masuk SQL Server akan menyimpan informasi autentikasi ini dan digunakan selama operasi pencadangan atau pemulihan.

Penyimpanan Azure dan penyimpanan yang kompatibel dengan S3

SQL Server 2012 Service Pack 1 CU2 dan SQL Server 2014 memperkenalkan kemampuan untuk mencadangkan ke URL yang diarahkan ke Azure Blob Storage, menggunakan sintaks T-SQL yang sudah dikenal untuk menulis cadangan dengan aman ke penyimpanan Azure. SQL Server 2016 (13.x) memperkenalkan cadangan rekam jepret File untuk file database di Azure dan keamanan melalui kunci tanda tangan akses bersama (SAS), cara yang aman dan sederhana untuk mengautentikasi sertifikat ke kebijakan keamanan Azure Storage. SQL Server 2022 (16.x) memperkenalkan kemampuan untuk menulis cadangan ke penyimpanan objek yang kompatibel dengan S3, dengan fungsionalitas pencadangan dan pemulihan yang secara konseptual mirip dengan bekerja dengan Backup ke URL menggunakan Azure Blob Storage sebagai jenis perangkat cadangan. SQL Server 2022 (16.x) memperluas sintaks BACKUP/RESTORE TO/FROM URL dengan menambahkan dukungan untuk konektor S3 baru menggunakan REST API.

Artikel ini berisi informasi tentang menggunakan Cadangan ke URL untuk Azure Blob Storage. Untuk mempelajari selengkapnya tentang menggunakan Cadangan ke URL untuk penyimpanan yang kompatibel dengan S3, lihat Pencadangan dan pemulihan SQL Server dengan penyimpanan objek yang kompatibel dengan S3.

Pencadangan ke blob blok Azure Storage vs. blob halaman

Ada dua jenis blob yang dapat disimpan di Microsoft Azure Blob Storage: blob blok dan halaman. Untuk SQL Server 2016 dan yang lebih baru, blob blok lebih disukai.

Jika kunci penyimpanan digunakan dalam kredensial, blob halaman akan digunakan; jika Tanda Tangan Akses Bersama digunakan, blob blok akan digunakan.

Pencadangan untuk memblokir blob hanya tersedia di SQL Server 2016 atau versi yang lebih baru untuk pencadangan ke Azure Blob Storage. Cadangkan untuk memblokir blob alih-alih blob halaman jika Anda menjalankan SQL Server 2016 atau yang lebih baru.

Alasan utamanya adalah:

  • Tanda Tangan Akses Bersama adalah cara yang lebih aman untuk mengotorisasi akses blob dibandingkan dengan kunci penyimpanan.
  • Anda dapat mencadangkan ke beberapa blob blok untuk mendapatkan performa pencadangan dan pemulihan yang lebih baik, dan mendukung pencadangan database yang lebih besar.
  • Blob blok lebih murah daripada blob halaman.
  • Pelanggan yang perlu mencadangkan ke blob halaman melalui server proksi harus menggunakan backuptourl.exe.

Mengambil cadangan database besar ke Azure Blob Storage tunduk pada batasan yang tercantum dalam perbedaan, batasan, dan masalah umum T-SQL Azure SQL Managed Instance.

Jika database terlalu besar, baik:

  • Menggunakan kompresi cadangan atau
  • Mencadangkan ke beberapa blob blok

Dukungan di Linux, kontainer, dan SQL Managed Instance yang diaktifkan oleh Azure Arc

Jika instans SQL Server dihosting di Linux, termasuk:

  • Sistem operasi yang berdiri sendiri
  • Kontainer
  • SQL Managed Instance diaktifkan oleh Azure Arc
  • Lingkungan berbasis Linux lainnya

Satu-satunya cadangan yang didukung ke URL untuk Azure Blob Storage adalah memblokir blob, menggunakan Tanda Tangan Akses Bersama.

Microsoft Azure Blob Storage

Akun Penyimpanan: Akun penyimpanan adalah titik awal untuk semua layanan penyimpanan. Untuk mengakses Microsoft Azure Blob Storage, pertama-tama buat akun penyimpanan Azure. Untuk informasi selengkapnya, lihat Membuat Akun Penyimpanan

Kontainer: Kontainer menyediakan pengelompokan sekumpulan blob, dan dapat menyimpan blob dalam jumlah tak terbatas. Untuk menulis cadangan SQL Server ke Azure Blob Storage, Anda harus memiliki setidaknya kontainer akar yang dibuat. Anda dapat membuat token Tanda Tangan Akses Bersama pada kontainer dan memberikan akses ke objek pada kontainer tertentu saja.

Blob: File dengan jenis dan ukuran apa pun. Ada dua jenis blob yang dapat disimpan di Azure Blob Storage: blob blok dan halaman. Pencadangan SQL Server dapat menggunakan salah satu jenis blob tergantung pada sintaks Transact-SQL yang digunakan. Blob dapat diatasi menggunakan format URL berikut: https://< storage account.blob.core.windows.net/>< container>/<blob>. Untuk informasi selengkapnya tentang Azure Blob Storage, lihat Pengenalan Azure Blob Storage. Untuk informasi selengkapnya tentang blob halaman dan blok, lihat Memahami Blob Blok dan Halaman.

Diagram akun, kontainer, dan blob Azure Blob Storage.

Azure Snapshot: Rekam jepret blob Azure yang diambil pada titik waktu tertentu. Untuk informasi selengkapnya, lihat Membuat Snapshot Blob. Cadangan SQL Server sekarang mendukung cadangan rekam jepret Azure dari file database yang disimpan di Azure Blob Storage. Untuk informasi selengkapnya, lihat Cadangan Rekam Jepret File untuk File Database di Azure.

Komponen SQL Server

URL: URL menentukan Pengidentifikasi Sumber Daya Seragam (URI) ke file cadangan unik. URL digunakan untuk menyediakan lokasi dan nama file cadangan SQL Server. URL harus menunjuk ke blob sebenarnya, bukan hanya kontainer. Jika blob tidak ada, blob akan dibuat. Jika blob yang ada ditentukan, BACKUP gagal, kecuali opsi "WITH FORMAT" ditentukan untuk menimpa file cadangan yang ada dalam blob.

Berikut adalah nilai URL sampel: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak.

Catatan

Pencadangan ke URL menggunakan HTTP TIDAK didukung.

Kredensial: Kredensial SQL Server adalah objek yang digunakan untuk menyimpan informasi autentikasi yang diperlukan untuk menyambungkan ke sumber daya di luar SQL Server. Di sini, proses pencadangan dan pemulihan SQL Server menggunakan kredensial untuk mengautentikasi ke Azure Blob Storage dan objek kontainer dan blobnya. Kredensial menyimpan nama akun penyimpanan dan nilai kunci akses akun penyimpanan atau URL kontainer dan token Tanda Tangan Akses Bersamanya. Setelah kredensial dibuat, sintaks pernyataan BACKUP/RESTORE menentukan jenis blob dan kredensial yang diperlukan.

Untuk contoh tentang cara membuat Tanda Tangan Akses Bersama, lihat Membuat contoh Tanda Tangan Akses Bersama nanti di artikel ini dan untuk membuat Kredensial SQL Server, lihat Membuat contoh kredensial nanti di artikel ini.

Untuk informasi umum tentang kredensial, lihat Kredensial

Untuk informasi tentang contoh lain tempat kredensial digunakan, lihat Membuat Proksi Agen SQL Server.

Keamanan untuk Azure Blob Storage

Berikut ini adalah pertimbangan dan persyaratan keamanan saat mencadangkan atau memulihkan dari Azure Blob Storage.

  • Saat membuat kontainer untuk Azure Blob Storage, kami sarankan Anda mengatur akses ke privat. Mengatur akses ke privat membatasi akses ke pengguna atau akun yang dapat memberikan informasi yang diperlukan untuk mengautentikasi ke akun Azure.

    Penting

    SQL Server mengharuskan nama akun Azure dan autentikasi kunci akses atau Tanda Tangan Akses Bersama dan token akses disimpan dalam Kredensial SQL Server. Informasi ini digunakan untuk mengautentikasi ke akun Azure saat melakukan operasi pencadangan atau pemulihan.

    Peringatan

    Azure Storage mendukung menonaktifkan otorisasi Kunci Bersama untuk akun penyimpanan. Jika otorisasi Kunci Bersama dinonaktifkan, Pencadangan SQL Server Ke URL tidak akan berfungsi.

  • Akun pengguna yang digunakan untuk mengeluarkan perintah BACKUP atau RESTORE harus berada dalam peran database operator db_backup dengan Mengubah izin kredensial apa pun.

Batasan pencadangan/pemulihan ke Azure Blob Storage

  • SQL Server membatasi ukuran cadangan maksimum yang didukung menggunakan blob halaman hingga 1 TB. Ukuran cadangan maksimum yang didukung menggunakan blob blok dibatasi hingga sekitar 200 GB (50.000 blok * 4 MB MAXTRANSFERSIZE). Blob blok mendukung striping untuk mendukung ukuran cadangan yang jauh lebih besar - batasnya adalah maksimum 64 URL, yang menghasilkan rumus berikut: 64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB.

    Penting

    Meskipun ukuran cadangan maksimum yang didukung oleh blob blok tunggal adalah 200 GB, SQL Server dapat menulis dalam ukuran blok yang lebih kecil, yang dapat menyebabkan SQL Server mencapai batas blok 50.000 sebelum seluruh cadangan ditransfer. Pencadangan stripe (bahkan jika lebih kecil dari 200 GB) untuk menghindari batas blok, terutama ketika Anda menggunakan cadangan diferensial atau tidak dikompresi.

  • Anda dapat mengeluarkan pernyataan pencadangan atau pemulihan dengan menggunakan transact-SQL, SMO, cmdlet PowerShell, wizard Pencadangan atau Pemulihan SQL Server Management Studio.

  • Pencadangan ke akun Azure Storage hanya mendukung autentikasi dengan token Tanda Tangan Akses Bersama (SAS) atau kunci akun penyimpanan. Semua metode autentikasi lainnya, termasuk autentikasi dengan ID Microsoft Entra (sebelumnya Azure Active Directory), tidak didukung.

  • Pembuatan nama perangkat logis tidak didukung. Jadi menambahkan URL sebagai perangkat cadangan menggunakan sp_dumpdevice atau melalui SQL Server Management Studio tidak didukung.

  • Penambahan ke blob cadangan yang ada tidak didukung. Cadangan ke blob yang ada hanya dapat ditimpa dengan menggunakan opsi WITH FORMAT . Namun, saat menggunakan cadangan rekam jepret file (menggunakan argumen WITH FILE_SNAPSHOT), argumen WITH FORMAT tidak diizinkan untuk menghindari meninggalkan salinan bayangan file tanpa induk yang dibuat dengan cadangan rekam jepret file asli.

  • Cadangan ke beberapa blob dalam satu operasi cadangan hanya didukung menggunakan blob blok dan menggunakan token Tanda Tangan Akses Bersama (SAS) daripada kunci akun penyimpanan untuk Informasi masuk SQL.

  • Menentukan BLOCKSIZE tidak didukung untuk blob halaman.

  • Menentukan MAXTRANSFERSIZE tidak didukung blob halaman.

  • Menentukan opsi set cadangan - RETAINDAYS dan EXPIREDATE tidak didukung.

  • SQL Server memiliki batas maksimum 259 karakter untuk nama perangkat cadangan. BACKUP TO URL mengkonsumsi 36 karakter untuk elemen yang diperlukan yang digunakan untuk menentukan URL - 'https://.blob.core.windows.net//.bak', menyisakan 223 karakter total untuk nama akun, kontainer, dan blob.

  • Versi SQL Server sebelum 2022 memiliki batas 256 karakter untuk token tanda tangan Akses Bersama (SAS), yang akan membatasi jenis token yang dapat digunakan (misalnya, token Kunci Delegasi Pengguna tidak didukung).

  • Jika server Anda mengakses Azure melalui server proksi, Anda harus menggunakan bendera pelacakan 1819 lalu mengatur konfigurasi proksi WinHTTP melalui salah satu metode berikut:

    • Utilitas proxycfg.exe pada Windows XP atau Windows Server 2003 dan yang lebih lama.
    • Utilitas netsh.exe pada Windows Vista dan Windows Server 2008 atau yang lebih baru.
  • Penyimpanan yang tidak dapat diubah untuk Azure Blob Storage tidak didukung. Atur kebijakan Penyimpanan yang Tidak Dapat Diubah ke false.

Argumen & pernyataan yang didukung di Azure Blob Storage

Dukungan untuk pernyataan pencadangan/pemulihan di Azure Blob Storage

Pernyataan Pencadangan/Pemulihan Didukung Pengecualian Komentar
CADANGAN Y BLOCKSIZE dan MAXTRANSFERSIZE didukung untuk blob blok. Mereka tidak didukung untuk blob halaman. BACKUP ke blob blok memerlukan Tanda Tangan Akses Bersama yang disimpan dalam kredensial SQL Server. BLOB BACKUP ke halaman memerlukan kunci akun penyimpanan yang disimpan dalam kredensial SQL Server, dan mengharuskan argumen WITH CREDENTIAL ditentukan.
MEMULIHKAN Y Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
PULIHKAN FILELISTONLY Y Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
PULIHKAN HEADERONLY Y Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
PULIHKAN LABELONLY Y Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
PULIHKAN SECARA VERIFIKASI Y Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
PULIHKAN REWINDONLY -

Untuk sintaksis dan informasi umum tentang pernyataan cadangan, lihat BACKUP (Transact-SQL).

Untuk sintaksis dan informasi umum tentang pernyataan pemulihan, lihat RESTORE (Transact-SQL).

Dukungan untuk argumen cadangan di Azure Blob Storage

Argumen Didukung Pengecualian Komentar
DATABASE Y
LOG Y
KE (URL) Y Tidak seperti DISK dan TAPE, URL tidak mendukung penentuan atau pembuatan nama logis. Argumen ini digunakan untuk menentukan jalur URL untuk file cadangan.
CERMIN KE Y
DENGAN OPSI:
INFORMASI MASUK Y WITH CREDENTIAL hanya didukung saat menggunakan opsi BACKUP TO URL untuk mencadangkan ke Azure Blob Storage dan hanya jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
FILE_SNAPSHOT Y
ENKRIPSI Y Ketika argumen WITH ENCRYPTION ditentukan, SQL Server File-Snapshot Backup memastikan bahwa seluruh database dienkripsi TDE sebelum mengambil cadangan dan, jika demikian, mengenkripsi file cadangan rekam jepret file itu sendiri menggunakan algoritma yang ditentukan untuk TDE pada database. Jika semua data dalam database di seluruh database tidak dienkripsi, cadangan akan gagal (misalnya, proses enkripsi belum selesai).
DIFERENSIAL Y
COPY_ONLY Y
PEMADATAN|NO_COMPRESSION Y Tidak didukung untuk pencadangan rekam jepret file
DESKRIPSI Y
NAMA Y
KEDALUWARSA | RETAINDAYS -
NOINIT | INIT - Menambahkan ke blob tidak dimungkinkan. Untuk menimpa cadangan, gunakan argumen WITH FORMAT . Namun, saat menggunakan cadangan rekam jepret file (menggunakan argumen WITH FILE_SNAPSHOT ), argumen WITH FORMAT tidak diizinkan untuk menghindari meninggalkan salinan bayangan file tanpa induk yang dibuat dengan cadangan asli.
NOSKIP | LEWAT -
NOFORMAT | FORMAT Y Cadangan yang diambil ke blob yang ada gagal kecuali WITH FORMAT ditentukan. Blob yang ada ditimpa ketika WITH FORMAT ditentukan. Namun, saat menggunakan cadangan rekam jepret file (menggunakan argumen WITH FILE_SNAPSHOT ), argumen FORMAT tidak diizinkan untuk menghindari meninggalkan salinan bayangan file tanpa induk yang dibuat dengan cadangan salinan bayangan file asli. Namun, saat menggunakan cadangan rekam jepret file (menggunakan argumen WITH FILE_SNAPSHOT ), argumen WITH FORMAT tidak diizinkan untuk menghindari meninggalkan salinan bayangan file tanpa induk yang dibuat dengan cadangan asli.
MEDIADESCRIPTION Y
NAMA MEDIA Y
BLOCKSIZE Y Tidak didukung untuk blob halaman. Didukung untuk blob blok. Merekomendasikan BLOCKSIZE=65536 untuk mengoptimalkan penggunaan 50.000 blok yang diizinkan dalam blob blok.
BUFFERCOUNT Y
MAXTRANSFERSIZE Y Tidak didukung untuk blob halaman. Didukung untuk blob blok. Defaultnya adalah 1048576. Nilai dapat berkisar hingga 4 MB dalam kenaikan 65536 byte.
Merekomendasikan MAXTRANSFERSIZE=4194304 untuk mengoptimalkan penggunaan 50.000 blok yang diizinkan dalam blob blok.
NO_CHECKSUM | CHECKSUM Y
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Y
STATUS Y
REWIND | NOREWIND -
UNLOAD | NOUNLOAD -
NORECOVERY | SIAGA Y
NO_TRUNCATE Y

Untuk informasi selengkapnya tentang argumen cadangan, lihat BACKUP (Transact-SQL).

Dukungan untuk memulihkan argumen di Azure Blob Storage

Argumen Didukung Pengecualian Komentar
DATABASE Y
LOG Y
FROM (URL) Y Argumen URL FROM digunakan untuk menentukan jalur URL untuk file cadangan.
DENGAN Opsi:
INFORMASI MASUK Y WITH CREDENTIAL hanya didukung saat menggunakan opsi PULIHKAN DARI URL untuk memulihkan dari Microsoft Azure Blob Storage.
SEBAGIAN Y
PEMULIHAN | NORECOVERY | SIAGA Y
LOADHISTORY Y
MOVE Y
REPLACE Y
HIDUPKAN ULANG Y
RESTRICTED_USER Y
FILE -
KATA SANDI Y
NAMA MEDIA Y
MEDIAPASSWORD Y
BLOCKSIZE Y
BUFFERCOUNT -
MAXTRANSFERSIZE -
CHECKSUM | NO_CHECKSUM Y
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Y
FILESTREAM Y Tidak didukung untuk pencadangan rekam jepret
STATUS Y
REWIND | NOREWIND -
UNLOAD | NOUNLOAD -
KEEP_REPLICATION Y
KEEP_CDC Y
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER Y
STOPAT | STOPATMARK | STOPBEFOREMARK Y

Untuk informasi selengkapnya tentang Pulihkan argumen, lihat RESTORE Arguments (Transact-SQL).

Mencadangkan dengan SSMS

Anda dapat mencadangkan database ke URL melalui tugas Pencadangan di SQL Server Management Studio menggunakan Kredensial SQL Server.

Catatan

Untuk membuat cadangan rekam jepret file SQL Server, atau menimpa set media yang ada, Anda harus menggunakan Transact-SQL, Powershell atau C# daripada tugas Pencadangan di SQL Server Management Studio.

Langkah-langkah berikut ini menjelaskan perubahan yang dilakukan pada tugas Mencadangkan Database di SQL Server Management Studio untuk memungkinkan pencadangan ke penyimpanan Azure:

  1. Di Object Explorer, sambungkan ke instans Mesin Database SQL Server lalu perluas instans tersebut.

  2. Perluas Database, klik kanan database yang diinginkan, arahkan ke Tugas, lalu pilih Cadangkan....

  3. Pada halaman Umum di bagian Tujuan, opsi URL tersedia di daftar drop-down Cadangkan ke: . Opsi URL digunakan untuk membuat cadangan ke penyimpanan Microsoft Azure. Pilih Tambahkan dan kotak dialog Pilih Tujuan Cadangan akan terbuka:

    1. Kontainer penyimpanan Azure: Nama kontainer penyimpanan Microsoft Azure untuk menyimpan file cadangan. Pilih kontainer yang ada dari daftar drop-down atau masukkan kontainer secara manual.

    2. Kebijakan Akses Bersama: Masukkan tanda tangan akses bersama untuk kontainer yang dimasukkan secara manual. Bidang ini tidak tersedia jika kontainer yang ada dipilih.

    3. File Cadangan: Nama file cadangan.

    4. Kontainer Baru: Digunakan untuk mendaftarkan kontainer yang sudah ada yang tidak Anda miliki tanda tangan akses bersamanya. Lihat Menyambungkan ke Langganan Microsoft Azure.

Catatan

Tambahkan mendukung beberapa file cadangan dan kontainer penyimpanan untuk satu set media.

Saat Anda memilih URL sebagai tujuan, opsi tertentu di halaman Opsi Media dinonaktifkan. Artikel berikut ini memiliki informasi selengkapnya tentang dialog Cadangkan Database:

Mencadangkan dengan rencana pemeliharaan

Mirip dengan tugas pencadangan yang dijelaskan sebelumnya, Wizard Rencana Pemeliharaan di SQL Server Management Studio menyertakan URL sebagai salah satu opsi tujuan, dan objek pendukung lainnya yang diperlukan untuk mencadangkan ke penyimpanan Azure seperti Kredensial SQL. Ini memiliki hal yang sama Untuk informasi selengkapnya, lihat bagian Tentukan Tugas Pencadangan di Menggunakan Wizard Rencana Pemeliharaan.

Catatan

Untuk membuat kumpulan cadangan bergaris, cadangan rekam jepret file SQL Server, atau kredensial SQL menggunakan token Akses Bersama, Anda harus menggunakan Transact-SQL, Powershell, atau C# daripada tugas Pencadangan di Wizard Rencana Pemeliharaan.

Memulihkan dengan SSMS

Tugas Pulihkan Database menyertakan URL sebagai perangkat untuk dipulihkan. Langkah-langkah berikut ini menjelaskan menggunakan tugas Pulihkan untuk memulihkan dari Azure Blob Storage:

  1. Klik kanan Database dan pilih Pulihkan Database....

  2. Pada halaman Umum , pilih Perangkat di bawah bagian Sumber .

  3. Pilih tombol telusuri (...) untuk membuka kotak dialog Pilih perangkat cadangan.

  4. Pilih URL dari daftar drop-down Jenis media cadangan: . Pilih Tambahkan untuk membuka kotak dialog Pilih Lokasi File Cadangan.

    1. Kontainer penyimpanan Azure: Nama kontainer penyimpanan Microsoft Azure yang sepenuhnya memenuhi syarat yang berisi file cadangan. Pilih kontainer yang ada dari daftar drop-down atau masukkan nama kontainer yang sepenuhnya memenuhi syarat secara manual.

    2. Tanda Tangan Akses Bersama: Digunakan untuk memasukkan tanda tangan akses bersama untuk kontainer yang ditunjuk.

    3. Tambahkan: Digunakan untuk mendaftarkan kontainer yang sudah ada yang tidak memiliki tanda tangan akses bersama. Lihat Menyambungkan ke Langganan Microsoft Azure.

    4. OK: SQL Server tersambung ke penyimpanan Microsoft Azure menggunakan informasi Kredensial SQL yang Anda berikan dan membuka dialog Temukan File Cadangan di Microsoft Azure . File cadangan yang berada di kontainer penyimpanan ditampilkan di halaman ini. Pilih file yang ingin Anda gunakan untuk memulihkan dan pilih OK. Ini akan membawa Anda kembali ke dialog Pilih Perangkat Cadangan, dan memilih OK pada dialog ini membawa Anda kembali ke dialog Pemulihan utama tempat Anda akan dapat menyelesaikan pemulihan.

    Pulihkan Database (Halaman Umum)

    Pulihkan Database (Halaman File)

    Pulihkan Database (Halaman Opsi)

Contoh Kode

Bagian ini berisi contoh berikut.

Catatan

Untuk tutorial tentang menggunakan SQL Server 2016 dengan Azure Blob Storage, lihat Tutorial: Menggunakan Azure Blob Storage dengan database SQL Server

Membuat Tanda Tangan Akses Bersama

Contoh berikut membuat Tanda Tangan Akses Bersama yang dapat digunakan untuk membuat Kredensial SQL Server pada kontainer yang baru dibuat. Skrip membuat Tanda Tangan Akses Bersama yang terkait dengan Kebijakan Akses Tersimpan. Untuk informasi selengkapnya, lihat Tanda Tangan Akses Bersama, Bagian 1: Memahami Model SAS. Skrip juga menulis perintah T-SQL yang diperlukan untuk membuat informasi masuk di SQL Server.

Catatan

Contohnya memerlukan Microsoft Azure Powershell. Untuk informasi tentang menginstal dan menggunakan Azure Powershell, lihat Cara menginstal dan mengonfigurasi Azure PowerShell.
Skrip ini diverifikasi menggunakan Azure PowerShell 5.1.15063.

Tanda Tangan Akses Bersama yang terkait dengan Kebijakan Akses Tersimpan

# 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  

Setelah berhasil menjalankan skrip, salin CREATE CREDENTIAL perintah ke alat kueri, sambungkan ke instans SQL Server dan jalankan perintah untuk membuat kredensial dengan Tanda Tangan Akses Bersama.

Buat info masuk

Contoh berikut membuat kredensial SQL Server untuk autentikasi ke Azure Blob Storage. Lakukan salah satu hal berikut ini.

  1. Menggunakan Tanda Tangan Akses Bersama

    Jika Anda menjalankan skrip sebelumnya untuk membuat Tanda Tangan Akses Bersama, salin CREATE CREDENTIAL ke editor kueri yang tersambung ke instans SQL Server Anda dan jalankan perintah .

    T-SQL berikut adalah contoh yang membuat kredensial untuk menggunakan Tanda Tangan Akses Bersama.

    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. Menggunakan identitas akun penyimpanan dan kunci akses

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

Melakukan pencadangan database lengkap

Contoh berikut melakukan pencadangan AdventureWorks2022 database lengkap database ke Azure Blob Storage. Gunakan salah satu sampel berikut:

  1. Ke URL menggunakan Tanda Tangan Akses Bersama

    BACKUP DATABASE AdventureWorks2022   
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak';  
    GO   
    
  2. Ke URL menggunakan identitas akun penyimpanan dan kunci akses

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

Memulihkan ke titik waktu menggunakan STOPAT

Contoh berikut memulihkan AdventureWorks2022 database sampel ke statusnya pada satu titik waktu, dan memperlihatkan operasi pemulihan.

Dari URL menggunakan Tanda Tangan Akses Bersama

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