Bagikan melalui


Backup SQL Server ke URL untuk Azure Blob Storage

Aplikasi ke:SQL ServerAzure SQL Managed Instance

Artikel ini memperkenalkan konsep, persyaratan, dan komponen yang diperlukan untuk menggunakan 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.

Tip

Dimulai dengan SQL Server 2025 (17.x), Anda dapat mencadangkan ke URL dengan identitas terkelola. Tinjau Pencadangan ke URL dengan Identitas Terkelola (pratinjau) - SQL Server yang diaktifkan oleh Azure Arc.

Overview

SQL Server 2012 Service Pack 1 CU2 dan SQL Server 2014 memperkenalkan kemampuan untuk mencadangkan ke URL yang ditunjukkan pada Azure Blob Storage, menggunakan sintaks T-SQL yang sudah dikenal untuk menulis cadangan dengan aman ke penyimpanan Azure. SQL Server 2016 (13.x) memperkenalkan pencadangan File-Snapshot untuk File Basis Data di Azure dan keamanan melalui kunci tanda tangan akses bersama (SAS), yang merupakan cara yang aman dan sederhana untuk mengautentikasi sertifikat sesuai dengan kebijakan keamanan Azure Storage.

Penting untuk memahami komponen dan interaksi di antara mereka untuk melakukan pencadangan ke atau memulihkan dari 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 untuk 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 Azure Storage Accounts, lihat Tentang Azure Storage Accounts dan untuk informasi selengkapnya tentang Tanda Tangan Akses Bersama, lihat Tanda Tangan Akses Berbagi, Bagian 1: Memahami Model SAS. Kredensial SQL Server menyimpan informasi autentikasi ini dan digunakan selama operasi pencadangan atau pemulihan.

Azure Storage dan penyimpanan yang kompatibel dengan S3

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 Cadangan 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 penggunaan Pencadangan ke URL untuk penyimpanan yang kompatibel S3, lihat Pencadangan SQL Server ke URL untuk penyimpanan objek yang kompatibel S3.

Pencadangan ke Azure Storage blob blok vs. blob halaman

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

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

Pencadangan untuk memblokir blob hanya tersedia di SQL Server 2016 atau versi yang lebih baru untuk pencadangan ke Azure Blob Storage. Cadangkan ke block blob daripada page blob 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 berbagai blob blok untuk mendapatkan performa pencadangan dan pemulihan yang lebih baik, dan memungkinkan pencadangan database yang lebih besar.
  • Blok blob lebih murah daripada Halaman blob.
  • Pelanggan yang perlu mencadangkan ke blob halaman melalui server proksi perlu menggunakan backuptourl.exe.

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

Jika database terlalu besar, Anda dapat melakukan salah satu dari berikut:

  • Menggunakan kompresi cadangan atau
  • Mencadangkan ke beberapa blok blob

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

Jika instans SQL Server dihosting di Linux, termasuk:

  • Sistem operasi yang berdiri sendiri
  • Containers
  • 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.

Azure Blob Storage

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

Wadah: 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.

Gumpalan: Sebuah file dengan jenis dan ukuran apa saja. Ada dua jenis blob yang dapat disimpan di Azure Blob Storage: blob blok dan halaman. Pencadangan SQL Server dapat menggunakan salah satu tipe blob berdasarkan 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 Introduction ke Azure Blob Storage. Untuk informasi selengkapnya tentang blob blok dan halaman, lihat Memahami Blob Blok dan Halaman.

Diagram akun Azure Blob Storage, kontainer, dan blob.

Azure Snapshot: Rekam jepret blob Azure diambil pada titik waktu tertentu. Untuk informasi selengkapnya, lihat Membuat Snapshot Blob. Pencadangan SQL Server sekarang mendukung pencadangan snapshot Azure untuk file database yang disimpan di Azure Blob Storage. Untuk informasi selengkapnya, lihat Pencadangan Cuplikan Berkas untuk Berkas Basis Data 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, akan dibuat. Jika blob yang ada ditentukan, BACKUP gagal, kecuali opsi WITH FORMAT ditentukan untuk menimpa file cadangan yang sudah ada di dalam blob.

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

Note

Pencadangan ke URL menggunakan HTTP tidak didukung.

Credential: 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 serta 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 BACKUP/RESTORE pernyataan menentukan jenis blob dan kredensial yang diperlukan.

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

Untuk informasi selengkapnya tentang kredensial, lihat Credentials (Database Engine).

Untuk informasi tentang contoh lain tempat kredensial digunakan, lihat Buat Proksi SQL Server Agent.

Azure dukungan penyimpanan yang tidak dapat diubah

SQL Server 2025 (17.x) memperkenalkan dukungan untuk penyimpanan Azure tidak dapat diubah, yang melindungi dari serangan ransomware. File yang ditulis ke penyimpanan yang tidak dapat diubah tidak dapat dimodifikasi atau dihapus, seperti yang didefinisikan oleh kekekalan.

Biasanya, pencadangan SQL Server dibuat dalam dua langkah. Awalnya, .bak file cadangan dibuat dengan nol, lalu file diperbarui dengan data. Karena modifikasi file pada penyimpanan bersifat tetap tidak diizinkan setelah file ditulis dan disimpan, proses pencadangan sekarang melewati langkah awal untuk membuat file cadangan dengan nol. Sebagai gantinya, seluruh cadangan dibuat dalam satu langkah ketika ditulis untuk memblokir blob.

penyimpanan Azure menyediakan dua jenis kekekalan, tingkat kontainer, dan tingkat versi. Saat ini, hanya penyimpanan tingkat kontainer yang tidak dapat diubah yang didukung.

Untuk menggunakan penyimpanan yang tidak dapat diubah dengan cadangan SQL Server 2025 (17.x) ke URL, ikuti langkah-langkah berikut:

  1. Konfigurasikan immutability untuk kontainer penyimpanan Azure Anda.

  2. Terbitkan BACKUP untuk mencadangkan database Anda ke kontainer penyimpanan Azure. Jika Anda menggunakan WITH FORMAT opsi pada penyimpanan yang tidak dapat diubah, dan cadangan sudah ada dengan nama yang sama, Anda mendapatkan kesalahan dan pencadangan gagal.

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

Keamanan untuk Azure Blob Storage

Berikut adalah pertimbangan dan persyaratan keamanan saat melakukan pencadangan ke atau pemulihan dari Azure Blob Storage.

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

    Important

    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.

    Warning

    Azure Storage mendukung otorisasi Kunci Bersama disabling untuk akun penyimpanan. Jika otorisasi Kunci Bersama dinonaktifkan, SQL Server Backup To URL tidak akan berfungsi.

  • Akun pengguna yang digunakan untuk mengeluarkan perintah BACKUP atau RESTORE harus berada dalam peran database operator db_backup dengan izin Ubah 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 195,3 GB (50.000 blok * 4 MB MAXTRANSFERSIZE). Blob blok mendukung striping untuk memungkinkan ukuran cadangan yang jauh lebih besar - batas maksimumnya adalah 64 URL, yang menghasilkan rumus berikut: 64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB.

    Important

    Meskipun ukuran cadangan maksimum yang didukung oleh blob blok tunggal sekitar 195,3 GB, dimungkinkan bagi SQL Server untuk 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 ukuran lebih kecil dari 200 GB) untuk menghindari batas blok, terutama jika Anda menggunakan cadangan diferensial atau cadangan yang tidak dikompresi.

  • Pencadangan log transaksi mengabaikan yang ditentukan MAXTRANSFERSIZE pengguna saat mencadangkan ke beberapa file cadangan. Sebagai gantinya, 64KB akan digunakan jika lebih dari satu file yang ditentukan, terlepas dari nilai MAXTRANSFERSIZE di dalam perintah cadangan. Oleh karena itu, ukuran maksimum cadangan log transaksi ke URL adalah sekitar 195,3GB (50.000 blok * 4 MB MAXTRANSFERSIZE * 1 file ATAU 50.000 blok * 64 KB * 64 file). Kompresi dapat memungkinkan log transaksi yang lebih besar untuk dicadangkan, tetapi rasio kompresi akan bervariasi.

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

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

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

  • Menambahkan ke blob cadangan yang ada tidak didukung. Cadangan ke blob yang ada hanya dapat ditimpa dengan opsi WITH FORMAT. Namun, saat menggunakan cadangan rekaman jepretan file (menggunakan argumen WITH FILE_SNAPSHOT), argumen WITH FORMAT tidak diizinkan untuk menghindari timbulnya rekaman jepretan file yang terputus yang dibuat dengan cadangan rekaman jepretan file asli.

  • Pencadangan ke beberapa blob dalam satu operasi pencadangan hanya didukung dengan menggunakan blob blokir dan menggunakan token Tanda Tangan Akses Bersama (SAS) daripada kunci akun penyimpanan untuk Kredensial SQL.

  • Penggunaan BLOCKSIZE tidak didukung untuk page blobs.

  • Penentuan MAXTRANSFERSIZE tidak didukung untuk 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 menghabiskan 36 karakter untuk elemen yang diperlukan untuk menentukan URL https://.blob.core.windows.net//.bak, menyisakan 223 karakter untuk nama akun, kontainer, dan blob secara keseluruhan.

  • SQL Server 2019 (15.x) dan versi yang lebih lama memiliki batas 256 karakter untuk token Tanda Tangan Akses Bersama (SAS), yang 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 Immutable untuk Azure Blob Storage tidak didukung sebelum SQL Server 2025. Atur kebijakan Penyimpanan yang Tidak Dapat Diubah ke false.

  • Untuk dukungan di SQL Server 2025 dan versi lebih baru, lihat dukungan penyimpanan imutabel Azure.

    • penyimpanan Azure menyediakan dua jenis kekekalan, tingkat kontainer, dan tingkat versi. Saat ini, hanya penyimpanan tingkat kontainer yang tidak dapat diubah yang didukung.
  • Pencadangan ke URL tidak didukung ke penyimpanan premium.

