Perbedaan T-SQL antara SQL Server & Azure SQL Managed Instance

Berlaku untuk:Azure SQL Managed Instance

Artikel ini merangkum dan menjelaskan perbedaan sintaksis dan perilaku antara Azure SQL Managed Instance dan SQL Server.

SQL Managed Instance menyediakan kompatibilitas tinggi dengan mesin database SQL Server, dan sebagian besar fitur didukung dalam SQL Managed Instance.

Diagram showing the easy migration from SQL Server.

Ada beberapa batasan PaaS yang diperkenalkan dalam SQL Managed Instance dan beberapa perubahan perilaku dibandingkan dengan SQL Server. Perbedaan dibagi menjadi kategori berikut:

Sebagian besar fitur ini adalah batasan arsitektur dan mewakili fitur layanan.

Masalah umum sementara yang ditemukan di SQL Managed Instance dan yang akan diatasi di masa mendatang dijelaskan di Apa yang baru?.

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Ketersediaan

Grup Ketersediaan AlwaysOn

Ketersediaan tinggi dibuat ke dalam SQL Managed Instance dan tidak dapat dikontrol oleh pengguna. Pernyataan berikut ini tidak didukung:

Cadangan

Azure SQL Managed Instance memiliki pencadangan otomatis, sehingga pengguna dapat membuat cadangan COPY_ONLY database lengkap. Pencadangan diferensial, log, dan rekam jepret file tidak didukung.

  • Dengan SQL Managed Instance, Anda dapat mencadangkan database instans hanya ke akun penyimpanan Azure Blob:
    • Hanya BACKUP TO URL yang didukung.
    • FILE, TAPE, dan perangkat pencadangan tidak didukung.
  • Sebagian besar opsi WITH umum didukung.
    • COPY_ONLY adalah wajib.
    • FILE_SNAPSHOT dan CREDENTIAL tidak didukung.
    • Opsi pita: REWIND, NOREWIND, UNLOAD, dan NOUNLOAD tidak didukung.
    • Opsi khusus log: NORECOVERY, STANDBY, dan NO_TRUNCATE tidak didukung.

Batasan:

  • Dengan SQL Managed Instance, Anda dapat mencadangkan database instans ke cadangan dengan hingga 32 garis, yang cukup untuk database hingga 4 TB jika kompresi cadangan digunakan.

  • Anda tidak dapat menjalankan BACKUP DATABASE ... WITH COPY_ONLY di database yang dienkripsi dengan Enkripsi Data Transparan (TDE) yang dikelola layanan. TDE yang dikelola layanan memaksa cadangan untuk dienkripsi dengan kunci TDE internal. Kunci tidak dapat diekspor, sehingga Anda tidak dapat memulihkan cadangan. Gunakan pencadangan otomatis dan pemulihan point-in-time, atau gunakan TDE yang dikelola pelanggan (BYOK). Anda juga dapat menonaktifkan enkripsi pada database.

  • Cadangan asli yang diambil pada SQL Managed Instance hanya dapat dipulihkan ke instans SQL Server 2022. Ini karena SQL Managed Instance memiliki versi database internal yang lebih tinggi dibandingkan dengan versi SQL Server lainnya. Untuk informasi selengkapnya, tinjau Memulihkan cadangan database SQL Managed Instance ke SQL Server 2022.

  • Untuk mencadangkan atau memulihkan database ke/dari penyimpanan Azure, Anda dapat mengautentikasi menggunakan identitas terkelola atau tanda tangan akses bersama (SAS) yang merupakan URI yang memberi Anda hak akses terbatas ke sumber daya Azure Storage Pelajari selengkapnya tentang hal ini. Menggunakan kunci Access untuk skenario ini tidak didukung.

  • Ukuran garis cadangan maksimum dengan menggunakan perintah BACKUP di SQL Managed Instance adalah 195 GB, yang merupakan ukuran blob maksimum. Tingkatkan jumlah garis dalam perintah cadangan untuk mengurangi ukuran garis individu dan tetap dalam batas ini.

    Tip

    Untuk mengatasi batasan ini, saat Anda mencadangkan database dari SQL Server di lingkungan lokal atau di mesin virtual, Anda dapat:

    • Mencadangkan ke DISK bukannya mencadangkan ke URL.
    • Mengunggah file cadangan ke penyimpanan Blob.
    • Memulihkan ke SQL Managed Instance.

    Perintah Restore di SQL Managed Instance mendukung ukuran blob yang lebih besar dalam file cadangan karena jenis blob yang berbeda digunakan untuk penyimpanan file cadangan yang diunggah.

Untuk mengetahui informasi tentang pencadangan menggunakan T-SQL, lihat BACKUP.

Keamanan

Audit

