Bagikan melalui


Memindahkan data di antara database cloud di luar skala

Berlaku untuk: Azure SQL Database

Jika Anda adalah pengembang SaaS, dan tiba-tiba aplikasi Anda mengalami permintaan yang luar biasa, Anda perlu mengakomodasi pertumbuhan. Jadi Anda menambahkan lebih banyak database (shard). Bagaimana Anda mendistribusikan ulang data ke database baru tanpa mengganggu integritas data? Gunakan alat pisah-gabung untuk memindahkan data dari database terbatas ke database baru.

Alat pisah-gabung berjalan sebagai layanan web Azure. Administrator atau pengembang menggunakan alat ini untuk memindahkan shardlet (data dari shard) di antara database (shard) yang berbeda. Alat ini menggunakan manajemen peta shard untuk mempertahankan database metadata layanan, dan memastikan pemetaan yang konsisten.

Gambaran Umum

Unduh

Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge

Dokumentasi

  1. Tutorial alat pisah-gabung database elastis
  2. Konfigurasi keamanan pisah-gabung
  3. Pertimbangan keamanan pisah-gabung
  4. Manajemen peta shard
  5. Melakukan migrasi database yang sudah ada untuk peluasan skala
  6. Alat Database Elastis
  7. Glosarium alat Database Elastis

Mengapa menggunakan alat pisah-gabung

  • Fleksibilitas

    Aplikasi perlu merentang secara fleksibel melampaui batas database tunggal di Azure SQL Database. Gunakan alat untuk memindahkan data sesuai kebutuhan ke database baru sambil mempertahankan integritas.

  • Pemisahan untuk pertumbuhan

    Untuk meningkatkan kapasitas keseluruhan dalam menangani pertumbuhan eksplosif, buat kapasitas tambahan dengan memecah data dan dengan mendistribusikannya ke seluruh database secara bertahap sampai kebutuhan kapasitas terpenuhi. Ini adalah contoh utama dari fitur pisah.

  • Gabungkan untuk mengecilkan

    Kebutuhan kapasitas menyusut karena kebiasaan musiman bisnis. Alat ini memungkinkan Anda menurunkan skala ke unit skala yang lebih sedikit saat bisnis melambat. Fitur gabungkan di Layanan Elastic Scale Split-Merge mencakup persyaratan ini.

  • Mengelola hotspot dengan memindahkan shardlet

    Dengan beberapa penyewa per database, alokasi shardlet ke shard dapat menyebabkan hambatan kapasitas pada beberapa shard. Ini mengharuskan alokasi ulang shardlet atau memindahkan shardlet yang sibuk ke shard baru atau kurang dipergunakan.

Konsep dan Fitur kunci

  • Layanan yang dihosting pelanggan

    Pisah-gabung disediakan sebagai layanan yang dihosting pelanggan. Anda harus menggunakan dan menghosting layanan di langganan Microsoft Azure Anda. Paket yang Anda unduh dari NuGet berisi templat konfigurasi untuk melengkapi informasi untuk penyebaran spesifik Anda. Lihat tutorial pisah-gabung untuk detailnya. Karena layanan berjalan di langganan Azure, Anda dapat mengontrol dan mengonfigurasi sebagian besar aspek keamanan layanan. Templat default mencakup opsi untuk mengonfigurasi TLS, autentikasi klien berbasis sertifikat, enkripsi untuk kredensial tersimpan, pengawasan DoS, dan pembatasan IP. Anda dapat menemukan informasi lengkap aspek keamanan pada dokumen berikut konfigurasi keamanan pisah-gabung.

    Layanan yang digunakan secara default berjalan dengan satu pekerja dan satu peran web. Masing-masing menggunakan komputer virtual ukuran A1 di Azure Cloud Services. Meskipun Anda tidak dapat mengubah pengaturan ini saat menyebarkan paket, Anda dapat mengubahnya setelah penyebaran yang berhasil di layanan cloud yang sedang berjalan, (melalui portal Microsft Azure). Perhatikan bahwa peran pekerja tidak boleh dikonfigurasi untuk lebih dari satu instans karena alasan teknis.

  • Integrasi peta Shard

    Layanan pisah-gabung berinteraksi dengan peta shard aplikasi. Saat menggunakan layanan pisah-gabung untuk memisahkan atau menggabungkan rentang atau memindahkan shardlet di antara shard, layanan secara otomatis membuat peta shard tetap diperbarui. Untuk melakukannya, layanan tersambung ke database manajer peta shard aplikasi dan mempertahankan rentang dan pemetaan saat permintaan pisah/gabung/pindah masih berjalan. Ini memastikan bahwa peta shard selalu menyajikan tampilan terbaru saat operasi pisah-gabung sedang berlangsung. Operasi pemisahan, penggabungan, dan pemindahan shardlet diimplementasikan dengan memindahkan sejumlah shardlet dari shard sumber ke shard target. Selama operasi gerakan shardlet, shardlet yang berada pada batch saat ini ditandai sebagai offline dalam peta shard dan tidak tersedia untuk koneksi perutean tergantung data menggunakan API OpenConnectionForKey.

  • Koneksi shardlet yang konsisten

    Ketika pergerakan data dimulai untuk batch shardlet baru, setiap peta shard yang disediakan koneksi perutean tergantung data ke shard yang menyimpan shardlet dibunuh dan koneksi berikutnya dari API peta shard ke shardlet akan diblokir saat pergerakan data sedang berlangsung untuk menghindari inkonsistensi. Koneksi ke shardlet lain pada shard yang sama juga akan terbunuh, tetapi akan berhasil lagi segera dicoba ulang. Setelah batch dipindahkan, shardlet ditandai online lagi untuk shard target dan data sumber dihapus dari shard sumber. Layanan melakukan langkah-langkah ini pada setiap batch sampai semua shardlet telah dipindahkan. Ini akan menyebabkan beberapa operasi pemutusan koneksi selama operasi pisah/gabung/pindah selesai.

  • Mengelola ketersediaan shardlet

    Membatasi pemutusan koneksi ke batch shardlet saat ini seperti yang dibahas di atas membatasi ruang lingkup tidak tersedianya satu batch shardlet pada satu waktu. Ini lebih disukai daripada opsi di mana shard utuh akan offline untuk semua shardlet selama operasi pemisahan atau penggabungan. Ukuran batch, didefinisikan sebagai jumlah shardlet yang berbeda yang bergerak pada satu waktu, adalah parameter konfigurasi. Ini dapat didefinisikan untuk setiap operasi pemisahan dan penggabungan tergantung pada ketersediaan dan kebutuhan performa aplikasi. Perhatikan bahwa rentang yang sedang dikunci dalam peta shard mungkin lebih besar dari ukuran batch yang ditentukan. Ini karena layanan memilih ukuran rentang sedemikian rupa sehingga jumlah aktual nilai kunci sharding dalam data diperkirakan sesuai dengan ukuran batch. Hal ini penting untuk diingat khususnya untuk kunci shard dengan sedikit populasi.

  • Penyimpanan metadata

    Layanan pisah-gabung menggunakan database untuk mempertahankan statusnya dan menyimpan log selama proses permintaan. Pengguna membuat database ini dalam langganan mereka dan menyediakan string koneksi untuk itu dalam file konfigurasi untuk penyebaran layanan. Administrator dari organisasi pengguna juga dapat tersambung ke database ini untuk meninjau kemajuan permintaan dan menyelidiki informasi terperinci mengenai potensi kegagalan.

  • Sharding-awareness

    Layanan pisah-gabung membedakan antara (1) tabel yang dipecah, (2) tabel referensi, dan (3) tabel normal. Semantik dari operasi pisahkan/gabungkan/pindah bergantung pada tipe tabel yang digunakan dan didefinisikan sebagai berikut:

    • Tabel yang dipecah

      Operasi pidah, gabung, dan pindah memindahkan shardlet dari sumber ke shard target. Setelah berhasil menyelesaikan seluruh permintaan, shardlet tersebut tidak lagi ada di sumbernya. Perhatikan bahwa perlu ada tabel target pada shard target dan tidak boleh berisi data dalam rentang target sebelum proses operasi.

    • Tabel referensi

      Untuk tabel referensi, operasi pisah, gabung, dan pindah menyalin data dari sumber ke shard target. Perhatikan, bagaimanapun, bahwa tidak ada perubahan yang terjadi pada shard target untuk tabel tertentu jika terdapat baris yang sudah ada dalam tabel ini pada target. Tabel harus kosong untuk setiap tabel referensi agar operasi penyalinan diproses.

    • Tabel lainnya

      Tabel lain dapat hadir pada sumber atau target operasi pisah dan gabung. Layanan pisah-gabung mengabaikan tabel ini pada setiap pergerakan data atau operasi penyalinan. Bagaimanapun, perhatikan bahwa mereka dapat mengganggu operasi ini jika terjadi kendala.

      Informasi tentang tabel referensi vs. tabel yang dipecah disediakan oleh API SchemaInfo pada peta shard. Contoh berikut mengilustrasikan penggunaan API ini pada objek pengelola peta shard tertentu:

      // Create the schema annotations
      SchemaInfo schemaInfo = new SchemaInfo();
      
      // reference tables
      schemaInfo.Add(new ReferenceTableInfo("dbo", "region"));
      schemaInfo.Add(new ReferenceTableInfo("dbo", "nation"));
      
      // sharded tables
      schemaInfo.Add(new ShardedTableInfo("dbo", "customer", "C_CUSTKEY"));
      schemaInfo.Add(new ShardedTableInfo("dbo", "orders", "O_CUSTKEY"));
      
      // publish
      smm.GetSchemaInfoCollection().Add(Configuration.ShardMapName, schemaInfo);
      

      Tabel region dan nation didefinisikan sebagai tabel referensi dan akan disalin dengan operasi pisah/gabung/pindahkan. customer dan orders pada gilirannya didefinisikan sebagai tabel pecahan. C_CUSTKEY dan O_CUSTKEY berfungsi sebagai kunci sharding.

  • Integritas referensial

    Layanan pisah-gabung menganalisis dependensi antara tabel dan menggunakan hubungan kunci primer-kunci asing (FK-PK) untuk menjalakan operasi pemindahan tabel referensi dan shardlet. Secara umum, tabel referensi disalin terlebih dahulu dalam urutan dependensi, kemudian shardlet disalin dalam urutan dependensinya dalam setiap batch. Hal ini diperlukan agar batasan FK-PK pada shard target dipatuhi seiring tibanya data baru.

  • Konsistensi peta Shard dan penyelesaian akhir

    Saat terjadi kegagalan, layanan pisah-gabung melanjutkan operasi setelah masalah selesai dan bertujuan untuk menyelesaikan permintaan yang sedang berlangsung. Namun, mungkin ada situasi yang tidak dapat dipulihkan, misalnya, ketika shard target hilang atau rusak tanpa bisa diperbaiki. Dalam keadaan tersebut, beberapa shardlet yang seharusnya dipindahkan dapat terus menetap di shard sumber. Layanan ini memastikan bahwa pemetaan shardlet hanya diperbarui setelah data yang diperlukan berhasil disalin ke target. Shardlet hanya dihapus pada sumber setelah semua datanya disalin ke target dan pemetaan yang berkaitan telah berhasil diperbarui. Operasi penghapusan terjadi di latar belakang sementara rentang sudah online pada shard target. Layanan pisah-gabung selalu memastikan ketepatan pemetaan yang tersimpan dalam peta shard.

Antarmuka pengguna layanan pisah-gabung

Paket layanan pisah-gabung mencakup peran pekerja dan peran web. Peran web digunakan untuk mengirimkan permintaan pisah-gabung secara interaktif. Komponen utama antarmuka pengguna adalah sebagai berikut:

  • Jenis operasi

    Jenis operasi adalah tombol radio yang mengontrol jenis operasi yang dilakukan oleh layanan untuk permintaan ini. Anda dapat memilih antara skenario pemisahan, penggabungan, dan pemindahan. Anda juga dapat membatalkan operasi yang diajukan sebelumnya. Anda dapat menggunakan permintaan pisah, gabung, dan pindah untuk peta shard rentang. Peta daftar shard hanya mendukung operasi pemindahan.

  • Peta pecahan

    Bagian berikutnya dari parameter permintaan mencakup informasi tentang peta shard dan database yang menghosting peta shard Anda. Secara khusus, Anda perlu memberikan nama server dan database yang menghosting peta shard, kredensial untuk tersambung ke database peta shard, dan akhirnya, nama peta shard. Saat ini, operasi hanya menerima satu set kredensial. Kredensial ini perlu memiliki izin yang memadai untuk melakukan perubahan pada peta shard serta data pengguna pada shard.

  • Rentang sumber (pisah dan gabung)

    Operasi pisah dan gabung memproses rentang menggunakan kunci rendah dan tinggi. Untuk menentukan operasi dengan nilai kunci tinggi yang tidak terbatas, centang kotak centang "Kunci tinggi adalah maks" dan biarkan bidang kunci tinggi kosong. Nilai kunci rentang yang Anda tentukan tidak perlu sesuai sepenuhnya dengan pemetaan dan batas-batasnya di peta shard Anda. Jika Anda tidak menentukan batas rentang sama sekali, layanan secara otomatis akan menyimpulkan rentang terdekat untuk Anda. Anda dapat menggunakan skrip PowerShell GetMappings.ps1 untuk mengambil pemetaan saat ini dalam peta shard tertentu.

  • Perilaku sumber terpisah (Pisah)

    Untuk operasi terpisah, tentukan titik untuk memisahkan rentang sumber. Anda melakukan ini dengan menyediakan kunci sharding di tempat yang ingin anda pisahkan. Gunakan tombol radio untuk menentukan apakah Anda ingin memindah bagian bawah rentang (tidak termasuk tombol pemisah), atau apakah Anda ingin bagian atas yang bergerak (termasuk tombol pemisah).

  • Shardlet sumber (pindah)

    Operasi pindah berbeda dengan operasi pisah atau gabung karena tidak memerlukan rentang untuk menjelaskan sumbernya. Sumber untuk pindah hanya diidentifikasi oleh nilai kunci sharding yang ingin anda pindahkan.

  • Shard target (pisah)

    Setelah Anda memberikan informasi tentang sumber operasi pisah Anda, Anda perlu menentukan letak data yang telah disalin dengan menyediakan server dan nama database untuk target.

  • Rentang target (merge)

    Operasi gabung memindahkan shardlet ke shard yang ada. Anda mengidentifikasi shard yang sudah ada dengan menyediakan batas rentang dari rentang yang ada yang ingin digabungkan.

  • Ukuran batch

    Ukuran batch mengontrol jumlah shardlet yang akan offline pada satu waktu selama pergerakan data. Ini adalah nilai bilangan bulat di mana Anda dapat menggunakan nilai yang lebih kecil saat Anda sensitif terhadap periode waktu henti shardlet yang panjang. Nilai yang lebih besar akan menambah waktu offline untuk shardlet tertentu tetapi dapat meningkatkan performa.

  • ID Operasi (Pembatalan)

    Jika Anda memiliki operasi sedang berjalan yang tidak lagi diperlukan, Anda dapat membatalkan operasi dengan memberikan ID operasinya di bidang ini. Anda dapat mengambil ID operasi dari tabel status permintaan (lihat Bagian 8.1) atau dari output di browser web tempat Anda mengirimkan permintaan.

Persyaratan dan batasan

Implementasi layanan pisah-gabung saat ini tunduk pada persyaratan dan batasan berikut:

  • Shard harus tersedia dan terdaftar dalam peta shard sebelum operasi pisah-gabung pada shard ini dapat dilakukan.
  • Layanan ini tidak membuat tabel atau objek database lainnya secara otomatis sebagai bagian dari operasinya. Ini berarti bahwa skema untuk semua tabel yang dipecah dan tabel referensi perlu ada pada shard target sebelum operasi pisah/gabung/pindah. Khususnya tabel yang dipecah harus kosong dalam rentang di mana shardlet baru akan ditambahkan oleh operasi pisah/gabung/pindah. Jika tidak, operasi akan gagal di pemeriksaan konsistensi awal pada shard target. Perhatikan juga bahwa data referensi hanya disalin jika tabel referensi kosong dan tidak ada jaminan konsistensi yang berkaitan dengan operasi penulisan yang terjadi secara bersamaan pada tabel referensi. Kami menyarankan: saat menjalankan operasi pisah/gabung, tidak ada operasi penulisan lain yang membuat perubahan pada tabel referensi.
  • Layanan ini bergantung pada identitas baris yang ditetapkan oleh indeks atau kunci unik yang mencakup kunci sharding untuk meningkatkan performa dan keandalan untuk shardlet besar. Ini memungkinkan layanan untuk memindahkan data pada granularitas yang lebih baik daripada hanya nilai kunci sharding. Ini membantu mengurangi jumlah maksimum ruang log dan kunci yang diperlukan selama operasi. Pertimbangkan untuk membuat indeks unik atau kunci utama termasuk kunci sharding pada tabel tertentu jika Anda ingin menggunakan permintaan pisah/gabung/pindah pada tabel tersebut. Untuk alasan performa, kunci sharding harus menjadi kolom utama di kunci atau indeks.
  • Selama pemrosesan permintaan, beberapa data shardlet dapat tersedia baik pada shard sumber dan target. Ini diperlukan untuk menghindari kegagalan selama gerakan shardlet. Integrasi pisah-gabung dengan peta shard memastikan bahwa koneksi melalui API perutean tergantung data menggunakan metode OpenConnectionForKey pada peta shard tidak menemui status yang tidak konsisten. Namun, ketika menyambung ke shard sumber atau target tanpa menggunakan metode OpenConnectionForKey, status yang tidak konsisten mungkin terlihat ketika permintaan pisah/gabung/pindah sedang berlangsung. Koneksi ini dapat menampilkan hasil parsial atau duplikat tergantung pada waktu atau shard yang mendasari koneksi. Pembatasan ini saat ini mencakup koneksi yang dibuat oleh Elastic Scale Multi-Shard-Queries.
  • Database metadata untuk layanan pisah-gabung tidak boleh dibagi di antara peran yang berbeda. Misalnya, peran layanan pisah-gabung yang berjalan dalam persiapan perlu menunjuk ke database metadata yang berbeda dari peran produksi.

Billing

Layanan pisah-gabung berjalan sebagai layanan cloud di langganan Microsoft Azure Anda. Oleh karena itu, biaya untuk layanan cloud berlaku untuk instans layanan Anda. Kecuali Anda sering melakukan operasi pisah/gabung/pindah, kami sarankan Anda menghapus layanan cloud pisah-gabung Anda. Itu menghemat biaya untuk menjalankan atau menyebarkan instans layanan cloud. Anda dapat menyebarkan kembali dan memulai konfigurasi yang mudah dijalankan kapan pun Anda perlu melakukan operasi pisah/gabung.

Pemantauan

Tabel status

Layanan pisah-gabung menyediakan tabel RequestStatus di database penyimpanan metadata untuk pemantauan permintaan yang sedang berlangsung dan sudah selesai. Tabel mencantumkan baris untuk setiap permintaan pisah-gabung yang telah dikirimkan ke instans layanan pisah-gabung ini. Tabel tersebut memberikan informasi berikut untuk setiap permintaan:

  • Stempel waktu

    Waktu dan tanggal saat permintaan dimulai.

  • OperationId

    GUID yang mengidentifikasi permintaan secara unik. Permintaan ini juga dapat digunakan untuk membatalkan operasi saat masih berlangsung.

  • Keadaan

    Status permintaan saat ini. Untuk permintaan yang sedang berlangsung, ia juga mencantumkan fase permintaan saat ini.

  • CancelRequest

    Bendera yang menunjukkan apakah permintaan telah dibatalkan.

  • Kemajuan

    Perkiraan persentase penyelesaian operasi. Nilai 50 menunjukkan perkiraan bahwa operasi 50% selesai.

  • Rincian

    Nilai XML yang menyediakan laporan kemajuan yang lebih rinci. Laporan kemajuan diperbarui secara berkala saat kumpulan baris disalin dari sumber ke target. Jika terjadi kegagalan atau pengecualian, kolom ini juga menyertakan informasi lebih rinci tentang kegagalan tersebut.

Azure Diagnostics

Layanan pisah-gabung menggunakan Azure Diagnostics berdasarkan Azure SDK 2.5 untuk pemantauan dan diagnostik. Anda mengontrol konfigurasi diagnostik seperti yang dijelaskan di sini: Mengaktifkan Diagnostik di Microsoft Azure Cloud Services dan Komputer Virtual. Paket unduhan mencakup dua konfigurasi diagnostik - satu untuk peran web dan satu untuk peran pekerja. Paket mencakup definisi untuk penghitung log performa, log IIS, log peristiwa Windows, dan log peristiwa aplikasi pisah-gabung.

Menyebarkan Diagnostik

Catatan

Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Penting

Modul Azure Resource Manager PowerShell masih didukung, tetapi semua pengembangan masa mendatang adalah untuk modul Az.Sql. Untuk cmdlet ini, lihat AzureRM.Sql. Argumen untuk perintah dalam modul Az dan dalam modul AzureRm secara substansial identik.

Untuk mengaktifkan pemantauan dan diagnostik menggunakan konfigurasi diagnostik untuk peran web dan pekerja yang disediakan oleh paket NuGet, jalankan perintah berikut menggunakan Azure PowerShell:

$storageName = "<azureStorageAccount>"
$key = "<azureStorageAccountKey"
$storageContext = New-AzStorageContext -StorageAccountName $storageName -StorageAccountKey $key
$configPath = "<filePath>\SplitMergeWebContent.diagnostics.xml"
$serviceName = "<cloudServiceName>"

Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext `
    -DiagnosticsConfigurationPath $configPath -ServiceName $serviceName `
    -Slot Production -Role "SplitMergeWeb"

Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext `
    -DiagnosticsConfigurationPath $configPath -ServiceName $serviceName `
    -Slot Production -Role "SplitMergeWorker"

Anda dapat menemukan informasi lebih lengkap cara mengonfigurasi dan menyebarkan pengaturan diagnostik di sini: Mengaktifkan Diagnostik di Mengaktifkan Diagnostik di Microsoft Azure Cloud Services dan Komputer Virtual.

Ambil diagnostik

Anda dapat dengan mudah mengakses diagnostik Anda dari Visual Studio Server Explorer di bagian Azure dari pohon Server Explorer. Buka instans Visual Studio, dan di bilah menu klik Tampilan, dan Server Explorer. Klik ikon Azure untuk menyambungkan ke langganan Azure Anda. Kemudian navigasikan ke Azure -> Penyimpanan -><your storage account> -> Tabel -> WADLogsTable. Untuk mengetahui informasi selengkapnya, lihat Server Explorer.

WADLogsTable

WADLogsTable yang disorot pada gambar di atas berisi peristiwa terperinci dari log aplikasi layanan pisah-gabung. Perhatikan bahwa konfigurasi default paket unduhan dipersiapkan untuk penyebaran produksi. Oleh karena itu interval di saat log dan penghitung ditarik dari instans layanan cukup panjang (5 menit). Untuk pengujian dan pengembangan, turunkan interval dengan menyesuaikan pengaturan diagnostik peran web atau pekerja dengan kebutuhan Anda. Klik kanan pada peran di Server Explorer Visual Studio (lihat di atas) lalu sesuaikan Periode Transfer dalam dialog untuk pengaturan konfigurasi Diagnostik:

Konfigurasi

Performa

Secara umum, performa yang lebih baik diharapkan dari layanan dengan tier performa yang lebih tinggi. Alokasi IO, CPU, dan memori yang lebih tinggi untuk tingkat layanan yang lebih tinggi menguntungkan operasi penyalinan dan penghapusan massal yang digunakan layanan pisah-gabung. Untuk alasan itu, naikkan tingkat layanan hanya untuk database tersebut dalam jangka waktu terbatas yang telah ditentukan.