Argumen dan pernyataan yang didukung dalam Azure Blob Storage

Dukungan untuk perintah pencadangan/pemulihan di Azure Blob Storage

Pernyataan Pencadangan/Pemulihan Supported Exceptions Comments
BACKUP Yes 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. BACKUP ke page blob memerlukan kunci akun penyimpanan yang disimpan dalam kredensial SQL Server, dan memerlukan agar argumen WITH CREDENTIAL ditentukan.
RESTORE Yes Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
RESTORE FILELISTONLY Yes Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
RESTORE HEADERONLY Yes Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
RESTORE LABELONLY Yes Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
RESTORE VERIFYONLY Yes Memerlukan kredensial SQL Server untuk ditentukan, dan mengharuskan argumen WITH CREDENTIAL ditentukan jika kredensial SQL Server didefinisikan menggunakan kunci akun penyimpanan sebagai rahasia
RESTORE REWINDONLY No

Untuk sintaksis dan informasi umum tentang pernyataan cadangan, lihat BACKUP.

Untuk sintaksis dan informasi umum tentang pernyataan pemulihan, lihat Pernyataan RESTORE.

Dukungan untuk argumen cadangan dalam Azure Blob Storage

Argument Supported Exception Comments
DATABASE Yes
LOG Yes
TO(URL) Yes Tidak seperti DISK dan TAPE, URL tidak mendukung menentukan atau membuat nama logis. Argumen ini digunakan untuk menentukan jalur URL untuk file cadangan.
MIRROR TO Yes
WITH Pilihan:
CREDENTIAL Yes 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 Yes
ENCRYPTION Yes Ketika argumen WITH ENCRYPTION ditentukan, SQL Server File-Snapshot Backup memastikan bahwa seluruh database telah dienkripsi TDE sebelum mengambil cadangan dan, jika demikian, mengenkripsi file cadangan snapshot itu sendiri menggunakan algoritma yang ditentukan untuk TDE pada database. Jika semua data dalam database di seluruh database tidak dienkripsi, pencadangan gagal (misalnya, proses enkripsi belum selesai).
DIFFERENTIAL Yes
COPY_ONLY Yes
COMPRESSION|NO_COMPRESSION Yes Tidak didukung untuk pencadangan rekam jepret file
DESCRIPTION Yes
NAME Yes
EXPIREDATE | RETAINDAYS No
NOINIT | INIT No Menambahkan ke blob tidak dapat dilakukan. Untuk menimpa cadangan, gunakan WITH FORMAT argumen . Namun, saat menggunakan cadangan rekaman snapshot file (menggunakan argumen WITH FILE_SNAPSHOT), argumen WITH FORMAT tidak diizinkan agar tidak meninggalkan rekaman snapshot file yang terbengkalai yang dibuat dengan cadangan sebelumnya.
NOSKIP | SKIP No
NOFORMAT | FORMAT Yes Cadangan yang dibuat pada blob yang ada akan gagal kecuali jika WITH FORMAT ditentukan. Blob yang sudah ada ditimpa ketika WITH FORMAT dispesifikasi. Namun, saat menggunakan cadangan rekaman jepretan file (menggunakan argumen WITH FILE_SNAPSHOT), argumen FORMAT tidak diizinkan untuk menghindari timbulnya rekaman jepretan file yang terputus yang dibuat dengan cadangan rekaman jepretan file asli. Namun, saat menggunakan cadangan rekaman snapshot file (menggunakan argumen WITH FILE_SNAPSHOT), argumen WITH FORMAT tidak diizinkan agar tidak meninggalkan rekaman snapshot file yang terbengkalai yang dibuat dengan cadangan sebelumnya.
MEDIADESCRIPTION Yes
MEDIANAME Yes
BLOCKSIZE Yes Tidak didukung untuk blob halaman. Didukung untuk block blob. Rekomendasikan BLOCKSIZE=65536 untuk mengoptimalkan penggunaan 50.000 blok yang diizinkan dalam blok blob.
BUFFERCOUNT Yes
MAXTRANSFERSIZE Yes Tidak didukung untuk blob halaman. Didukung untuk block blob. Nilai bawaan adalah 1048576. Nilai dapat mencapai hingga 4 MB dengan kelipatan 65.536 byte.