Perbedaan utama antara audit di Microsoft Azure SQL dan di SQL Server adalah:

  • Dengan SQL Managed Instance, audit berfungsi di tingkat server. File log .xel disimpan di penyimpanan Azure Blob.
  • Dengan Azure SQL Database, audit berfungsi di tingkat database. File log .xel disimpan di penyimpanan Azure Blob.
  • Dengan SQL Server, lokal, atau di mesin virtual, audit bekerja di tingkat server. Peristiwa disimpan pada sistem file atau log peristiwa Windows.

Audit XEvent di SQL Managed Instance mendukung target penyimpanan Azure Blob. Log file dan Windows tidak didukung.

Perbedaan utama dalam sintaksis CREATE AUDIT untuk mengaudit ke penyimpanan Azure Blob adalah:

  • Sintaks TO URL baru disediakan untuk menentukan URL kontainer penyimpanan Azure Blob tempat .xel file ditempatkan.
  • Sintaks TO FILE ini tidak didukung karena SQL Managed Instance tidak dapat mengakses berbagi file Windows.

Untuk informasi selengkapnya, lihat:

Sertifikat

SQL Managed Instance tidak dapat mengakses berbagi file dan folder Windows, sehingga batasan berikut berlaku:

  • File CREATE FROM/BACKUP TO tidak didukung untuk sertifikat.
  • Sertifikat CREATE/BACKUP dari FILE/ASSEMBLY tidak didukung. File kunci privat tidak dapat digunakan.

Lihat CREATE CERTIFICATE dan BACKUP CERTIFICATE.

Solusi: Alih-alih membuat cadangan sertifikat dan memulihkan cadangan, dapatkan konten biner sertifikat dan kunci privat, simpan sebagai file .sql, dan buat dari biner:

CREATE CERTIFICATE
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);

Kredensial

Identitas terkelola, Azure Key Vault, dan SHARED ACCESS SIGNATURE identitas didukung. Pengguna Windows tidak didukung.

Lihat CREATE CREDENTIAL dan ALTER CREDENTIAL.

Penyedia kriptografi

SQL Managed Instance tidak dapat mengakses file, sehingga penyedia kriptografi tidak dapat dibuat:

Login dan pengguna

  • Info masuk SQL yang dibuat dengan menggunakan FROM CERTIFICATE, FROM ASYMMETRIC KEY, dan FROM SID didukung. Lihat CREATE LOGIN. Prinsipal server (login) dibuat di tingkat server, dan pengguna (prinsipal database) dibuat di tingkat database. Login Microsoft Entra yang dibuat dengan sintaks CREATE LOGIN dan pengguna Microsoft Entra yang dibuat dengan sintaks CREATE USER FROM LOGIN didukung. Saat membuat pengguna dan menentukan FROM LOGIN, pengguna tersebut terkait dengan login, dan mewarisi peran dan izin server yang ditetapkan untuknya.

    SQL Managed Instance mendukung pembuatan pengguna database mandiri berdasarkan identitas Microsoft Entra dengan sintaks CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Pengguna yang dibuat dengan cara ini tidak terkait dengan prinsipal server, bahkan jika perwakilan server dengan nama yang sama ada di master database.

  • Info masuk Windows yang dibuat dengan sintaksis CREATE LOGIN ... FROM WINDOWS tidak didukung. Gunakan login dan pengguna Microsoft Entra.

  • Admin Microsoft Entra untuk instans memiliki hak istimewa admin yang tidak dibatasi.

  • Beberapa fitur tidak mendukung penggunaan login Microsoft Entra dalam interaksi lintas instans, tetapi hanya dalam satu SQL Managed Instance, seperti replikasi SQL Server misalnya. Fitur server tertaut meskipun mendukung autentikasi lintas instans menggunakan prinsipal server Microsoft Entra (login).

  • Mengatur login Microsoft Entra yang dipetakan ke grup Microsoft Entra karena pemilik database tidak didukung. Anggota grup Microsoft Entra bisa menjadi pemilik database, bahkan jika login belum dibuat dalam database.

  • Peniruan prinsipal tingkat server Microsoft Entra dengan menggunakan prinsipal Microsoft Entra lainnya didukung, seperti klausul EXECUTE AS . Batasan EXECUTE AS adalah:

    • EXECUTE AS USER tidak didukung untuk pengguna Microsoft Entra saat nama berbeda dari nama login. Contohnya adalah ketika pengguna dibuat melalui sintaks CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] dan peniruan dilakukan melalui EXEC AS USER = myAadUser. Saat Anda membuat PENGGUNA dari login Microsoft Entra, tentukan user_name sebagai login_name yang sama dari LOGIN.

    • Hanya login tingkat SQL Server yang merupakan bagian sysadmin dari peran yang dapat menjalankan operasi berikut yang menargetkan perwakilan Microsoft Entra:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • Untuk meniru pengguna dengan pernyataan EXECUTE AS, pengguna perlu dipetakan langsung ke login Microsoft Entra. Pengguna yang merupakan anggota grup Microsoft Entra yang dipetakan ke prinsipal server Microsoft Entra tidak dapat secara efektif ditiru dengan pernyataan EXECUTE AS, meskipun penelepon memiliki izin peniru pada nama pengguna yang ditentukan.

  • Ekspor/impor database menggunakan file bacpac didukung untuk pengguna Microsoft Entra di SQL Managed Instance menggunakan SSMS V18.4 atau yang lebih baru, atau SqlPackage.

    • Konfigurasi berikut didukung menggunakan file bacpac database:
      • Ekspor/impor database antara instans pengelolaan yang berbeda dalam domain Microsoft Entra yang sama.
      • Ekspor database dari SQL Managed Instance dan impor ke SQL Database dalam domain Microsoft Entra yang sama.
      • Ekspor database dari SQL Database dan impor ke SQL Managed Instance dalam domain Microsoft Entra yang sama.
      • Mengekspor database dari SQL Managed Instance dan mengimpor ke SQL Server (versi 2012 atau yang lebih baru).
        • Dalam konfigurasi ini, semua pengguna Microsoft Entra dibuat sebagai prinsipal database SQL Server (pengguna) tanpa masuk. Jenis pengguna adalah SQL dan terlihat seperti SQL_USER dalam sys.database_principals. Izin dan peran tersebut tetap berada dalam metadata database SQL Server dan dapat digunakan untuk peniruan identitas. Namun, mereka tidak dapat digunakan untuk mengakses dan masuk ke SQL Server menggunakan kredensial mereka.
  • Hanya login utama tingkat server, yang dibuat oleh proses provisi SQL Managed Instance, anggota peran server, seperti securityadmin atau sysadmin, atau login lain dengan izin UBAH LOGIN APA PUN di tingkat server dapat membuat prinsipal server Microsoft Entra (login) dalam master database untuk SQL Managed Instance.

  • Login berbasis autentikasi SQL harus diberi sysadmin peran untuk membuat login untuk identitas Microsoft Entra.

  • Login harus menjadi anggota penyewa Microsoft Entra yang sama dengan tempat Azure SQL Managed Instance dihosting.

  • Prinsipal server Microsoft Entra (masuk) terlihat di Object Explorer yang dimulai dengan pratinjau SQL Server Management Studio 18.0 5.

  • Perwakilan server dengan tingkat akses sysadmin secara otomatis dibuat untuk admin Microsoft Entra setelah diaktifkan pada instans.

  • Selama autentikasi, urutan berikut diterapkan untuk mengatasi prinsipal autentikasi:

    1. Jika akun Microsoft Entra langsung dipetakan ke login Microsoft Entra, yang ada sebagai sys.server_principals jenis "E," berikan akses dan terapkan izin masuk tersebut.
    2. Jika akun Microsoft Entra adalah anggota grup yang dipetakan ke login Microsoft Entra, yang ada sebagai sys.server_principals jenis "X," berikan akses dan terapkan izin login tersebut.
    3. Jika akun Microsoft Entra ada sebagai langsung dipetakan ke pengguna Microsoft Entra dalam database, yang ada sebagai sys.database_principals jenis "E," berikan akses dan terapkan izin pengguna database Microsoft Entra.
    4. Jika akun Microsoft Entra adalah anggota grup Microsoft Entra yang dipetakan ke pengguna Microsoft Entra dalam database, yang ada sebagai sys.database_principals jenis "X," berikan akses dan terapkan izin pengguna grup Microsoft Entra.

Kunci layanan dan kunci master layanan

Konfigurasi

Ekstensi kumpulan buffer

Kolase

Kolase instans default adalah SQL_Latin1_General_CP1_CI_AS dan dapat ditentukan sebagai parameter pembuatan. Lihat Kolase.

Tingkat kompatibilitas

  • Tingkat kompatibilitas yang didukung adalah 100, 110, 120, 130, 140, 150, dan 160.
  • Tingkat kompatibilitas di bawah 100 tidak didukung.
  • Tingkat kompatibilitas default untuk database baru adalah 150. Untuk database yang dipulihkan, tingkat kompatibilitas tetap tidak berubah jika 100 ke atas.

Lihat Tingkat Kompatibilitas MENGUBAH DATABASE.

Pencerminan Database

Pencerminan database tidak didukung.

  • Opsi ALTER DATABASE SET PARTNER dan SET WITNESS tidak didukung.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING tidak didukung.

Untuk mengetahui informasi selengkapnya, lihat ALTER DATABASE SET PARTNER dan SET WITNESS dan CREATE ENDPOINT … FOR DATABASE_MIRRORING.

Opsi database

  • Beberapa file log tidak didukung.
  • Objek dalam memori tidak didukung di tingkat layanan Tujuan Umum.
  • Ada batas 280 file per instans Tujuan Umum, yang menyiratkan maksimum 280 file per database. File data dan log dalam tingkat Tujuan Umum dihitung dalam batas ini. Tingkat Kritis Bisnis mendukung 32.767 file per database.
  • Database tidak boleh berisi grup file yang berisi data FILESTREAM. Pemulihan gagal jika .bak berisi FILESTREAM data.
  • Setiap file ditempatkan di penyimpanan Azure Blob. IO dan throughput per file tergantung pada ukuran setiap file individual.

Pernyataan CREATE DATABASE

Batasan berikut berlaku untuk CREATE DATABASE:

  • File dan grup file tidak dapat ditentukan.

  • Grup file dan file yang dioptimalkan memori ditambahkan secara otomatis dan disebut XTP.

  • Opsi CONTAINMENT tidak didukung.

  • Opsi WITH tidak didukung.

    Tip

    Sebagai solusinya, gunakan ALTER DATABASE setelah CREATE DATABASE untuk mengatur opsi database guna menambahkan file atau mengatur penahanan.

  • Opsi FOR ATTACH tidak didukung.

  • Opsi AS SNAPSHOT OF tidak didukung.

Untuk mengetahui informasi selengkapnya, lihat CREATE DATABASE.

Pernyataan ALTER DATABASE

Beberapa properti file tidak dapat diatur atau diubah:

  • Jalur file tidak dapat ditentukan dalam pernyataan T-SQL ALTER DATABASE ADD FILE (FILENAME='path'). Hapus FILENAME dari skrip karena SQL Managed Instance secara otomatis menempatkan file.
  • Nama file tidak dapat diubah dengan menggunakan pernyataan ALTER DATABASE.
  • Mengubah file XTP atau grup file tidak diperbolehkan.

Opsi berikut diatur secara default dan tidak dapat diubah:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

Opsi berikut tidak dapat diubah:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

Beberapa pernyatan ALTER DATABASE (misalnya, SET CONTAINMENT) mungkin gagal sementara, misalnya selama pencadangan database otomatis atau tepat setelah database dibuat. Dalam kasus ini, pernyataan ALTER DATABASE harus dicoba lagi. Untuk mengetahui informasi selengkapnya tentang pesan kesalahan terkait, lihat bagian Keterangan.

Untuk mengetahui informasi selengkapnya, lihat ALTER DATABASE.

SQL Server Agent

  • Mengaktifkan dan menonaktifkan SQL Server Agent saat ini tidak didukung di SQL Managed Instance. SQL Agent selalu berjalan.
  • Pemicu jadwal pekerjaan berdasarkan CPU diam tidak didukung.
  • Pengaturan SQL Server Agent adalah hanya baca. Prosedur sp_set_agent_properties tidak didukung di SQL Managed Instance.
  • Pekerjaan
    • Langkah pekerjaan T-SQL didukung.
    • Pekerjaan replikasi berikut didukung:
      • Pembaca log transaksi
      • Snapshot
      • Distributor
    • Langkah pekerjaan SSIS didukung.
    • Jenis langkah pekerjaan lainnya saat ini tidak didukung:
      • Langkah pekerjaan replikasi penggabungan tidak didukung.
      • Pembaca Antrean tidak didukung.
      • Shell perintah belum didukung.
    • SQL Managed Instance tidak dapat mengakses sumber daya eksternal, misalnya, berbagi jaringan melalui robocopy.
    • SQL Server Analysis Services tidak didukung.
  • Pemberitahuan didukung sebagian.
  • Pemberitahuan email didukung, meskipun Anda diharuskan mengonfigurasi profil Email Database. SQL Server Agent hanya dapat menggunakan satu profil Email Database, dan harus dipanggil AzureManagedInstance_dbmail_profile.
    • Pager tidak didukung.
    • NetSend tidak didukung.
    • Pemberitahuan belum didukung.
    • Proksi tidak didukung.
  • EventLog tidak didukung.
  • Pengguna harus langsung dipetakan ke login server Microsoft Entra untuk membuat, memodifikasi, atau menjalankan pekerjaan SQL Agent. Pengguna yang tidak dipetakan secara langsung, misalnya, pengguna yang termasuk dalam grup Microsoft Entra yang memiliki hak untuk membuat, memodifikasi, atau menjalankan pekerjaan SQL Agent, tidak akan secara efektif dapat melakukan tindakan tersebut. Hal ini dikarenakan peniruan SQL Managed Instance dan batasan EXECUTE AS.
  • Fitur Administrasi Multi Server untuk pekerjaan master/target (MSX/TSX) tidak didukung.

Untuk mengetahui informasi tentang SQL Server Agent, lihat SQL Server Agent.

Tabel

Jenis tabel berikut ini tidak didukung:

Untuk mengetahui informasi tentang cara membuat dan mengubah tabel, lihat CREATE TABLE dan ALTER TABLE.

Fungsionalitas

SISIPAN MASSAL / OPENROWSET

SQL Managed Instance tidak dapat mengakses berbagi file dan folder Windows, sehingga file harus diimpor dari penyimpanan Azure Blob:

  • DATASOURCE diperlukan dalam perintah BULK INSERT saat Anda mengimpor file dari penyimpanan Azure Blob. Lihat BULK INSERT.
  • DATASOURCE diperlukan dalam fungsi OPENROWSET saat Anda membaca konten file dari penyimpanan Azure Blob. Lihat OPENROWSET.
  • OPENROWSET dapat digunakan untuk membaca data dari Azure SQL Database, Azure SQL Managed Instance, atau instans SQL Server. Sumber lain seperti database Oracle atau file Excel tidak didukung.

CLR

SQL Managed Instance tidak dapat mengakses berbagi file dan folder Windows, sehingga batasan berikut berlaku:

Email Database (db_mail)

  • sp_send_dbmail tidak dapat mengirim lampiran menggunakan @file_attachments parameter. Sistem file lokal dan berbagi eksternal atau Azure Blob Storage tidak dapat diakses dari prosedur ini.
  • Lihat masalah umum terkait parameter @query dan autentikasi.

DBCC

Pernyataan DBCC tidak berdokumen yang diaktifkan di SQL Server tidak didukung dalam SQL Managed Instance.

  • Hanya sejumlah terbatas bendera Pelacakan Global yang didukung. Tingkat sesi Trace flags tidak didukung. Lihat Bendera pelacakan.
  • DBCC TRACEOFF dan DBCC TRACEON berfungsi dengan jumlah bendera pelacakan global yang terbatas.
  • DBCC CHECKDB dengan opsi REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, dan REPAIR_REBUILD tidak dapat digunakan karena database tidak dapat diatur dalam SINGLE_USER mode - lihat MENGUBAH perbedaan DATABASE. Potensi kerusakan database ditangani oleh tim dukungan Azure. Hubungi dukungan Azure jika ada indikasi kerusakan database.

Transaksi terdistribusi

Transaksi terdistribusi berbasis T-SQL dan .NET di seluruh instans terkelola umumnya tersedia. Skenario lain, seperti transaksi XA, transaksi terdistribusi antara instans terkelola dan peserta lain dan banyak lagi, didukung dengan DTC untuk Azure SQL Managed Instance, yang tersedia dalam pratinjau publik.

Aktivitas yang Diperluas

Beberapa target khusus Windows untuk Extended Events (XEvents) tidak didukung:

  • Target etw_classic_sync tidak didukung. Simpan file .xel di penyimpanan Azure Blob. Lihat target etw_classic_sync.
  • Target event_file tidak didukung. Simpan file .xel di penyimpanan Azure Blob. Lihat target event_file.

Pustaka eksternal

Pustaka eksternal R dan Python dalam database didukung dalam pratinjau publik terbatas. Lihat Layanan Pembelajaran Mesin di SQL Managed Instance (pratinjau).

FILESTREAM dan FileTable

  • Data FILESTREAM tidak didukung.
  • Database tidak dapat berisi grup file dengan data FILESTREAM.
  • FILETABLE tidak didukung.
  • Tabel tidak dapat memiliki FILESTREAM tipe.
  • Fungsi berikut tidak didukung:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Untuk mengetahui informasi selengkapnya, lihat FILESTREAM dan FileTables.

Pencarian Semantik tidak didukung.

Server yang ditautkan

Server yang ditautkan di SQL Managed Instance mendukung sejumlah target terbatas:

  • Target yang didukung adalah SQL Managed Instance, SQL Database, kumpulan tanpa server dan khusus Azure Synapse SQL, dan instans SQL Server.
  • Target yang tidak didukung adalah file, Analysis Services, dan RDBMS lainnya. Cobalah menggunakan impor CSV asli dari Azure Blob Storage menggunakan BULK INSERT atau OPENROWSET sebagai alternatif untuk impor file, atau muat file menggunakan kumpulan SQL tanpa server di Azure Synapse Analytics.

Operasi:

  • sp_dropserver didukung untuk menonaktifkan server yang ditautkan. Lihat sp_dropserver.
  • Fungsi OPENROWSET ini dapat digunakan untuk menjalankan kueri hanya pada instans SQL Server. Dapat dikelola, secara lokal, atau di mesin virtual. Lihat OPENROWSET.
  • Fungsi OPENDATASOURCE dapat digunakan untuk menjalankan kueri hanya pada instans SQL Server. Dapat dikelola, secara lokal, atau di mesin virtual. Contohnya SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee. SQLNCLIHanya nilai , SQLNCLI11, SQLOLEDB, dan MSOLEDBSQL yang didukung sebagai penyedia. SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 dan SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server atau Microsoft ODBC Driver terbaru untuk SQL Server ke depannya.
  • Server tertaut tidak dapat digunakan untuk membaca file (Excel, CSV) dari berbagi jaringan. Coba gunakan BULK INSERT, OPENROWSET yang membaca file CSV dari Azure Blob Storage, atau server yang ditautkan yang mereferensikan kumpulan SQL tanpa server di Synapse Analytics. Lacak permintaan ini pada item Umpan Balik SQL Managed Instance

Server tertaut di Azure SQL Managed Instance mendukung autentikasi SQL dan autentikasi Microsoft Entra.

PolyBase

Virtualisasi data dengan Azure SQL Managed Instance memungkinkan Anda menjalankan kueri Transact-SQL (T-SQL) terhadap data dari file yang disimpan di Azure Data Lake Storage Gen2 atau Azure Blob Storage, dan menggabungkannya dengan data relasional yang disimpan secara lokal menggunakan gabungan. Format file parquet dan teks berbatas (CSV) didukung secara langsung. Format file JSON secara tidak langsung didukung dengan menentukan format file CSV di mana kueri mengembalikan setiap dokumen sebagai baris terpisah. Dimungkinkan mengurai baris lebih lanjut menggunakan JSON_VALUE dan OPENJSON. Untuk informasi umum tentang PolyBase, lihat PolyBase.

Selanjutnya, CREATE EXTERNAL TABLE AS SELECT (CETAS) memungkinkan Anda mengekspor data dari instans terkelola SQL Anda ke akun penyimpanan eksternal. Anda dapat menggunakan CETAS untuk membuat tabel eksternal di atas file Parquet atau CSV penyimpanan Azure Blob atau Azure Data Lake Storage (ADLS) Gen2. CETAS juga dapat mengekspor, secara paralel, hasil pernyataan T-SQL SELECT ke dalam tabel eksternal yang dibuat.

Replikasi

  • Jenis replikasi Rekam Jepret dan Dua Arah didukung. Replikasi penggabungan, replikasi peer-to-peer, dan langganan yang dapat diperbarui tidak didukung.
  • Replikasi Transaksional tersedia untuk SQL Managed Instance dengan beberapa batasan:
    • Semua jenis peserta replikasi (Penerbit, Distributor, Pelanggan Penarikan, dan Pelanggan Pendorongan) dapat ditempatkan pada SQL Managed Instance, tetapi penerbit dan distributor harus berada di cloud atau lokal.
    • SQL Managed Instance dapat berkomunikasi dengan versi terbaru SQL Server. Untuk informasi selengkapnya, lihat matriks versi yang didukung.
    • Replikasi Transaksional memiliki beberapa persyaratan jaringan tambahan.

Untuk mengetahui informasi selengkapnya tentang mengonfigurasi replikasi transaksional, lihat tutorial berikut:

Pernyataan RESTORE

  • Sintaks yang didukung:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • Sintaksis yang tidak didukung:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • Sumber:
    • FROM URL (Penyimpanan Azure Blob) adalah satu-satunya opsi yang didukung.
    • FROM DISK/TAPE/perangkat cadangan tidak didukung.
    • Kumpulan cadangan tidak didukung.
  • Opsi WITH tidak didukung. Upaya pemulihan termasuk WITH seperti DIFFERENTIAL, STATS, REPLACE, dan sebagainya, akan gagal.

Operasi pemulihan database tidak sinkron dan dapat diulang di Azure SQL Managed Instance. Anda mungkin mendapatkan kesalahan dalam SSMS jika koneksi gagal atau waktu habis kedaluwarsa. Azure SQL Managed Instance terus mencoba memulihkan database di latar belakang, dan Anda dapat melacak kemajuan proses pemulihan dengan menggunakan tampilan manajemen dinamis sys.dm_exec_requests dan sys.dm_operation_status .

Opsi database berikut ini diatur atau ditimpa dan tidak dapat diubah nanti:

  • NEW_BROKER jika broker tidak diaktifkan dalam file .bak.
  • ENABLE_BROKER jika broker tidak diaktifkan dalam file .bak.
  • AUTO_CLOSE=OFF jika database dalam file .bak memiliki AUTO_CLOSE=ON.
  • RECOVERY FULL jika database dalam file .bak memiliki SIMPLE atau BULK_LOGGED model pemulihan.
  • Grup-file yang dioptimalkan untuk memori ditambahkan dan disebut XTP jika tidak ada dalam .bak file.
  • Grup file yang dioptimalkan untuk memori yang ada akan diganti namanya menjadi XTP.
  • Opsi SINGLE_USER dan RESTRICTED_USER dikonversi menjadi MULTI_USER.

Batasan:

  • Cadangan database yang rusak mungkin dipulihkan tergantung pada jenis kerusakan, tetapi pencadangan otomatis tidak diambil sampai kerusakan diperbaiki. Pastikan Anda menjalankan DBCC CHECKDB pada SQL Managed Instance sumber dan menggunakan cadangan WITH CHECKSUM untuk mencegah masalah ini.
  • .BAK Pemulihan file database yang berisi batasan apa pun yang dijelaskan dalam dokumen ini (misalnya, FILESTREAM atau FILETABLE objek) tidak dapat dipulihkan pada SQL Managed Instance.
  • File .BAK yang memuat beberapa kumpulan cadangan tidak dapat dipulihkan.
  • File .BAK yang memuat beberapa file log tidak dapat dipulihkan.
  • Cadangan yang berisi database yang lebih besar dari 8 TB, objek OLTP aktif dalam memori, atau jumlah file yang akan melebihi 280 file per instans tidak dapat dipulihkan pada instans Tujuan Umum.
  • Cadangan yang berisi database yang lebih besar dari objek OLTP 4 TB atau dalam memori dengan ukuran total yang lebih besar dari ukuran yang dijelaskan dalam batas sumber daya tidak dapat dipulihkan pada instans Business Critical. Untuk mengetahui informasi tentang pernyataan pemulihan, lihat Pernyataan RESTORE.

Penting

Batasan yang sama berlaku untuk operasi pemulihan point-in-time bawaan. Sebagai contoh, database Tujuan Umum yang lebih besar dari 4 TB tidak dapat dipulihkan pada instans Kritis Bisnis. Database Kritis Bisnis dengan file OLTP dalam memori atau lebih dari 280 file tidak dapat dipulihkan pada instans Tujuan Umum.

Service Broker

Pertukaran pesan broker layanan lintas instans hanya didukung antara Azure SQL Managed Instance:

  • CREATE ROUTE: Anda tidak dapat menggunakan CREATE ROUTE dengan ADDRESS selain LOCAL atau nama DNS SQL Managed Instance lainnya. Port selalu 4022.
  • ALTER ROUTE: Anda tidak dapat menggunakan ALTER ROUTE dengan ADDRESS selain LOCAL atau nama DNS SQL Managed Instance lainnya. Port selalu 4022.

Keamanan transportasi didukung, keamanan dialog tidak:

  • CREATE REMOTE SERVICE BINDINGtidak didukung.

Broker layanan diaktifkan secara default dan tidak dapat dinonaktifkan. Opsi ALTER DATABASE berikut ini tidak didukung:

  • ENABLE_BROKER
  • DISABLE_BROKER

Prosedur, fungsi, dan pemicu yang tersimpan

  • NATIVE_COMPILATION tidak didukung di tingkat Tujuan Umum.
  • Opsi sp_configure berikut ini tidak didukung:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • Opsi sp_configure berikut diabaikan dan tidak berpengaruh:
    • Ole Automation Procedures
  • sp_execute_external_scriptshanya didukung untuk Layanan Pembelajaran Mesin untuk SQL MI, jika sp_execute_external_scripts tidak, tidak didukung untuk SQL Managed Instance. Lihat sp_execute_external_scripts.
  • xp_cmdshell tidak didukung. Lihat xp_cmdshell.
  • Extended stored procedures tidak didukung, dan ini termasuk sp_addextendedproc dan sp_dropextendedproc. Fungsionalitas ini tidak akan didukung karena berada di jalur penghentian untuk SQL Server. Untuk informasi selengkapnya, lihat Prosedur Tersimpan yang Diperluas.
  • sp_attach_db, sp_attach_single_file_db, dan sp_detach_db tidak didukung. Lihat sp_attach_db, sp_attach_single_file_db, dan sp_detach_db.

Fungsi dan variabel sistem

Variabel, fungsi, dan tampilan berikut menampilkan hasil yang berbeda:

  • SERVERPROPERTY('EngineEdition') menampilkan nilai 8. Properti ini secara unik mengidentifikasi SQL Managed Instance. Lihat SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') menampilkan NULL karena konsep instans seperti yang ada untuk SQL Server tidak berlaku untuk SQL Managed Instance. Lihat SERVERPROPERTY('InstanceName').
  • @@SERVERNAME menampilkan nama DNS lengkap yang "dapat dihubungkan", misalnya, my-managed-instance.wcus17662feb9ce98.database.windows.net. Lihat @@SERVERNAME.
  • SYS.SERVERS menampilkan nama "connectable" DNS lengkap, seperti myinstance.domain.database.windows.net untuk properti "name" dan "data_source." Lihat SYS.SERVERS.
  • @@SERVICENAME menampilkan NULL karena konsep layanan seperti yang ada untuk SQL Server tidak berlaku untuk SQL Managed Instance. Lihat @@SERVICENAME.
  • SUSER_ID tidak didukung. Ini mengembalikan NULL jika login Microsoft Entra tidak ada di sys.syslogins. Lihat SUSER_ID.
  • SUSER_SID tidak didukung. Data yang salah ditampilkan, yang merupakan masalah umum sementara. Lihat SUSER_ID.

