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.
Ada beberapa batasan PaaS yang diperkenalkan dalam SQL Managed Instance dan beberapa perubahan perilaku dibandingkan dengan SQL Server. Perbedaan dibagi menjadi kategori berikut:
- Ketersediaan mencakup perbedaan dalam Grup Ketersediaan AlwaysOn dan cadangan.
- Keamanan mencakup perbedaan dalam audit, sertifikat, kredensial, penyedia kriptografi, info masuk dan pengguna, dan kunci layanan dan kunci master layanan.
- Konfigurasi mencakup perbedaan dalam ekstensi kumpulan buffer, kolase, tingkat kompatibilitas, pencerminan database, opsi database, Server SQL Server Agent, dan opsi tabel.
- Fungsionalitas termasuk BULK INSERT/OPENROWSET, CLR, DBCC, transaksi terdistribusi, peristiwa yang diperluas, pustaka eksternal, FILESTREAM dan FileTable, Pencarian Semantik teks lengkap, server tertaut, PolyBase, Replikasi, RESTORE, Service Broker, prosedur tersimpan, fungsi, dan pemicu.
- Pengaturan lingkungan seperti konfigurasi VNets dan subnet.
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:
- MEMBUAT TITIK AKHIR ... FOR DATABASE_MIRRORING
- MEMBUAT GRUP KETERSEDIAAN
- MENGUBAH GRUP KETERSEDIAAN
- MENGHAPUS GRUP KETERSEDIAAN
- Klausul MENGATUR HADR dari pernyataan MENGUBAH DATABASE
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.
- Hanya
- Sebagian besar opsi
WITH
umum didukung.COPY_ONLY
adalah wajib.FILE_SNAPSHOT
danCREDENTIAL
tidak didukung.- Opsi pita:
REWIND
,NOREWIND
,UNLOAD
, danNOUNLOAD
tidak didukung. - Opsi khusus log:
NORECOVERY
,STANDBY
, danNO_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 keURL
. - 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.- Mencadangkan ke
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
dariFILE
/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:
CREATE CRYPTOGRAPHIC PROVIDER
tidak didukung. Lihat CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
tidak didukung. Lihat ALTER CRYPTOGRAPHIC PROVIDER.
Login dan pengguna
Info masuk SQL yang dibuat dengan menggunakan
FROM CERTIFICATE
,FROM ASYMMETRIC KEY
, danFROM 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 menentukanFROM 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 dimaster
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 melaluiEXEC 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 sepertiSQL_USER
dalamsys.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.
- Dalam konfigurasi ini, semua pengguna Microsoft Entra dibuat sebagai prinsipal database SQL Server (pengguna) tanpa masuk. Jenis pengguna adalah
- Konfigurasi berikut didukung menggunakan file bacpac database:
Hanya login utama tingkat server, yang dibuat oleh proses provisi SQL Managed Instance, anggota peran server, seperti
securityadmin
atausysadmin
, atau login lain dengan izin UBAH LOGIN APA PUN di tingkat server dapat membuat prinsipal server Microsoft Entra (login) dalammaster
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:
- 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. - 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. - 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. - 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.
- Jika akun Microsoft Entra langsung dipetakan ke login Microsoft Entra, yang ada sebagai
Kunci layanan dan kunci master layanan
- Cadangan kunci master tidak didukung (dikelola oleh layanan SQL Database).
- Pemulihan kunci master tidak didukung (dikelola oleh layanan SQL Database).
- Cadangan kunci master layanan tidak didukung (dikelola oleh layanan SQL Database).
- Pemulihan kunci master layanan tidak didukung (dikelola oleh layanan SQL Database).
Konfigurasi
Ekstensi kumpulan buffer
- Ekstensi kumpulan buffer tidak didukung.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
tidak didukung. Lihat ALTER SERVER CONFIGURATION.
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
danSET 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
berisiFILESTREAM
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
setelahCREATE 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')
. HapusFILENAME
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:
- FILESTREAM
- FILETABLE
- TABEL EKSTERNAL (kecuali PolyBase)
- MEMORY_OPTIMIZED (hanya tidak didukung dalam tingkat Tujuan Umum)
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 perintahBULK INSERT
saat Anda mengimpor file dari penyimpanan Azure Blob. Lihat BULK INSERT.DATASOURCE
diperlukan dalam fungsiOPENROWSET
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:
- Hanya
CREATE ASSEMBLY FROM BINARY
yang didukung. Lihat CREATE ASSEMBLY FROM BINARY. CREATE ASSEMBLY FROM FILE
tidak didukung. Lihat CREATE ASSEMBLY FROM BINARY.ALTER ASSEMBLY
tidak dapat mereferensikan file. Lihat CREATE ASSEMBLY.
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 teks penuh
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
atauOPENROWSET
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
.SQLNCLI
Hanya nilai ,SQLNCLI11
,SQLOLEDB
, danMSOLEDBSQL
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:
- Replikasi antara penerbit SQL MI dan pelanggan SQL MI
- Replikasi antara penerbit SQL MI, distributor SQL MI, dan pelanggan SQL Server
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 termasukWITH
sepertiDIFFERENTIAL
,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 memilikiAUTO_CLOSE=ON
.RECOVERY FULL
jika database dalam file .bak memilikiSIMPLE
atauBULK_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
danRESTRICTED_USER
dikonversi menjadiMULTI_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 cadanganWITH CHECKSUM
untuk mencegah masalah ini. .BAK
Pemulihan file database yang berisi batasan apa pun yang dijelaskan dalam dokumen ini (misalnya,FILESTREAM
atauFILETABLE
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 menggunakanCREATE ROUTE
denganADDRESS
selainLOCAL
atau nama DNS SQL Managed Instance lainnya. Port selalu 4022.ALTER ROUTE
: Anda tidak dapat menggunakanALTER ROUTE
denganADDRESS
selainLOCAL
atau nama DNS SQL Managed Instance lainnya. Port selalu 4022.
Keamanan transportasi didukung, keamanan dialog tidak:
CREATE REMOTE SERVICE BINDING
tidak 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_scripts
hanya didukung untuk Layanan Pembelajaran Mesin untuk SQL MI, jikasp_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 termasuksp_addextendedproc
dansp_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
, dansp_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, sepertimyinstance.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 disys.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. Ukurantempdb
maksimum pada tingkat Kritis Bisnis dibatasi oleh ukuran penyimpanan SQL Managed Instance. Ukuran file logtempdb
dibatasi hingga 120 GB pada tingkat Tujuan Umum. Beberapa kueri mungkin menampilkan kesalahan jika membutuhkan lebih dari 24 GB per inti ditempdb
atau jika menghasilkan lebih dari 120 GB data log. tempdb
selalu dibagi menjadi 12 file data: 1 utama, juga disebutmaster
, file data, dan 11 file data non-primer. Struktur file tidak dapat diubah dan file baru tidak dapat ditambahkan ketempdb
.- Metadata TempDB yang dioptimalkan memori, fitur database dalam memori SQL Server 2019 baru, tidak didukung.
- Objek yang dibuat dalam
model
database tidak dapat dibuattempdb
secara otomatis setelah menghidupkan ulang atau failover karenatempdb
tidak mendapatkan daftar objek awalnya darimodel
database. Anda harus membuat objek ditempdb
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.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk