File data SQL Server dalam Microsoft Azure

Berlaku untuk:SQL Server

A decorative image of data files on Azure.

File Data SQL Server di Microsoft Azure memungkinkan dukungan asli untuk file database SQL Server yang disimpan sebagai blob. Ini memungkinkan Anda membuat database di SQL Server yang berjalan di lokal atau di komputer virtual di Microsoft Azure dengan lokasi penyimpanan khusus untuk data Anda di penyimpanan Microsoft Azure Blob. Ini juga menyederhanakan proses pemindahan database antar mesin. Anda dapat melepaskan database dari satu komputer dan melampirkannya ke komputer lain. Selain itu, ini menyediakan lokasi penyimpanan alternatif untuk file cadangan database Anda dengan memungkinkan Anda memulihkan dari atau ke Microsoft Azure Storage. Oleh karena itu, ini memungkinkan beberapa solusi hibrid dengan memberikan beberapa manfaat untuk virtualisasi data, pergerakan data, keamanan dan ketersediaan, dan biaya dan pemeliharaan rendah yang mudah untuk ketersediaan tinggi dan penskalaan elastis.

Penting

Menyimpan database sistem di Azure Blob Storage tidak disarankan dan tidak didukung.

Artikel ini memperkenalkan konsep dan pertimbangan yang merupakan pusat penyimpanan file data SQL Server di Microsoft Azure Storage Service.

Untuk pengalaman langsung praktis tentang cara menggunakan fitur ini, lihat Tutorial: Menggunakan Microsoft Azure Blob Storage dengan database SQL Server.

Mengapa menggunakan file data SQL Server di Microsoft Azure?

  • Manfaat migrasi yang mudah dan cepat: Fitur ini menyederhanakan proses migrasi dengan memindahkan satu database pada satu waktu antara mesin di lokal serta antara lingkungan lokal dan cloud tanpa perubahan aplikasi apa pun. Oleh karena itu, ini mendukung migrasi inkremental sambil mempertahankan infrastruktur lokal yang ada di tempat. Selain itu, memiliki akses ke penyimpanan data terpusat menyederhanakan logika aplikasi ketika aplikasi perlu berjalan di beberapa lokasi di lingkungan lokal. Dalam beberapa kasus, Anda mungkin perlu menyiapkan pusat komputer dengan cepat di lokasi yang tersebar secara geografis, yang mengumpulkan data dari berbagai sumber. Dengan Azure Data Files, alih-alih memindahkan data dari satu lokasi ke lokasi lain, Anda dapat menyimpan banyak database sebagai blob halaman Microsoft Azure, lalu menjalankan skrip Transact-SQL untuk membuat database di komputer lokal atau komputer virtual.

  • Manfaat penyimpanan biaya dan tanpa batas: Fitur ini memungkinkan Anda memiliki penyimpanan di luar situs tanpa batas di Microsoft Azure sambil memanfaatkan sumber daya komputasi lokal. Saat Anda menggunakan Microsoft Azure sebagai lokasi penyimpanan, Anda dapat dengan mudah fokus pada logika aplikasi tanpa overhead manajemen perangkat keras. Jika Anda kehilangan simpul komputasi lokal, Anda dapat menyiapkan simpul baru tanpa pergerakan data apa pun.

  • Ketersediaan tinggi dan manfaat pemulihan bencana: Menggunakan SQL Server Data Files di fitur Microsoft Azure mungkin menyederhanakan ketersediaan tinggi dan solusi pemulihan bencana. Misalnya, jika komputer virtual di Microsoft Azure atau instans SQL Server mengalami crash, Anda dapat membuat ulang database Anda di instans SQL Server baru hanya dengan membuat ulang tautan ke blob.

  • Manfaat keamanan: Dengan file data SQL Server di Azure, Anda dapat memisahkan instans komputasi dari instans penyimpanan. Anda dapat memiliki database terenkripsi penuh dengan dekripsi hanya terjadi pada instans komputasi tetapi tidak dalam instans penyimpanan. Dengan kata lain, Anda dapat mengenkripsi semua data di cloud publik menggunakan sertifikat Transparent Data Encryption (TDE), yang dipisahkan secara fisik dari data. Kunci TDE dapat disimpan dalam master database, yang disimpan secara lokal di komputer lokal Anda yang aman secara fisik dan dicadangkan secara lokal. Anda dapat menggunakan kunci lokal ini untuk mengenkripsi data, yang berada di Microsoft Azure Storage. Jika kredensial akun penyimpanan cloud Anda dicuri, data Anda masih tetap aman karena sertifikat TDE selalu berada di lokal.

  • Pencadangan rekam jepret: Fitur ini memungkinkan Anda menggunakan rekam jepret Azure untuk menyediakan cadangan yang hampir seketika dan pemulihan yang lebih cepat untuk file database yang disimpan menggunakan Azure Blob Storage. Kapabilitas ini memungkinkan Anda menyederhanakan kebijakan pencadangan dan pemulihan Anda. Untuk informasi selengkapnya, lihat Cadangan Rekam Jepret File untuk File Database di Azure.

Konsep dan Persyaratan

Disk Azure kompatibel dengan kelangsungan bisnis di seluruh perusahaan dan solusi pemulihan bencana. Jika Anda menyimpan database langsung di blob, atau di Azure Premium Files, data tidak secara otomatis dikaitkan dengan VM Anda untuk infrastruktur, manajemen, dan pemantauan.

Menempatkan file database pada blob halaman adalah fitur yang lebih canggih daripada menggunakan Azure Disks, yang sederhana dan mudah digunakan.

Panduan dasarnya adalah menggunakan Azure Disks, kecuali Anda memiliki skenario di mana Anda benar-benar perlu menghindari pembuatan salinan data untuk cadangan, atau memulihkan sebagai operasi ukuran data. Untuk ketersediaan tinggi dan pemulihan bencana, menggunakan pencadangan reguler ke URL atau pencadangan terkelola ke penyimpanan Blob juga jauh lebih berguna daripada cadangan rekam jepret file, karena Anda mendapatkan manajemen siklus hidup, dukungan multi-wilayah, penghapusan sementara, dan semua fitur penyimpanan blob lainnya dari cadangan Anda.

Konsep Azure Storage

Saat menggunakan SQL Server Data Files di fitur Azure, Anda perlu membuat akun penyimpanan dan kontainer di Azure. Kemudian, Anda perlu membuat kredensial SQL Server, yang mencakup informasi tentang kebijakan kontainer serta tanda tangan akses bersama yang diperlukan untuk mengakses kontainer.

Di Microsoft Azure, akun penyimpanan Azure mewakili tingkat namespace layanan tertinggi untuk mengakses blob. Akun penyimpanan dapat berisi jumlah kontainer yang tidak terbatas, selama ukuran totalnya di bawah batas penyimpanan. Untuk informasi terbaru tentang batas penyimpanan, lihat Langganan Azure dan Batas Layanan, Kuota, dan Batasan. Kontainer menyediakan pengelompokan sekumpulan blob. Semua blob harus dalam satu kontainer. Akun dapat berisi kontainer dalam jumlah tak terbatas. Demikian pula, kontainer dapat menyimpan blob dalam jumlah tak terbatas.

Ada dua jenis blob yang dapat disimpan di Azure Storage: blob blok dan halaman. Fitur ini menggunakan blob halaman, yang lebih efisien ketika rentang byte dalam file sering dimodifikasi. Anda dapat mengakses blob menggunakan format URL berikut: https://storageaccount.blob.core.windows.net/<container>/<blob>.

Catatan

Anda tidak dapat menggunakan blob blok untuk file data SQL Server. Gunakan blob halaman.

Pertimbangan penagihan Azure

Memperkirakan biaya penggunaan Azure Services adalah hal penting dalam proses pengambilan keputusan dan perencanaan. Saat menyimpan file data SQL Server di Azure Storage, Anda perlu membayar biaya yang terkait dengan penyimpanan dan transaksi. Selain itu, implementasi SQL Server Data Files di fitur Azure Storage memerlukan perpanjangan sewa blob setiap 45 hingga 60 detik secara implisit. Ini juga menghasilkan biaya transaksi per file database, seperti .mdf atau .ldf. Gunakan informasi di halaman Harga Azure untuk membantu memperkirakan biaya bulanan yang terkait dengan penggunaan Azure Storage dan Azure Virtual Machines.

Konsep SQL Server

Untuk menggunakan blob halaman Azure untuk file data SQL Server:

  • Buat kebijakan pada kontainer dan juga buat tanda tangan akses bersama (SAS).

  • Untuk setiap kontainer yang digunakan oleh data atau file log, buat kredensial SQL Server yang namanya cocok dengan jalur kontainer.

  • Simpan informasi mengenai kontainer Azure Storage, nama kebijakan terkait, dan kunci SAS di penyimpanan kredensial SQL Server.

Contoh berikut mengasumsikan bahwa kontainer penyimpanan Azure telah dibuat, dan kebijakan telah dibuat dengan hak baca, tulis, dan daftar. Membuat kebijakan pada kontainer menghasilkan kunci SAS, yang aman untuk tetap tidak terenkripsi dalam memori dan diperlukan oleh SQL Server untuk mengakses file blob dalam kontainer.

Dalam cuplikan kode berikut, ganti '<your SAS key>' dengan kunci SAS. Kunci SAS akan terlihat seperti 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'.

CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = '<your SAS key>'  
  
CREATE DATABASE testdb   
ON  
( NAME = testdb_dat,  
    FILENAME = 'https://testdb.blob.core.windows.net/data/TestData.mdf' )  
 LOG ON  
( NAME = testdb_log,  
    FILENAME =  'https://testdb.blob.core.windows.net/data/TestLog.ldf')  

Penting

Jika ada referensi aktif ke file data dalam kontainer, upaya untuk menghapus kredensial SQL Server yang sesuai gagal.

Untuk informasi selengkapnya, lihat Mengelola Akses ke Sumber Daya Azure Storage

Keamanan

Berikut ini adalah pertimbangan dan persyaratan keamanan saat menyimpan File Data SQL Server di Azure Storage.

  • Saat membuat kontainer untuk Azure Blob Storage, kami sarankan Anda mengatur akses ke privat. Saat Anda mengatur akses ke data privat, kontainer, dan blob hanya dapat dibaca oleh pemilik akun Azure.

  • Saat menyimpan file database SQL Server di Azure Storage, Anda perlu menggunakan tanda tangan akses bersama, URI yang memberikan hak akses terbatas ke kontainer, blob, antrean, dan tabel. Dengan menggunakan tanda tangan akses bersama, Anda dapat mengaktifkan SQL Server untuk mengakses sumber daya di akun penyimpanan Anda tanpa berbagi kunci akun penyimpanan Azure Anda.

  • Selain itu, kami sarankan Anda terus menerapkan praktik keamanan lokal tradisional untuk database Anda.

Prasyarat penginstalan

Berikut ini adalah prasyarat penginstalan saat menyimpan File Data SQL Server di Azure.

  • SQL Server lokal: SQL Server 2016 dan yang lebih baru menyertakan fitur ini. Untuk mempelajari cara mengunduh versi terbaru SQL Server, lihat SQL Server.

  • SQL Server yang berjalan di komputer virtual Azure: Jika Anda menginstal SQL Server di Azure Virtual Machine, instal SQL Server 2016, atau perbarui instans yang ada. Demikian pula, Anda juga dapat membuat komputer virtual baru di Azure menggunakan gambar platform SQL Server 2016.

Batasan

  • Karena karakteristik performa beban kerja SQL Server, file data SQL Server diimplementasikan sebagai blob halaman di Azure Blob Storage. Jenis penyimpanan blob lainnya seperti blob blok atau Azure Data Lake Storage tidak didukung.

  • Dalam rilis fitur ini saat ini, menyimpan data FileStream di Azure Storage tidak didukung. Anda dapat menyimpan data FileStream dalam database yang juga berisi file data yang disimpan di Azure Storage, tetapi semua file data FileStream harus disimpan di penyimpanan lokal. Karena data FileStream harus berada di penyimpanan lokal, data tersebut tidak dapat dipindahkan antar mesin menggunakan Azure Storage, oleh karena itu kami sarankan Anda terus menggunakan teknik tradisional untuk memindahkan data yang terkait dengan FileStream di antara komputer yang berbeda.

  • Saat ini, hanya satu instans SQL Server yang dapat mengakses file database tertentu di Azure Storage pada satu waktu. Jika InstanceA online dengan file database aktif dan jika InstanceB tidak sengaja dimulai, dan juga memiliki database yang menunjuk ke file data yang sama, instans kedua akan gagal memulai database dengan kode 5120 Unable to open the physical file "%.\*ls". Operating system error %d: "%ls"kesalahan .

  • Hanya file .mdf, .ldf, dan .ndf yang dapat disimpan di Azure Storage dengan menggunakan SQL Server Data Files di fitur Azure.

  • Saat menggunakan SQL Server Data Files di fitur Azure, replikasi geografis untuk akun penyimpanan Anda tidak didukung. Jika akun penyimpanan direplikasi secara geografis dan terjadi geo-failover, kerusakan database dapat terjadi.

  • Untuk batasan kapasitas, lihat Pengenalan penyimpanan Blob.

  • Tidak dimungkinkan untuk menyimpan data OLTP Dalam Memori di penyimpanan Blob menggunakan SQL Server Data Files di fitur Azure Storage. Ini karena OLTP Dalam Memori memiliki dependensi pada FileStream dan, dalam rilis fitur ini saat ini, menyimpan data FileStream di Azure Storage tidak didukung.

  • Saat menggunakan SQL Server Data Files di fitur Azure, SQL Server melakukan semua perbandingan URL atau jalur file menggunakan kolase yang master diatur dalam database.

  • Grup ketersediaan AlwaysOn didukung selama Anda tidak menambahkan file database baru ke database pada replika utama. Jika operasi database memerlukan file baru untuk dibuat dalam database pada replika utama, pertama-tama nonaktifkan grup ketersediaan di simpul sekunder. Kemudian, lakukan operasi database pada database dan cadangkan database di replika utama. Selanjutnya, pulihkan database ke replika sekunder. Setelah selesai, aktifkan kembali grup ketersediaan AlwaysOn di simpul sekunder.

    Catatan

    Instans kluster failover AlwaysOn tidak didukung saat menggunakan file data SQL Server di fitur Azure.

  • Selama operasi normal, SQL Server menggunakan sewa sementara untuk memesan blob untuk penyimpanan dengan pembaruan setiap sewa blob setiap 45 hingga 60 detik. Jika server mengalami crash dan instans SQL Server lain yang dikonfigurasi untuk menggunakan blob yang sama dimulai, instans baru akan menunggu hingga 60 detik agar sewa yang ada pada blob kedaluwarsa. Jika Anda ingin melampirkan database ke instans lain dan Anda tidak dapat menunggu sewa kedaluwarsa dalam waktu 60 detik, Anda dapat secara eksplisit merilis sewa pada blob.

Alat dan dukungan referensi pemrograman

Bagian ini menjelaskan alat dan pustaka referensi pemrograman mana yang dapat digunakan saat menyimpan file data SQL Server di Azure Storage.

Dukungan PowerShell

Gunakan cmdlet PowerShell untuk menyimpan file data SQL Server di layanan penyimpanan Blob dengan merujuk jalur URL penyimpanan Blob alih-alih jalur file. Akses blob menggunakan format URL berikut: https://storageaccount.blob.core.windows.net/<container>/<blob>.

Dukungan penghitung kinerja dan objek SQL Server

Dimulai dengan SQL Server 2014, objek SQL Server baru telah ditambahkan untuk digunakan dengan SQL Server Data Files di fitur Azure Storage. Objek SQL Server baru disebut sebagai SQL Server, HTTP_STORAGE_OBJECT dan dapat digunakan oleh Monitor Sistem untuk memantau aktivitas saat menjalankan SQL Server dengan Azure Storage.

Dukungan SQL Server Management Studio

SQL Server Management Studio memungkinkan Anda menggunakan fitur ini melalui beberapa jendela dialog. Misalnya, https://teststorageaccnt.blob.core.windows.net/testcontainer/ mewakili jalur URL kontainer penyimpanan. Anda dapat melihat Jalur ini di beberapa jendela dialog, seperti Database Baru, Lampirkan Database, dan Pulihkan Database. Untuk informasi selengkapnya, lihat Tutorial: Menggunakan Azure Blob Storage dengan database SQL Server.

Dukungan SQL Server Management Objects (SMO)

Saat menggunakan SQL Server Data Files di fitur Azure, semua SQL Server Management Objects (SMO) didukung. Jika objek SMO memerlukan jalur file, gunakan format URL BLOB alih-alih jalur file lokal, seperti https://teststorageaccnt.blob.core.windows.net/testcontainer/. Untuk informasi selengkapnya tentang Objek Manajemen SQL Server (SMO), lihat Panduan Pemrograman Objek Manajemen SQL Server (SMO) di Buku SQL Server Online.

Dukungan Transact-SQL

Penambahan fitur ini telah memperkenalkan perubahan berikut di area permukaan Transact-SQL:

  • Kolom int baru, credential_id, dalam sys.master_files tampilan sistem. Kolom credential_id digunakan untuk mengaktifkan file data Azure Storage untuk direferensikan silang kembali untuk sys.credentials kredensial yang dibuat untuk mereka. Anda dapat menggunakannya untuk pemecahan masalah, seperti kredensial tidak dapat dihapus ketika ada file database yang menggunakannya.

Memecahkan masalah untuk File Data SQL Server di Microsoft Azure

Untuk menghindari kesalahan karena fitur atau batasan yang tidak didukung, pertama-tama tinjau Batasan.

Daftar kesalahan yang mungkin Anda dapatkan saat menggunakan SQL Server Data Files di fitur Azure Storage adalah sebagai berikut.

Kesalahan autentikasi

  • Tidak dapat menghilangkan kredensial '%.*ls' karena digunakan oleh file database aktif.
    Resolusi: Anda mungkin melihat kesalahan ini saat mencoba menghilangkan kredensial yang masih digunakan oleh file database aktif di Azure Storage. Untuk menghilangkan kredensial, pertama-tama Anda harus menghapus blob terkait yang memiliki file database ini. Untuk menghapus blob yang memiliki sewa aktif, Anda harus terlebih dahulu merilis sewa.

  • Tanda Tangan Akses Bersama belum dibuat pada kontainer dengan benar.
    Resolusi: Pastikan Anda telah membuat Tanda Tangan Akses Bersama pada kontainer dengan benar. Tinjau instruksi yang diberikan dalam Pelajaran 2 di Tutorial: Gunakan Azure Blob Storage dengan database SQL Server.

  • Kredensial SQL Server belum dibuat dengan benar.
    Resolusi: Pastikan Anda telah menggunakan 'Tanda Tangan Akses Bersama' untuk bidang Identitas dan membuat rahasia dengan benar. Tinjau instruksi yang diberikan dalam Pelajaran 3 di Tutorial: Gunakan Azure Blob Storage dengan database SQL Server.

Kesalahan blob sewa:

  • Kesalahan saat mencoba memulai SQL Server setelah instans lain menggunakan file blob yang sama mengalami crash. Resolusi: Selama operasi normal, SQL Server menggunakan sewa sementara untuk memesan blob untuk penyimpanan dengan perpanjangan setiap sewa blob setiap 45 hingga 60 detik. Jika server mengalami crash dan instans SQL Server lain yang dikonfigurasi untuk menggunakan blob yang sama dimulai, instans baru akan menunggu hingga 60 detik agar sewa yang ada pada blob kedaluwarsa. Jika Anda ingin melampirkan database ke instans lain dan Anda tidak dapat menunggu sewa kedaluwarsa dalam waktu 60 detik, Anda dapat secara eksplisit merilis sewa pada blob untuk menghindari kegagalan dalam operasi lampiran.

Kesalahan database

Kesalahan saat membuat Resolusi database : Tinjau instruksi yang diberikan dalam Pelajaran 4 di Tutorial: Menggunakan Microsoft Azure Blob Storage dengan database SQL Server.

Kesalahan saat menjalankan Resolusi pernyataan Ubah: Pastikan untuk menjalankan pernyataan Ubah Database saat database online. Saat menyalin file data ke Azure Storage, selalu buat blob halaman bukan blob blok. Jika tidak, ALTER Database akan gagal. Tinjau instruksi yang diberikan dalam Pelajaran 7 di Tutorial: Gunakan Microsoft Azure Blob Storage dengan database SQL Server.

Kode kesalahan - 5120 Tidak dapat membuka file fisik "%.*ls". Kesalahan sistem operasi %d: "%ls"

Resolusi: Fitur ini tidak mendukung lebih dari satu instans SQL Server yang mengakses file database yang sama di Azure Storage secara bersamaan. Jika InstanceA online dengan file database aktif dan jika InstanceB dimulai, dan juga memiliki database yang menunjuk ke file data yang sama, instans kedua akan gagal memulai database dengan kode 5120 Unable to open the physical file "%.\*ls". Operating system error %d: "%ls"kesalahan .

Untuk mengatasi masalah ini, pertama-tama tentukan apakah Anda memerlukan ServerA untuk mengakses file database di Azure Storage atau tidak. Jika tidak, hapus koneksi apa pun antara InstanceA dan file database di Azure Storage. Untuk melakukan ini, ikuti langkah-langkah berikut:

  1. Atur jalur file InstanceA ke folder lokal dengan menggunakan pernyataan ALTER Database.

  2. Atur database offline di InstanceA.

  3. Kemudian, salin file database dari Azure Storage ke folder lokal di InstanceA. Ini memastikan bahwa InstanceA masih memiliki salinan database secara lokal.

  4. Atur database secara online.

Kode kesalahan 833 - Permintaan I/O membutuhkan waktu lebih dari 15 detik untuk diselesaikan

Kesalahan ini menunjukkan sistem penyimpanan tidak dapat memenuhi tuntutan beban kerja SQL Server. Kurangi aktivitas IO dari lapisan aplikasi, atau tingkatkan kemampuan throughput pada lapisan penyimpanan. Untuk mempelajari selengkapnya, lihat Kesalahan 833. Jika masalah performa berlanjut, pertimbangkan untuk memindahkan file ke tingkat penyimpanan yang berbeda seperti Premium atau UltraSSD. Untuk SQL Server di Azure VM, lihat mengoptimalkan performa penyimpanan.

Langkah berikutnya