Batasan lingkungan

Subnet

  • Anda tidak dapat menempatkan sumber daya lain (misalnya komputer virtual) di subnet tempat Anda telah menyebarkan SQL Managed Instance Anda. Sebarkan sumber daya ini menggunakan subnet yang berbeda.
  • Subnet harus memiliki alamat IP yang tersedia dalam jumlah yang memadai. Minimal memiliki setidaknya 32 alamat IP di subnet.
  • Jumlah vCores dan jenis instans yang dapat Anda sebarkan di wilayah memiliki beberapa batasan dan pembatasan.
  • Ada konfigurasi jaringan yang harus diterapkan pada subnet.

Jaringan virtual

  • Jaringan virtual dapat disebarkan menggunakan Model Sumber Daya. Model Klasik tidak mendukung penyebaran jaringan virtual (VNet).
  • Setelah instans terkelola SQL dibuat, memindahkan instans terkelola SQL atau VNet ke grup sumber daya atau langganan lain tidak didukung.
  • Untuk instans terkelola SQL yang dihosting di kluster virtual yang dibuat sebelum 22 September 2020, peering global VNet tidak didukung. Anda dapat tersambung ke sumber daya ini melalui ExpressRoute atau VNet ke VNet melalui VNet Gateway.

Grup failover

Database sistem tidak direplikasi ke instans sekunder dalam grup failover. Oleh karena itu, skenario yang bergantung pada objek dari database sistem tidak mungkin pada instans sekunder kecuali objek dibuat secara manual pada sekunder.

tempdb

  • Ukuran file maksimum dari database sistem tempdb tidak boleh lebih besar dari 24 GB per core pada tingkat Tujuan Umum. Ukuran tempdb maksimum pada tingkat Kritis Bisnis dibatasi oleh ukuran penyimpanan SQL Managed Instance. Ukuran file log tempdb dibatasi hingga 120 GB pada tingkat Tujuan Umum. Beberapa kueri mungkin menampilkan kesalahan jika membutuhkan lebih dari 24 GB per inti di tempdb atau jika menghasilkan lebih dari 120 GB data log.
  • tempdb selalu dibagi menjadi 12 file data: 1 utama, juga disebut master, file data, dan 11 file data non-primer. Struktur file tidak dapat diubah dan file baru tidak dapat ditambahkan ke tempdb.
  • Metadata TempDB yang dioptimalkan memori, fitur database dalam memori SQL Server 2019 baru, tidak didukung.
  • Objek yang dibuat dalam model database tidak dapat dibuat tempdb secara otomatis setelah menghidupkan ulang atau failover karena tempdb tidak mendapatkan daftar objek awalnya dari model database. Anda harus membuat objek di tempdb secara manual setelah setiap restart atau failover.

msdb

Skema berikut dalam database sistem msdb di SQL Managed Instance harus dimiliki oleh masing-masing peran yang telah ditentukan sebelumnya:

  • Peran umum
    • TargetServersRole
  • Peran database tetap
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  • Peran DatabaseMail:
    • DatabaseMailUserRole
  • Peran layanan integrasi:
    • db_ssisadmin
    • db_ssisltduser
    • db_ssisoperator

Penting

Mengubah nama peran, nama skema, dan pemilik skema yang telah ditentukan sebelumnya oleh pelanggan akan memengaruhi pengoperasian normal layanan. Setiap perubahan yang dilakukan pada ini akan dikembalikan ke nilai yang telah ditentukan sebelumnya segera setelah terdeteksi, atau paling lambat pada pembaruan layanan berikutnya untuk memastikan operasi layanan normal.

Log kesalahan

SQL Managed Instance menempatkan informasi verbose dalam log kesalahan. Ada banyak peristiwa sistem internal yang masuk ke dalam log kesalahan. Gunakan prosedur kustom untuk membaca log kesalahan yang memfilter beberapa entri yang tidak relevan. Untuk mengetahui informasi selengkapnya, lihat SQL Managed Instance – sp_readmierrorlog atau ekstensi SQL Managed Instance (pratinjau) untuk Azure Data Studio.

Mengubah jumlah log kesalahan yang dipertahankan tidak didukung.