SQL Server & Azure SQL 受控執行個體之間的 SQL 差異

適用於: Azure SQL 受控執行個體

本文將摘要說明 Azure SQL 受控執行個體和 SQL Server 之間的語法和行為差異。

SQL受控執行個體提供與 SQL Server database engine 的高度相容性,而且 SQL 受控執行個體中支援大部分的功能。

從 SQL Server 輕鬆遷移

SQL 受控執行個體引進一些 PaaS 限制,而某些行為變更與 SQL Server 相比。 差異分為下列幾個類別:

這些功能大多都是架構條件約束,代表服務功能。

在 SQL 受控執行個體中發現的暫時性已知問題,將在未來的「新功能」中說明。

可用性

Always On 可用性群組

高可用性內建于 SQL 受控執行個體,且無法由使用者控制。 不支援下列語句:

備份

SQL受控執行個體具有自動備份,因此使用者可以建立完整的資料庫 COPY_ONLY 備份。 不支援差異、記錄和檔案快照集備份。

  • 使用 SQL 受控執行個體,您可以將實例資料庫只備份到 Azure Blob 儲存體帳戶:
    • 只支援 BACKUP TO URL
    • FILETAPE 和備份裝置不受支援。
  • 支援大部分的一般 WITH 選項。
    • COPY_ONLY 是必要的。
    • 不支援 FILE_SNAPSHOT
    • 磁帶選項: REWINDNOREWINDUNLOADNOUNLOAD 不受支援。
    • 記錄檔專用選項: NORECOVERYSTANDBYNO_TRUNCATE 不受支援。

限制:

  • 使用 SQL 受控執行個體,您可以將實例資料庫備份至最多有32個等量的備份,而如果使用備份壓縮,則足以容納最多 4 TB 的資料庫。

  • 您無法 BACKUP DATABASE ... WITH COPY_ONLY 在以服務管理的透明資料加密 (TDE) 加密的資料庫上執行。 服務管理的 TDE 會強制使用內部 TDE 金鑰來加密備份。 無法匯出金鑰,因此您無法還原備份。 使用自動備份和時間點還原,或改用 客戶管理的 (BYOK) TDE 。 您也可以停用資料庫的加密。

  • 受控執行個體上所建立的原生備份無法還原至 SQL Server。 這是因為相較于任何版本的 SQL Server,受控執行個體會有較高的內部資料庫版本。

  • 若要在 Azure 儲存體中備份或還原資料庫,您必須建立共用存取簽章 (SAS) 可授與您 Azure 儲存體資源之限制存取權限的 URI,以深入瞭解。 不支援針對這些案例使用存取金鑰。

  • 使用 SQL 中的命令受控執行個體的備份等量大小上限 BACKUP 為 195 GB,這是最大的 blob 大小。 在備份命令中增加等量磁碟區的數目,以減少個別的等量磁碟區大小並維持在這項限制內。

    提示

    若要解決這項限制,當您從內部部署環境或虛擬機器中的 SQL Server 備份資料庫時,您可以:

    • 備份至, DISK 而不是備份至 URL
    • Upload 備份檔案儲存至 Blob 儲存體。
    • 還原至 SQL 受控執行個體。

    RestoreSQL 受控執行個體中的命令在備份檔案中支援較大的 blob 大小,因為已上傳備份檔案的儲存體會使用不同的 blob 類型。

如需使用 T-SQL 進行備份的相關資訊,請參閱備份

安全性

稽核

Microsoft Azure SQL 和 SQL Server 中的審核之間的主要差異如下:

  • 在 SQL 受控執行個體中,會在伺服器層級進行審核。 .xel記錄檔會儲存在 Azure Blob 儲存體中。
  • 使用 Azure SQL Database,可在資料庫層級進行審核。 .xel記錄檔會儲存在 Azure Blob 儲存體中。
  • 在 SQL Server、內部部署或虛擬機器中,會在伺服器層級進行審核。 事件會儲存在檔案系統或 Windows 事件記錄檔中。

SQL 受控執行個體中的 XEvent 審核支援 Azure Blob 儲存體目標。 不支援檔案和 Windows 記錄檔。

向 Azure Blob 儲存體進行稽核的 CREATE AUDIT 語法有一個主要差異:

  • TO URL您可以使用新的語法,來指定放置檔案的 Azure Blob 儲存體容器的 URL .xel
  • TO FILE因為 SQL 受控執行個體無法存取 Windows 檔案共用,所以不支援語法。

如需詳細資訊,請參閱

憑證

SQL受控執行個體無法存取檔案共用和 Windows 資料夾,因此適用下列限制:

  • CREATE FROM / BACKUP TO 憑證不支援此檔案。
  • CREATE / BACKUP 不支援來自的憑證 FILE / ASSEMBLY 。 無法使用私密金鑰檔案。

請參閱 CREATE CERTIFICATEBACKUP CERTIFICATE

因應 措施:不 是建立憑證的備份並還原備份、取得憑證二進位內容和私密金鑰、將其儲存為 .sql 檔案,以及從二進位檔建立

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

認證

僅支援Azure Key Vault 和 SHARED ACCESS SIGNATURE 身分識別。 不支援 Windows 使用者。

請參閱 CREATE CREDENTIALALTER CREDENTIAL

密碼編譯提供者

SQL受控執行個體無法存取檔案,所以無法建立密碼編譯提供者:

登入和使用者

  • FROM CERTIFICATE支援使用、 FROM ASYMMETRIC KEY 和所建立的 SQL 登入 FROM SID 。 請參閱 CREATE LOGIN

  • Azure Active Directory (Azure AD) 伺服器主體 (使用create LOGIN語法建立的登入,或從登入建立使用者 [) login]語法。 這些登入是在伺服器層級建立。

    SQL受控執行個體支援使用語法 Azure AD 資料庫主體 CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER 。 這項功能也稱為 Azure AD 自主資料庫使用者。

  • 不支援使用語法建立的 Windows 登入 CREATE LOGIN ... FROM WINDOWS 。 使用 Azure Active Directory 登入和使用者。

  • 建立實例的 Azure AD 使用者具有不受限制的系統管理員許可權

  • 您可以使用語法來建立非系統管理員 Azure AD 資料庫層級的使用者 CREATE USER ... FROM EXTERNAL PROVIDER 。 請參閱 建立使用者 .。。從外部提供者

  • Azure AD 伺服器主體 (登入) 只支援一個 SQL 受控執行個體中 SQL 的功能。 需要跨實例互動的功能,不論它們是否位於相同的 Azure AD 租使用者或不同的租使用者中,都不支援 Azure AD 的使用者。 這類功能的範例如下:

    • SQL 異動複寫。
    • 連結伺服器。
  • 不支援將對應至 Azure AD 群組的 Azure AD 登入設定為資料庫擁有者。

  • 支援使用其他 Azure AD 主體模擬 Azure AD 伺服器層級主體,例如EXECUTE as子句。 EXECUTE AS 限制如下:

    • 當名稱與登入名稱不同時,不支援 Azure AD 使用者的 EXECUTE AS USER。 例如,當使用者從 LOGIN [] 的 CREATE USER [myAadUser] 語法建立時,就會 john@contoso.com 透過 EXEC (user = myAadUser)嘗試模擬。 當您從 Azure AD 伺服器主體 (登入) 建立 使用者 時,請將 user_name 指定為與 入相同的 login_name。

    • 只有屬於角色的 SQL Server 層級主體 (登入) sysadmin 可以執行以 Azure AD 主體為目標的下列作業:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • 若要使用 EXECUTE AS 語句來模擬使用者,使用者必須直接對應到 Azure AD 伺服器主體 (登入) 。 如果使用者是對應到 Azure AD 伺服器主體 Azure AD 群組的成員,即使呼叫端具有指定使用者名稱的模擬許可權,也無法以 EXECUTE AS 語句進行模擬。

  • 使用SSMS v 18.4 或更新版本SQLPackage.exe的 SQL 受控執行個體中的 Azure AD 使用者,支援使用 bacpac 檔案進行資料庫匯出/匯入。

    • 下列是使用資料庫 bacpac 檔案支援的設定:
      • 在相同 Azure AD 網域內的不同管理實例之間匯出/匯入資料庫。
      • 從 SQL 受控執行個體中匯出資料庫,並匯入至相同 Azure AD 網域內的 SQL Database。
      • 從 SQL Database 匯出資料庫,並匯入至相同 Azure AD 網域內的 SQL 受控執行個體。
      • 從 SQL 受控執行個體中匯出資料庫,並匯入至 SQL Server (2012 版或更新版本的) 。
        • 在此設定中,系統會將所有 Azure AD 使用者建立為 SQL Server 資料庫主體, (使用者) 沒有登入。 使用者的類型會列為 SQLSQL_USER 在 sys.database_principals) 中會顯示為。 其許可權和角色會保留在 SQL Server 資料庫中繼資料中,並且可用於模擬。 不過,它們無法用來存取並使用其認證登入 SQL Server。
  • 只有伺服器層級主體登入(由 SQL 受控執行個體布建程式所建立)、伺服器角色的成員(例如 securityadmin 或), sysadmin 或在伺服器層級具有 ALTER ANY login 許可權的其他登入,才可以在 master 資料庫中,為) SQL 建立 Azure AD 的伺服器主體 (登入受控執行個體。

  • 如果登入是 SQL 主體,只有屬於 sysadmin 角色一部分的登入可以使用 create 命令來為 Azure AD 帳戶建立登入。

  • Azure AD 的登入必須是用於 Azure SQL 受控執行個體的相同目錄中 Azure AD 的成員。

  • 從 SQL Server Management Studio 18.0 preview 5 開始,物件總管會顯示 Azure AD 伺服器主體 (登入) 。

  • 可允許 Azure AD 伺服器主體 (登入) 與 Azure AD 系統管理員帳戶重疊。 當您解析主體並將許可權套用至 SQL 受控執行個體時,Azure AD 伺服器主體 (登入) 優先于 Azure AD 管理員。

  • 在驗證期間,會套用下列順序來解析驗證主體:

    1. 如果 Azure AD 帳戶以直接對應至 Azure AD 伺服器主體 (登入) (存在於 sys.server_principals 中的類型 "E"),請授與存取權,並將 Azure AD 伺服器主體的許可權授與 (登入) 。
    2. 如果 Azure AD 帳戶是對應至 Azure AD 伺服器主體的 Azure AD 群組成員 (登入) (存在於 sys.server_principals 中的類型 "X"),請授與存取權,並套用 Azure AD 群組登入的許可權。
    3. 如果 Azure AD 帳戶是特殊的入口網站設定 Azure AD 系統管理員 SQL 受控執行個體(不存在 SQL 受控執行個體系統檢視中),請為 Azure AD SQL 受控執行個體 () 舊版模式,套用特殊固定許可權。
    4. 如果 Azure AD 帳戶以直接對應至資料庫中的 Azure AD 使用者(存在於 sys.database_principals 中)為 "E" 類型的資料庫,則授與存取權並套用 Azure AD 資料庫使用者的許可權。
    5. 如果 Azure AD 帳戶是 Azure AD 群組的成員,而該群組是對應至資料庫中 Azure AD 使用者(存在於 sys.database_principals 中的類型 "X"),請授與存取權,並套用 Azure AD 群組登入的許可權。
    6. 如果有 Azure AD 的登入對應至 Azure AD 使用者帳戶或 Azure AD 群組帳戶,而此帳戶解析為驗證的使用者,則會套用此 Azure AD 登入的擁有權限。

服務金鑰和服務主要金鑰

組態

緩衝集區延伸

定序

預設執行個體定序為 SQL_Latin1_General_CP1_CI_AS,而且可指定為建立參數。 請參閱定序

相容性層級

  • 支援的相容性層級為100、110、120、130、140和150。
  • 不支援低於 100 的相容性層級。
  • 新資料庫的預設相容性層級為 140。 若為已還原的資料庫,相容性層級會維持不變(如果它是100和更新版本)。

請參閱 ALTER DATABASE 相容性層級

資料庫鏡像

不支援資料庫鏡像。

  • 不支援 ALTER DATABASE SET PARTNERSET WITNESS 選項。
  • 不支援 CREATE ENDPOINT … FOR DATABASE_MIRRORING

如需詳細資訊,請參閱 ALTER DATABASE SET PARTNER and SET WITNESSCREATE ENDPOINT … FOR DATABASE_MIRRORING

資料庫選項

  • 不支援多個記錄檔。
  • 「一般用途」服務層級中不支援記憶體內部物件。
  • 每個一般用途實例都有280個檔案的限制,這表示每個資料庫最多可有280個檔案。 一般用途層中的資料和記錄檔都會計入這項限制。 商務關鍵性層支援每個資料庫32767個檔案。
  • 資料庫不能包含包含 filestream 資料的檔案群組。 如果 .bak 包含資料,Restore 會失敗 FILESTREAM
  • 每個檔案都位於 Azure Blob 儲存體中。 每個檔案的 IO 和輸送量均取決於每個個別檔案的大小。

CREATE DATABASE 陳述式

下列限制適用于 CREATE DATABASE

  • 無法定義檔案和檔案群組。

  • CONTAINMENT不支援此選項。

  • WITH 不支援選項。

    提示

    因應措施是使用 ALTER DATABASE after CREATE DATABASE 來設定資料庫選項,以新增檔案或設定內含專案。

  • FOR ATTACH不支援此選項。

  • AS SNAPSHOT OF不支援此選項。

如需詳細資訊,請參閱 CREATE DATABASE

ALTER DATABASE 陳述式

有些檔案屬性無法設定或變更:

  • 無法在 t SQL 語句中指定檔案路徑 ALTER DATABASE ADD FILE (FILENAME='path')FILENAME從腳本中移除,因為 SQL 受控執行個體會自動放置這些檔案。
  • 無法使用語句來變更檔案名 ALTER DATABASE

以下為預設選項且無法變更:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

下列選項無法修改:

  • 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

某些 ALTER DATABASE 語句 (例如, 設定 內含專案) 可能暫時失敗,例如在自動資料庫備份期間,或在建立資料庫之後。 在此情況下, ALTER DATABASE 應該重試語句。 如需相關錯誤訊息的詳細資訊,請參閱「 備註」一節

如需詳細資訊,請參閱 ALTER DATABASE

SQL Server Agent

  • SQL 受控執行個體中目前不支援啟用和停用 SQL Server Agent。 SQL 代理程式一律會處於正在執行的狀態。
  • 不支援以閒置 CPU 為基礎的作業排程觸發程式。
  • SQL Server代理程式設定是唯讀的。 sp_set_agent_propertiesSQL 受控執行個體不支援此程式。
  • 工作
    • 支援 T-SQL 作業步驟。
    • 支援下列複寫作業:
      • 交易記錄讀取器
      • 快照式
      • 散發者
    • 支援 SSIS 作業步驟。
    • 目前不支援其他類型的作業步驟:
      • 不支援合併複寫作業步驟。
      • 不支援佇列讀取器。
      • 尚未支援命令 shell。
    • SQL受控執行個體無法存取外部資源,例如透過 robocopy 的網路共用。
    • SQL Server不支援 Analysis Services。
  • 部分支援通知。
  • 雖然需要您設定 Database Mail 設定檔,但仍支援電子郵件通知。 SQL Server代理程式只能使用一個 Database Mail 設定檔,而且必須呼叫 AzureManagedInstance_dbmail_profile
    • 不支援呼叫器。
    • 不支援 NetSend。
    • 尚不支援警示。
    • 不支援 proxy。
  • 不支援 EventLog。
  • 使用者必須直接對應到 Azure AD 伺服器主體 (登入) ,才能建立、修改或執行 SQL Agent 作業。 例如,如果使用者屬於具有建立、修改或執行 SQL Agent 作業之許可權的 Azure AD 群組,則這些使用者將無法有效執行這些動作。 這是因為受控執行個體模擬和 執行為限制
  • 主要/目標 (MSX/TSX) 作業的多重伺服器管理功能不受支援。

如需有關 SQL Server Agent 的資訊,請參閱 SQL Server Agent

資料表

不支援下列資料表類型:

如需有關如何建立和改變數據表的詳細資訊,請參閱 CREATE TABLEalter TABLE

功能

Bulk insert/OPENROWSET

SQL受控執行個體無法存取檔案共用和 Windows 資料夾,因此必須從 Azure Blob 儲存體匯入檔案:

  • DATASOURCE``BULK INSERT當您從 Azure Blob 儲存體匯入檔案時,命令中必須要有。 請參閱大量插入
  • DATASOURCE``OPENROWSET當您從 Azure Blob 儲存體讀取檔案的內容時,此函式中需要有。 請參閱 OPENROWSET
  • OPENROWSET可以用來從 Azure SQL Database、Azure SQL 受控執行個體或 SQL Server 實例讀取資料。 不支援其他來源,例如 Oracle 資料庫或 Excel 檔。

CLR

SQL 受控執行個體無法存取檔案共用和 Windows 資料夾,因此適用下列限制:

Database Mail (db_mail)

  • sp_send_dbmail 無法使用參數傳送附件 @file_attachments 。 此程式無法存取本機檔案系統和外部共用或 Azure Blob 儲存體。
  • 查看與參數和驗證相關的已知問題 @query

DBCC

SQL 受控執行個體不支援在 SQL Server 中啟用的未記載 DBCC 語句。

  • 僅支援有限數目的全域追蹤旗標。 不支援工作階段層級 Trace flags 。 請參閱 追蹤旗標
  • DBCC TRACEOFFdbcc TRACEON 使用有限數目的全域追蹤旗標。
  • 無法使用具有選項 REPAIR_ALLOW_DATA_LOSS、REPAIR_FAST 和 REPAIR_REBUILD 的DBCC CHECKDB ,因為無法在模式中設定資料庫, SINGLE_USER 請參閱ALTER database 差異。 潛在的資料庫損毀是由 Azure 支援團隊處理。 如果有任何資料庫損毀的指示,請 Azure 支援聯絡。

分散式交易

分散式交易的部分支援目前處於公開預覽狀態。 下列情況下支援分散式交易 (必須符合下列條件) :

  • 所有交易參與者都是屬於伺服器信任群組一部分的 Azure SQL 受控實例。
  • 從 .NET (TransactionScope 類別) 或 SQL Transact-sql 起始交易。

azure SQL 受控執行個體目前不支援在內部部署或 Azure 虛擬機器中受到 MSDTC 定期支援的其他案例。

擴充的事件

不支援擴充事件 (XEvent) 的某些 Windows 特定目標:

  • etw_classic_sync不支援目標。 將檔案儲存 .xel 在 Azure Blob 儲存體中。 請參閱 etw_classic_sync 目標
  • event_file不支援目標。 將檔案儲存 .xel 在 Azure Blob 儲存體中。 請參閱 event_file 目標

外部程式庫

有限的公開預覽支援資料庫內 R 和 Python 外部程式庫。 請參閱Azure 中的機器學習服務 SQL 受控執行個體 (preview)

Filestream 與 FileTable

  • 不支援 Filestream 資料。
  • 資料庫不能包含具有資料的檔案群組 FILESTREAM
  • 不支援 FILETABLE
  • 資料表不能有 FILESTREAM 類型
  • 以下是不支援的函式:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

如需詳細資訊,請參閱 FILESTREAMFiletable

不支援語意搜尋

連結的伺服器

SQL 受控執行個體中連結的伺服器支援數量有限的目標:

  • 支援的目標有 SQL 受控執行個體、SQL Database、Azure Synapse SQL無伺服器和專用集區,以及 SQL Server 實例。
  • 可以在受控實例之間進行分散式可寫入交易。 如需詳細資訊,請參閱 分散式交易。 但是,不支援 MS DTC。
  • 不支援的目標為檔案、Analysis Services 和其他 RDBMS。 嘗試使用 Azure Blob 儲存體中的原生 CSV 匯入,或使用檔案匯 BULK INSERT OPENROWSET 入的替代方式,或使用Azure Synapse Analytics 的無伺服器 SQL 集區來載入檔案。

作業:

  • 只有受管理的實例支援跨實例寫入交易。
  • 支援使用 sp_dropserver 卸除連結的伺服器。 請參閱 sp_dropserver
  • OPENROWSET函數只能用來在 SQL Server 實例上執行查詢。 它們可以是受控、內部部署或虛擬機器。 請參閱 OPENROWSET
  • OPENDATASOURCE函數只能用來在 SQL Server 實例上執行查詢。 它們可以是受控、內部部署或虛擬機器。 僅 SQLNCLI 支援、 SQLNCLI11SQLOLEDB 值做為提供者。 例如 SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee。 請參閱 OPENDATASOURCE
  • 連結的伺服器不能用來從網路共用讀取 (Excel、CSV) 的檔案。 請嘗試使用BULK INSERTOPENROWSET從 Azure Blob 儲存體讀取 CSV 檔案,或是在 Synapse Analytics 中參考無伺服器 SQL 集區的連結伺服器。 在SQL 受控執行個體意見反應專案上追蹤此要求|

Azure 上的連結伺服器 SQL 受控執行個體僅支援 SQL 驗證。 尚不支援 AAD 驗證。

PolyBase

正在進行SQL 受控執行個體中啟用 Polybase 支援的工作。 在此情況下,您可以將連結的伺服器用於Synapse 分析中的無伺服器 SQL 集區或 SQL Server,以從儲存在 Azure Data Lake 或 Azure 儲存體中的檔案查詢資料。
如需 PolyBase 的一般資訊,請參閱 polybase

複寫

  • 支援快照式和雙向複寫類型。 不支援合併式複寫、點對點複寫,以及可更新的訂閱。
  • 異動複寫適用于 SQL 受控執行個體上的公開預覽,但有一些限制:
    • 所有類型的複寫參與者 (Publisher、散發者、提取訂閱者和發送訂閱者) 都可以放在 SQL 受控執行個體上,但發行者和散發者必須在雲端或內部部署中。
    • SQL受控執行個體可以與 SQL Server 的最新版本進行通訊。 如需詳細資訊,請參閱 支援的版本矩陣
    • 異動複寫有一些 額外的網路需求

如需有關設定異動複寫的詳細資訊,請參閱下列教學課程:

RESTORE 陳述式

  • 支援的語法:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • 不支援的語法:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • 來源:
    • FROM URL (Azure Blob 儲存體) 是唯一支援的選項。
    • 不支援 FROM DISK/TAPE/備份裝置。
    • 不支援備份組。
  • WITH 不支援選項。 還原的嘗試(包括 WITH like DIFFERENTIALSTATS 、等 REPLACE )將會失敗。
  • ASYNC RESTORE:即使用戶端連接中斷,還是會繼續還原。 如果中斷連接,您可以查看還原作業的 sys.dm_operation_status 狀態,以及建立和卸載資料庫的狀態。 請參閱 sys.dm_operation_status

您可以設定或覆寫下列資料庫選項,之後就無法再變更:

  • NEW_BROKER 如果 .bak 檔案中未啟用 broker,則為。
  • ENABLE_BROKER 如果 .bak 檔案中未啟用 broker,則為。
  • AUTO_CLOSE=OFF 如果 .bak 檔案中的資料庫具有 AUTO_CLOSE=ON
  • RECOVERY FULL 如果 .bak 檔案中的資料庫具有 SIMPLEBULK_LOGGED 復原模式。
  • 如果記憶體優化的檔案群組不在來源 .bak 檔案中,則會新增並呼叫 XTP。
  • 任何現有的記憶體優化檔案群組都會重新命名為 XTP。
  • SINGLE_USERRESTRICTED_USER 選項會轉換成 MULTI_USER

限制:

  • 損毀資料庫的備份可能會根據損毀的類型還原,但在修正損毀之前,將不會執行自動備份。 請確定您在 DBCC CHECKDB 來源 SQL 上執行受控執行個體,並使用備份 WITH CHECKSUM 來避免此問題。
  • 還原 .BAK 資料庫的檔案,其中包含本檔中所述的任何限制 (例如, FILESTREAM 或是 FILETABLE 無法在 SQL 受控執行個體上還原的物件) 。
  • .BAK 無法還原包含多個備份組的檔案。
  • .BAK 無法還原包含多個記錄檔的檔案。
  • 如果備份包含大於 8 TB 的資料庫、作用中的記憶體內部 OLTP 物件,或每個實例超過280個檔案的檔案數目,就無法在一般用途的實例上還原。
  • 如果備份包含大於 4 TB 的資料庫或記憶體內部 OLTP 物件,且大小總計大於 資源限制 中所述的大小,則無法在商務關鍵實例上還原。 如需 restore 語句的詳細資訊,請參閱 restore 語句

重要

相同的限制適用于內建的時間點還原作業。 例如,無法在商務關鍵實例上還原超過 4 TB 的一般目的資料庫。 具有記憶體內部 OLTP 檔案或超過280檔案的商務關鍵資料庫,無法在一般用途實例上還原。

Service Broker

只有在 Azure SQL 受控實例之間,才支援跨實例的 service broker 訊息交換:

  • CREATE ROUTE:您不能 CREATE ROUTE 使用 ADDRESS 其他 LOCAL SQL 受控執行個體的或 DNS 名稱。 埠一律為4022。
  • ALTER ROUTE:您不能 ALTER ROUTE 使用 ADDRESS 其他 LOCAL SQL 受控執行個體的或 DNS 名稱。 埠一律為4022。

支援傳輸安全性,對話安全性不是:

  • 不支援 CREATE REMOTE SERVICE BINDING

Service broker 預設為啟用狀態,且無法停用。 不支援下列 ALTER DATABASE 選項:

  • ENABLE_BROKER
  • DISABLE_BROKER

預存程式、函數和觸發程式

  • NATIVE_COMPILATION 一般用途層中不支援。
  • 不支援下列 sp_configure 選項:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • 下列 sp_configure 選項會被忽略,且不會有任何作用:
    • Ole Automation Procedures
  • 不支援 sp_execute_external_scripts。 請參閱 sp_execute_external_scripts
  • 不支援 xp_cmdshell。 請參閱 xp_cmdshell
  • Extended stored procedures 不受支援,其中包括 sp_addextendedprocsp_dropextendedproc 。 因為這是 SQL Server 的取代路徑,所以不支援此功能。 如需詳細資訊,請參閱 擴充預存程式
  • 不支援 sp_attach_dbsp_attach_single_file_dbsp_detach_db。 請參閱 sp_attach_dbsp_attach_single_file_dbsp_detach_db

系統函數和變數

下列變數、函式和檢視會傳回不同的結果:

  • SERVERPROPERTY('EngineEdition') 傳回值8。 這個屬性會唯一識別 SQL 受控執行個體。 請參閱 SERVERPROPERTY
  • SERVERPROPERTY('InstanceName')會傳回 Null,因為實例存在於 SQL Server 的概念不適用於 SQL 受控執行個體。 請參閱 SERVERPROPERTY('InstanceName')
  • @@SERVERNAME 傳回完整的 DNS 「可連接」名稱,例如,my-managed-instance.wcus17662feb9ce98.database.windows.net。 請參閱 @SERVERNAME @
  • SYS.SERVERS 傳回完整的 DNS 「可連接」名稱,例如 " myinstance.domain.database.windows.net name" 和 "data_source" 屬性。 請參閱 SYS.SERVERS
  • @@SERVICENAME會傳回 Null,因為存在於 SQL Server 的服務概念不適用於 SQL 受控執行個體。 請參閱 @SERVICENAME @
  • 支援 SUSER_ID。 如果 Azure AD 登入不在 sys. syslogins 中,它會傳回 Null。 請參閱 SUSER_ID
  • 不支援 SUSER_SID。 傳回錯誤的資料,這是暫時性的已知問題。 請參閱 SUSER_SID

環境條件約束

子網路

  • 您無法將任何其他資源放在已部署 SQL 受控執行個體的子網中, (例如虛擬機器) 。 使用不同的子網部署這些資源。
  • 子網路必須有足夠數目的可用 IP 位址。 最小值是在子網中至少有32個 IP 位址。
  • 您可以在區域中部署的虛擬核心和實例類型數目有一些 限制和限制
  • 子網必須套用 網路 設定。

VNET

  • 您可以使用資源模型部署 VNet-不支援 VNet 的傳統模型。
  • 建立 SQL 受控執行個體之後,不支援將 SQL 受控執行個體或 VNet 移至另一個資源群組或訂用帳戶。
  • 針對在 9/22/2020全域對等互連之前建立的虛擬叢集中所裝載的 SQL 受控實例,則不受支援。 您可以透過 ExpressRoute 或透過 vnet 閘道的 VNet 對 VNet 連接到這些資源。

容錯移轉群組

系統資料庫不會複寫到容錯移轉群組中的次要執行個體。 因此,您無法在次要執行個體上進行相依於系統資料庫中物件的案例,除非在次要上手動建立這些物件。

TEMPDB

  • 一般用途層上的最大檔案大小 tempdb 不可超過每個核心 24 GB。 tempdb商務關鍵層的大小上限受限於 SQL 受控執行個體儲存體大小。 Tempdb 一般用途層的記錄檔大小限制為 120 GB。 如果查詢的每個核心需要 24 GB 以上, tempdb 或產生超過 120 GB 的記錄資料,則可能會傳回錯誤。
  • Tempdb 一律會分割成12個資料檔案:1個主要,也稱為 master、資料檔案和11個非主要資料檔案。 無法變更檔案結構,也無法將新檔案加入至 tempdb
  • 不支援記憶體優化的 tempdb 中繼資料,這是新的 SQL Server 2019 記憶體內部資料庫功能。
  • 在模型資料庫中建立的物件無法在 tempdb 重新開機或容錯移轉之後自動建立,因為不 tempdb 會從模型資料庫取得其初始物件清單。 您必須在 tempdb 每次重新開機或容錯移轉之後,手動建立物件。

MSDB

下列 SQL 受控執行個體中的 MSDB 架構必須由其各自預先定義的角色所擁有:

重要

依客戶變更預先定義的角色名稱、架構名稱和架構擁有者將會影響服務的正常運作。 對這些變更所做的任何變更,都會在偵測到時立即還原為預先定義的值,或在最新的服務更新時還原回預先定義的值,以確保正常的服務作業。

錯誤記錄

SQL受控執行個體將詳細資訊放在錯誤記錄檔中。 錯誤記錄檔中會記錄許多內部系統事件。 您可以使用自訂程式來讀取錯誤記錄檔,以篩選出一些不相關的專案。 如需詳細資訊,請參閱受控執行個體的SQL 受控執行個體– sp_readmierrorlogSQL (延伸) preview Azure Data Studio

下一步