Layanan ini juga melakukan kueri validasi sebagai bagian dari operasi normalnya. Kueri validasi ini memeriksa keberadaan data yang tidak terduga dalam rentang target dan memastikan bahwa operasi pisah/gabung/pindah dimulai dari status konsisten. Semua kueri ini bekerja melalui rentang kunci sharding yang ditentukan oleh lingkup operasi dan ukuran batch yang disediakan sebagai bagian dari rincian permintaan. Kueri ini menunjukkan performa terbaik ketika indeks yang ada memiliki kunci sharding sebagai kolom utama.

Selain itu, properti keunikan dengan kunci sharding sebagai kolom utama akan memungkinkan layanan untuk menggunakan pendekatan optimal yang membatasi konsumsi sumber daya, dalam hal ini ruang log dan memori. Properti keunikan ini diperlukan untuk memindahkan data dengan ukuran besar (biasanya di atas 1GB).

Cara meningkatkan

  1. Ikuti langkah-langkah Menyebarkan layanan pisah-gabung.
  2. Ubah file konfigurasi layanan cloud Anda untuk menyebarkan pisah-gabung Anda agar sama dengan parameter konfigurasi baru. Parameter baru yang diperlukan adalah informasi tentang sertifikat yang digunakan untuk enkripsi. Cara mudah untuk melakukan ini adalah dengan membandingkan file templat konfigurasi baru dari unduhan dengan konfigurasi Anda yang sudah ada. Pastikan Anda menambahkan pengaturan untuk DataEncryptionPrimaryCertificateThumbprint dan DataEncryptionPrimary untuk peran web dan pekerja.
  3. Sebelum menyebarkan pembaruan ke Azure, pastikan bahwa semua operasi pisah-gabung yang sedang berjalan telah selesai. Anda dapat melakukan ini dengan mudah dengan mengkueri tabel RequestStatus dan PendingWorkflows dalam database metadata pisah-gabung untuk permintaan yang sedang berlangsung.
  4. Perbarui penyebaran layanan cloud yang sudah ada untuk pisah-gabung di langganan Azure Anda dengan paket baru dan file konfigurasi layanan terbaru Anda.

Anda tidak perlu menyediakan database metadata baru pisah-gabung untuk pemutakhiran. Versi baru akan secara otomatis memutakhirkan database metadata Anda yang sudah ada ke versi baru.

Praktik terbaik & pemecahan masalah

  • Tentukan penyewa percobaan dan jalankan operasi pisah/gabung/pindah Anda yang paling penting dengan penyewa percobaan di beberapa shard. Pastikan bahwa semua metadata didefinisikan dengan benar dalam peta shard Anda dan bahwa operasi tidak melanggar batasan atau kunci asing.
  • Pertahankan ukuran data penyewa percobaan di atas ukuran data maksimum penyewa terbesar Anda untuk memastikan Anda tidak mengalami masalah terkait ukuran data. Ini membantu Anda menilai batas atas pada waktu yang diperlukan untuk memindahkan satu penyewa.
  • Pastikan bahwa skema Anda memungkinkan penghapusan. Layanan pisah-gabung membutuhkan kemampuan untuk menghapus data dari shard sumber setelah data berhasil disalin ke target. Misalnya, pemicu penghapusan dapat mencegah layanan menghapus data sumber dan dapat menyebabkan operasi gagal.
  • Kunci sharding harus menjadi kolom utama dalam definisi kunci utama atau indeks unik Anda. Itu memastikan performa terbaik untuk kueri validasi pemisahan atau penggabungan, dan untuk operasi pemindahan dan penghapusan data aktual yang selalu beroperasi pada rentang kunci sharding.
  • Alokasikan layanan pisah-gabung Anda di wilayah dan pusat data tempat database Anda berada.

Belum menggunakan alat database elastis? Lihat Panduan Memulai kami. Jika memiliki pertanyaan, hubungi kami di halaman pertanyaan Tanya Jawab Microsoft untuk SQL Database dan untuk permintaan fitur, tambahkan ide-ide baru atau ambil suara terbanyak untuk ide yang sudah ada di forum umpan balik SQL Database.