Rekomendasikan MAXTRANSFERSIZE=4194304 untuk mengoptimalkan penggunaan 50.000 blok yang diizinkan dalam blok blob.
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

Untuk informasi selengkapnya tentang argumen cadangan, lihat BACKUP.

Dukungan untuk memulihkan argumen dalam Azure Blob Storage

Argument Supported Exceptions Comments
DATABASE Yes
LOG Yes
FROM(URL) Yes Argumen FROM URL digunakan untuk menentukan jalur URL untuk file cadangan.
WITH Pilihan:
CREDENTIAL Yes WITH CREDENTIAL hanya didukung saat menggunakan opsi RESTORE FROM URL untuk memulihkan dari Azure Blob Storage.
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 Tidak didukung untuk pencadangan rekam jepret
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

Untuk informasi selengkapnya tentang Argumen pemulihan, lihat Pernyataan RESTORE - Argumen.

Membuat cadangan dengan SSMS

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

Note

Untuk membuat cadangan cuplikan file SQL Server, atau mengganti set media yang ada, Anda harus menggunakan Transact-SQL, PowerShell, atau C# daripada fitur Pencadangan di SQL Server Management Studio.

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

  1. Dalam Object Explorer, sambungkan ke instans SQL Server Database Engine lalu perluas instans tersebut.

  2. Buka Database, klik kanan database yang diinginkan, arahkan ke Tugas, lalu pilih Backup....

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

    1. Azure kontainer penyimpanan: Nama kontainer penyimpanan Azure untuk menyimpan file cadangan. Pilih kontainer yang ada dari daftar dropdown 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 telah ada sudah dipilih.

    3. File Cadangan: Nama file cadangan.

    4. Kontainer Baru: Digunakan untuk mendaftarkan kontainer yang sudah ada yang tidak Memiliki Tanda Tangan Akses Bersama. Lihat Hubungkan ke Langganan Microsoft Azure (Cadangkan KE URL).

Note

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-artikel berikut memiliki informasi lebih lanjut tentang dialog Cadangkan Database.

Cadangkan 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 penyimpanan Azure seperti Kredensial SQL. Ini memiliki hal yang sama Untuk informasi selengkapnya, lihat bagian Tentukan Tugas Pencadangan di Menggunakan Wizard Rencana Pemeliharaan.

Note

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 Pemulihan Database menggunakan URL sebagai perangkat untuk memulihkan. 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 dropdown Jenis media cadangan: . Pilih Tambahkan untuk membuka kotak dialog Pilih Lokasi File Cadangan .

    1. Kontainer penyimpanan Azure: Nama kontainer penyimpanan Azure yang sudah lengkap dan berisi file cadangan. Pilih kontainer yang ada dari daftar dropdown 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. Tambah: Digunakan untuk mendaftarkan kontainer yang sudah ada yang tidak Memiliki Tanda Tangan Akses Bersama. Lihat Hubungkan ke Langganan Microsoft Azure (Cadangkan KE URL).

    4. OK: SQL Server tersambung ke penyimpanan Azure menggunakan informasi Kredensial SQL yang Anda berikan dan membuka Lokasi File Cadangan dalam dialog 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 akan membawa Anda kembali ke dialog Pemulihan utama, tempat Anda dapat menyelesaikan pemulihan.

Contoh kode

Bagian ini berisi contoh berikut.

Note

Untuk tutorial tentang menggunakan SQL Server 2016 dengan Azure Blob Storage, lihat Tutorial: Menggunakan Azure Blob Storage dengan 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 kredensial pada SQL Server.

Note

Contohnya memerlukan 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 perintah CREATE CREDENTIAL ke alat kueri, sambungkan ke instans SQL Server dan jalankan perintah untuk membuat kredensial dengan Tanda Tangan Akses Bersama.

Buat kredensial

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 database lengkap database AdventureWorks2025 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 AdventureWorks2025 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