Bagikan melalui


File Data SQL Server di Azure

File Data SQL Server di Azure memungkinkan dukungan asli untuk file database SQL Server yang disimpan sebagai Azure Blobs. Ini memungkinkan Anda membuat database di SQL Server yang berjalan di lokal atau di komputer virtual di Azure dengan lokasi penyimpanan khusus untuk data Anda di Azure Blob Storage. Peningkatan ini terutama menyederhanakan untuk memindahkan database antar mesin dengan menggunakan operasi lepaskan dan lampirkan. Selain itu, ini menyediakan lokasi penyimpanan alternatif untuk file cadangan database Anda dengan memungkinkan Anda memulihkan dari atau ke Azure Storage. Oleh karena itu, ini memungkinkan beberapa solusi hibrid dengan memberikan beberapa manfaat untuk virtualisasi data, pergerakan data, keamanan dan ketersediaan, serta biaya dan pemeliharaan yang mudah dan rendah untuk ketersediaan tinggi serta penskalaan elastis.

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

Untuk pengalaman langsung praktis tentang cara menggunakan fitur baru ini, lihat Tutorial: SQL Server Data Files di layanan Azure Storage.

Diagram berikut menunjukkan bahwa peningkatan ini memungkinkan Anda menyimpan file database SQL Server sebagai blob Azure di Azure Storage terlepas dari tempat server Anda berada.

Integrasi SQL Server dengan Azure Storage

Manfaat menggunakan SQL Server Data Files di 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 menggunakan peningkatan baru ini, alih-alih memindahkan data dari satu lokasi ke lokasi lain, Anda dapat menyimpan banyak database sebagai blob 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 Azure sambil memanfaatkan sumber daya komputasi lokal. Saat Anda menggunakan 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 Azure mungkin menyederhanakan ketersediaan tinggi dan solusi pemulihan bencana. Misalnya, jika komputer virtual di Azure atau instans SQL Server mengalami crash, Anda dapat membuat ulang database Anda di komputer baru hanya dengan membuat ulang tautan ke Azure Blobs.

  • Manfaat keamanan: Peningkatan baru ini memungkinkan Anda 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, menggunakan peningkatan baru ini, Anda dapat mengenkripsi semua data di cloud publik menggunakan sertifikat Transparent Data Encryption (TDE), yang secara fisik dipisahkan dari data. Kunci TDE dapat disimpan dalam database master, 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 Azure Storage. Jika kredensial akun penyimpanan cloud Anda dicuri, data Anda masih tetap aman karena sertifikat TDE selalu berada di lokal.

Konsep dan Persyaratan

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 Azure, akun penyimpanan mewakili tingkat namespace tertinggi untuk mengakses Blob. Akun penyimpanan dapat berisi jumlah kontainer yang tidak terbatas, selama ukuran totalnya di bawah 500 TB. Untuk informasi terbaru tentang batas penyimpanan, lihat Langganan Azure dan Batas Layanan, Kuota, dan Batasan. Kontainer menyediakan pengelompokan sekumpulan Blob. Semua objek Blob harus berada dalam wadah. Akun dapat berisi jumlah kontainer yang tidak terbatas. Demikian pula, kontainer juga dapat menyimpan blob dalam jumlah tak terbatas. Ada dua jenis blob yang dapat disimpan di Azure Storage: blob blok dan halaman. Fitur baru ini menggunakan blob Halaman, yang berukuran hingga 1 TB, dan lebih efisien ketika rentang byte dalam file sering dimodifikasi. Anda dapat mengakses Blob menggunakan format URL berikut: http://storageaccount.blob.core.windows.net/<container>/<blob>.

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. Berdasarkan estimasi kami, biaya perpanjangan sewa untuk dua file database (.mdf dan .ldf) akan menjadi sekitar 2 sen per bulan sesuai dengan model harga saat ini. Kami menyarankan agar Anda menggunakan informasi di halaman Harga Azure untuk membantu memperkirakan biaya bulanan yang terkait dengan penggunaan Azure Storage dan Azure Virtual Machines.

Konsep SQL Server

Saat menggunakan peningkatan baru ini, Anda diharuskan untuk melakukan hal berikut:

  • Anda harus membuat kebijakan pada kontainer dan juga membuat kunci tanda tangan akses bersama (SAS).

  • Untuk setiap kontainer yang digunakan oleh data atau file log, harus membuat Kredensial SQL Server yang namanya cocok dengan jalur kontainer.

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

Contoh berikut mengasumsikan bahwa kontainer Azure Storage telah dibuat, dan kebijakan telah dibuat dengan hak baca, tulis, 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 entri yang mirip dengan yang berikut ini: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'. Untuk informasi selengkapnya, lihat Membuat dan Menggunakan Tanda Tangan Akses Bersama

-- Create a credential  
CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = 'your SAS key'  
  
-- Create database with data and log files in Azure container.  
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.

Keamanan

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

  • Saat membuat kontainer untuk layanan penyimpanan Azure Blob, kami sarankan Anda mengatur akses ke privat. Saat Anda mengatur akses ke privat, data dalam 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 Azuree.

  • SQL Server lokal: Versi SQL Server 2014 menyertakan fitur ini. Untuk mempelajari cara mengunduh SQL Server 2014, lihat SQL Server 2014.

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

Keterbatasan

  • Dalam rilis fitur ini saat ini, menyimpan FileStream data di Azure Storage tidak didukung. Anda dapat menyimpan Filestream data dalam database lokal terintegrasi Azure Storage tetapi Anda tidak dapat memindahkan data Filestream antar mesin menggunakan Azure Storage. Untuk FileStream data, kami sarankan Anda terus menggunakan teknik tradisional untuk memindahkan file (.mdf, .ldf) yang terkait dengan Filestream di antara komputer yang berbeda.

  • Saat ini, peningkatan baru ini tidak mendukung lebih dari satu instans SQL Server yang mengakses file database yang sama di Azure Storage secara bersamaan. Jika ServerA online dengan file database aktif dan jika ServerB tidak sengaja dimulai, dan juga memiliki database yang menunjuk ke file data yang sama, server kedua akan gagal memulai database dengan kode kesalahan 5120 Tidak dapat membuka file fisik "%.*ls". Kesalahan sistem operasi %d: "%ls".

  • Hanya file .mdf, .ldf, dan .ndf yang dapat disimpan di Azure Storage dengan menggunakan fitur SQL Server Data Files di 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.

  • Setiap Blob dapat berukuran maksimal 1 TB. Ini membuat batas atas pada data database individual dan file log yang dapat disimpan di Azure Storage.

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

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

  • AlwaysOn Availability Groups didukung selama Anda tidak menambahkan file database baru ke database utama. Jika operasi database memerlukan file baru untuk dibuat di database utama, pertama-tama nonaktifkan Grup Ketersediaan AlwaysOn di simpul sekunder. Kemudian, lakukan operasi basis data pada basis data utama dan cadangkan basis data di node utama. Selanjutnya, pulihkan database ke simpul sekunder, dan aktifkan Grup Ketersediaan AlwaysOn di simpul sekunder. Perhatikan bahwa Instans Kluster Failover AlwaysOn tidak didukung saat menggunakan SQL Server Data Files 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 memutuskan sewa pada Blob untuk menghindari kegagalan dalam operasi lampiran.

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

Di SQL Server 2014, Anda dapat menggunakan cmdlet PowerShell untuk menyimpan file data SQL Server di layanan Azure Blob Storage dengan mereferensikan jalur URL Blob Storage alih-alih jalur file. Anda dapat mengakses Blob menggunakan format: http://storageaccount.blob.core.windows.net/<container>/<blob> URL berikut .

Dukungan Objek SQL Server dan penghitung kinerja

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, Anda dapat mengetik jalur URL kontainer penyimpanan, seperti https://teststorageaccnt.blob.core.windows.net/testcontainer/Jalur di beberapa jendela dialog, seperti Database Baru, Lampirkan Database, dan Pulihkan Database. Untuk informasi selengkapnya, lihat Tutorial: SQL Server Data Files di layanan Azure Storage.

Dukungan Objek Manajemen SQL Server

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

Fitur baru ini telah memperkenalkan perubahan berikut di area permukaan Transact-SQL:

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

Pemecahan masalah untuk File Data SQL Server di 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 memutuskan 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: SQL Server Data Files di layanan Azure Storage.

  • 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: SQL Server Data Files di layanan Azure Storage.

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 memperbarui 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 memutuskan sewa pada Blob untuk menghindari kegagalan dalam operasi lampiran.

Kesalahan database

  1. Kesalahan saat membuat database
    Resolusi: Tinjau instruksi yang diberikan dalam Pelajaran 4 dalam Tutorial: SQL Server Data Files di layanan Azure Storage.

  2. Kesalahan saat menjalankan pernyataan Ubah
    Resolusi: 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 dalam Tutorial: SQL Server Data Files di layanan Azure Storage.

  3. Kode kesalahan 5120 Tidak dapat membuka file fisik "%.*ls". Kesalahan sistem operasi %d: "%ls"
    Resolusi: Saat ini, peningkatan baru ini tidak mendukung lebih dari satu instans SQL Server yang mengakses file database yang sama di Azure Storage secara bersamaan. Jika ServerA online dengan file database aktif dan jika ServerB tidak sengaja dimulai, dan juga memiliki database yang menunjuk ke file data yang sama, server kedua akan gagal memulai database dengan kode kesalahan 5120 Tidak dapat membuka file fisik "%.*ls". Kesalahan sistem operasi %d: "%ls".

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

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

    2. Nonaktifkan database ke mode offline di Server A.

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

    4. Atur database secara online.

Lihat Juga

Tutorial: File Data SQL Server di layanan Azure Storage