Diferencias de T-SQL entre SQL Server y Azure SQL Managed Instance
Se aplica a: Azure SQL Managed Instance
Este artículo resume y explica las diferencias de sintaxis y comportamiento entre Instancia administrada de Azure SQL y SQL Server.
Instancia administrada de SQL proporciona una alta compatibilidad con el motor de base de datos de SQL Server, y la mayoría de las características se admiten en una Instancia administrada de SQL.
Existen algunas limitaciones de PaaS que se introdujeron en Instancia administrada de SQL y algunos cambios de comportamiento en comparación con SQL Server. Las diferencias se dividen en las siguientes categorías:
- Disponibilidad, incluye las diferencias en Grupos de disponibilidad AlwaysOn y Copias de seguridad.
- Seguridad, incluye las diferencias en Auditoría, Certificados, Credenciales, Proveedores de servicios criptográficos, Inicios de sesión y usuarios, Clave maestra de servicio y clave de servicio.
- Configuración, incluye las diferencias en Extensión del grupo de búferes, Intercalación, Niveles de compatibilidad,Creación de reflejo de la base de datos , Opciones de base de datos, Agente SQL Server y Opciones de tabla.
- Funcionalidades, incluidas BULK INSERT/OPENROWSET, CLR, DBCC, Transacciones distribuidas, Eventos extendidos, Bibliotecas externas, FILESTREAM y Filetable, Búsqueda semántica de texto completo, Servidores vinculados, PolyBase, Replicación, RESTORE, Service Broker, Funciones, procedimientos almacenados y desencadenadores.
- Configuración del entorno, como las configuraciones de redes virtuales y subredes.
La mayoría de estas características son restricciones de arquitectura y representan características de servicio.
En Novedades se explican los problemas temporales conocidos que se han detectado en SQL Managed Instance y que se van a resolver en el futuro.
Nota:
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
Disponibilidad
Grupos de disponibilidad AlwaysOn
La alta disponibilidad está integrada en la Instancia administrada de SQL y no la pueden controlar los usuarios. No se admiten las siguientes instrucciones:
- CREATE ENDPOINT … FOR DATABASE_MIRRORING
- CREATE AVAILABILITY GROUP
- ALTER AVAILABILITY GROUP
- DROP AVAILABILITY GROUP
- La cláusula SET HADR de la instrucción ALTER DATABASE
Copia de seguridad
Azure SQL Managed Instance tiene copias de seguridad automáticas, por lo que los usuarios pueden crear copias de seguridad COPY_ONLY
de bases de datos completas. No se admiten copias de seguridad de instantáneas de archivos, de registro ni diferenciales.
- Con una Instancia administrada de SQL, puede hacer una copia de seguridad de una base de datos de instancia solo en una cuenta de Azure Blob Storage:
- Solo se admite
BACKUP TO URL
. - No se admiten
FILE
,TAPE
ni dispositivos de copia de seguridad.
- Solo se admite
- Se admite la mayoría de las opciones de
WITH
generales.COPY_ONLY
es obligatorio.- No se admite
FILE_SNAPSHOT
niCREDENTIAL
. - No se admiten las opciones de cinta
REWIND
,NOREWIND
,UNLOAD
yNOUNLOAD
. - No se admiten las opciones específicas de registro
NORECOVERY
,STANDBY
yNO_TRUNCATE
.
Limitaciones:
Con una Instancia administrada de SQL, puede hacer una copia de seguridad de una base de datos de instancia en una copia de seguridad con hasta 32 franjas, lo cual es suficiente para bases de datos de hasta 4 TB si se usa la compresión de copia de seguridad.
No se puede ejecutar
BACKUP DATABASE ... WITH COPY_ONLY
en una base de datos cifrada con Cifrado de datos transparente (TDE) administrado por el servicio. TDE administrado por un servicio hace que las copias de seguridad se cifren con una clave interna de TDE. No es posible exportar la clave, por lo que no se puede restaurar la copia de seguridad. Use copias de seguridad automáticas y restauración a un momento dado, o use Cifrado de datos transparente administrado por el cliente (BYOK) en su lugar. También puede deshabilitar el cifrado en la base de datos.Las copias de seguridad nativas realizadas en SQL Managed Instance solo se pueden restaurar en una instancia de SQL Server 2022. Esto se debe a que SQL Managed Instance tiene una versión de base de datos interna superior en comparación con otras versiones de SQL Server. Para obtener más información, consulte Restauración de una copia de seguridad de base de datos de SQL Managed Instance en SQL Server 2022.
Para crear una copia de seguridad de una base de datos de un almacenamiento de Azure o restaurarla desde allí, se puede realizar la autenticación mediante una identidad administrada o una firma de acceso compartido (SAS), que es un identificador URI que le concede derechos de acceso restringido a los recursos de Azure Storage. Más información. No se admite el uso de claves de acceso para estos escenarios.
El tamaño máximo de una franja de copia de seguridad con el uso del comando
BACKUP
en una Instancia administrada de SQL es de 195 GB, lo cual es el tamaño máximo del blob. Aumente el número de franjas en el comando de copia de seguridad para reducir el tamaño de las franjas y permanecer dentro de este límite.Sugerencia
Para solucionar esta limitación, cuando realice una copia de seguridad de una base de datos desde un servidor de SQL Server en un entorno local o en una máquina virtual, puede:
- Realizar la copia de seguridad en
DISK
en lugar de hacerlo enURL
. - Cargar los archivos de copia de seguridad en Blob Storage.
- Restaurar en la Instancia administrada de SQL.
El comando
Restore
de una Instancia administrada de SQL admite tamaños de blob más grandes en los archivos de copia de seguridad porque se usa un tipo de blob distinto para el almacenamiento de los archivos de copia de seguridad cargados.- Realizar la copia de seguridad en
Para más información acerca de las copias de seguridad mediante T-SQL, consulte BACKUP.
Seguridad
Auditoría
Las principales diferencias entre la auditoría en Microsoft Azure SQL y en SQL Server son las siguientes:
- Con Instancia administrada de SQL, la auditoría funciona en el nivel de servidor. Los archivos de registro
.xel
se almacenan en Azure Blob Storage. - En Azure SQL Database, la auditoría funciona en el nivel de base de datos. Los archivos de registro
.xel
se almacenan en Azure Blob Storage. - Con servidores de SQL Server locales o en los de máquinas virtuales, la auditoría funciona en el nivel de servidor. Los eventos se almacenan en el sistema de archivos o en los registros de eventos de Windows.
En Instancia administrada de SQL, la auditoría de XEvent admite Azure Blob Storage como destino. No se admiten archivos ni registros de Windows.
Las principales diferencias en la sintaxis de CREATE AUDIT
para la auditoría en Azure Blob Storage son:
- Se proporciona una nueva sintaxis de
TO URL
para especificar la dirección URL del contenedor de Azure Blob Storage donde se colocarán los archivos.xel
. - La sintaxis
TO FILE
no se admite porque la Instancia administrada de SQL no puede acceder a los recursos compartidos de archivos de Windows.
Para más información, consulte:
Certificados
Una Instancia administrada de SQL no puede acceder a los recursos compartidos de archivos ni a las carpetas de Windows, por lo que se aplican las siguientes restricciones:
- El archivo
CREATE FROM
/BACKUP TO
no se admite para certificados. - No se admite el certificado
CREATE
/BACKUP
deFILE
/ASSEMBLY
. No se pueden usar archivos de clave privada.
Consulte CREATE CERTIFICATE y BACKUP CERTIFICATE.
Solución alternativa: En lugar de crear una copia de seguridad del certificado y restaurar la copia de seguridad, obtenga el contenido binario del certificado y la clave privada, almacénelo como archivo .sql y cree a partir del binario:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);
Credential:
Solo se admiten identidades de identidad administrada, Azure Key Vault y SHARED ACCESS SIGNATURE
. No se admiten usuarios de Windows.
Consulte CREATE CREDENTIAL y ALTER CREDENTIAL.
Proveedores de servicios criptográficos
Una Instancia administrada de SQL no puede acceder a archivos, por lo que no se pueden crear proveedores de servicios criptográficos:
CREATE CRYPTOGRAPHIC PROVIDER
no se admite. Consulte CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
no se admite. Consulte ALTER CRYPTOGRAPHIC PROVIDER.
Inicios de sesión y usuarios
Se admiten los inicios de sesión de SQL creados con
FROM CERTIFICATE
,FROM ASYMMETRIC KEY
yFROM SID
. Consulte CREATE LOGIN. Las entidades de seguridad de servidor (inicios de sesión) se crean en el nivel de servidor y los usuarios (entidades de seguridad de base de datos) se crean en el nivel de base de datos. Se admiten los inicios de sesión de Microsoft Entra creados con la sintaxis CREATE LOGIN y los usuarios de Microsoft Entra creados con la sintaxis CREATE USER FROM LOGIN. Al crear un usuario y especificarFROM LOGIN
, ese usuario se asocia al inicio de sesión y hereda los roles de servidor y los permisos que se le asignen.SQL Managed Instance admite la creación de usuarios de base de datos independientes en función de identidades de Microsoft Entra con la sintaxis
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER
. Los usuarios creados de esta manera no están asociados a entidades de seguridad de servidor, incluso si existe una entidad de seguridad de servidor con el mismo nombre en la base de datosmaster
.No se admiten los inicios de sesión de Windows creados con la sintaxis
CREATE LOGIN ... FROM WINDOWS
. Use inicios de sesión y usuarios de Microsoft Entra.El administrador de Microsoft Entra de la instancia tiene privilegios de administrador sin restricciones.
Algunas características no admiten el uso de inicios de sesión de Microsoft Entra en interacciones entre instancias, sino solo dentro de una sola instancia de SQL Managed Instance, como la replicación de SQL Server, por ejemplo. Pero la característica de servidor vinculado admite la autenticación entre instancias mediante entidades de seguridad (inicios de sesión) del servidor de Microsoft Entra.
No se admite establecer un inicio de sesión de Microsoft Entra asignado a un grupo de Microsoft Entra como propietario de la base de datos. Un miembro del grupo de Microsoft Entra puede ser propietario de la base de datos, incluso si el inicio de sesión no se ha creado en la base de datos.
Se admite la suplantación de las entidades de seguridad en el nivel de servidor de Microsoft Entra mediante otras entidades de seguridad de Microsoft Entra, como la cláusula EXECUTE AS. Las limitaciones de EXECUTE AS son:
No se admite la cláusula EXECUTE AS USER para usuarios de Microsoft Entra cuando el nombre es diferente del nombre de inicio de sesión. Por ejemplo, cuando el usuario se crea mediante la sintaxis
CREATE USER [myAadUser] FROM LOGIN [john@contoso.com]
y se intenta suplantar la identidad medianteEXEC AS USER = myAadUser
. Cuando cree una instancia de USER a partir de un inicio de sesión de Microsoft Entra, especifique el nombre de usuario como el mismo nombre de inicio de sesión desde LOGIN.Solo los inicios de sesión de nivel de SQL Server que forman parte del rol
sysadmin
pueden ejecutar las siguientes operaciones dirigidas a las entidades de seguridad de Microsoft Entra:- EXECUTE AS USER
- EXECUTE AS LOGIN
Para suplantar a un usuario con la instrucción EXECUTE AS, el usuario se debe asignar directamente al inicio de sesión de Microsoft Entra. Los usuarios que son miembros de grupos de Microsoft Entra asignados a entidades de seguridad de servidor de Microsoft Entra no se pueden suplantar eficazmente con la instrucción EXECUTE AS, aunque el autor de la llamada tenga permisos de suplantación en el nombre de usuario especificado.
Se admite la exportación e importación de bases de datos con archivos bacpac para usuarios de Microsoft Entra en SQL Managed Instance mediante SSMS V18.4 o una versión posterior o SqlPackage.
- Se admiten las siguientes configuraciones mediante el uso del archivo bacpac de base de datos:
- Exportar o importar una base de datos entre diferentes instancias administradas en el mismo dominio de Microsoft Entra.
- Exportar una base de datos desde una instancia administrada de SQL e importarla a SQL Database en el mismo dominio de Microsoft Entra.
- Exportar una base de datos desde SQL Database e importarla a una instancia administrada de SQL en el mismo dominio de Microsoft Entra.
- Exportar una base de datos desde una Instancia administrada de SQL e importarla a SQL Server (versión 2012 o posterior).
- En esta configuración, todos los usuarios de Microsoft Entra se crean como entidades de seguridad de base de datos de SQL Server (usuarios) sin inicios de sesión. El tipo de usuarios es
SQL
y es visible comoSQL_USER
ensys.database_principals
. Sus permisos y roles se conservan en los metadatos de la base de datos de SQL Server y se pueden usar para la suplantación. Pero no se pueden usar para acceder e iniciar sesión en SQL Server con sus credenciales.
- En esta configuración, todos los usuarios de Microsoft Entra se crean como entidades de seguridad de base de datos de SQL Server (usuarios) sin inicios de sesión. El tipo de usuarios es
- Se admiten las siguientes configuraciones mediante el uso del archivo bacpac de base de datos:
Solo el inicio de sesión de la entidad de seguridad de nivel de servidor, que crea el proceso de aprovisionamiento de SQL Managed Instance, los miembros de los roles de servidor, como
securityadmin
osysadmin
, u otros inicios de sesión con el permiso ALTER ANY LOGIN en el nivel de servidor pueden crear entidades de seguridad (inicios de sesión) de servidor de Microsoft Entra en la base de datosmaster
para SQL Managed Instance.A los inicios de sesión basados en autenticación de SQL se les debe asignar el rol
sysadmin
a fin de crear inicios de sesión para identidades de Microsoft Entra.El inicio de sesión debe ser miembro del mismo inquilino de Microsoft Entra en el que se hospeda la instancia de Azure SQL Managed Instance.
Las entidades de seguridad (inicios de sesión) de servidor de Microsoft Entra son visibles en el explorador de objetos a partir de la versión preliminar 5 de SQL Server Management Studio 18.0.
Una entidad de seguridad de servidor con el nivel de acceso sysadmin se crea automáticamente para el administrador de Microsoft Entra una vez que se habilita en una instancia.
Durante la autenticación, se aplica la siguiente secuencia para resolver la entidad de seguridad de autenticación:
- Si la cuenta de Microsoft Entra se asigna directamente a un inicio de sesión de Microsoft Entra, que está presente en
sys.server_principals
como tipo "E", conceda acceso y aplique permisos de ese inicio de sesión. - Si la cuenta de Microsoft Entra es miembro de un grupo que se asigna a un inicio de sesión de Microsoft Entra, que está presente en
sys.server_principals
como tipo "X", conceda acceso y aplique permisos de ese inicio de sesión. - Si la cuenta de Microsoft Entra existe como directamente asignada a un usuario de Microsoft Entra de una base de datos, presente en
sys.database_principals
como tipo "E", conceda acceso y aplique los permisos del usuario de base de datos de Microsoft Entra. - Si la cuenta de Microsoft Entra es miembro de un grupo de Microsoft Entra asignado a un usuario de Microsoft Entra de una base de datos, presente en
sys.database_principals
como tipo "X", conceda acceso y aplique los permisos del usuario del grupo de Microsoft Entra.
- Si la cuenta de Microsoft Entra se asigna directamente a un inicio de sesión de Microsoft Entra, que está presente en
Clave maestra de servicio y clave de servicio
- No se admiten las copias de seguridad de la clave maestra (administrada por el servicio de SQL Database).
- No se admite la restauración de la clave maestra (administrada por el servicio de SQL Database).
- No se admiten las copias de seguridad de la clave maestra del servicio (administrada por el servicio de SQL Database).
- No se admite la restauración de la clave maestra del servicio (administrada por el servicio de SQL Database).
Configuración
Extensión del grupo de búferes
- No se admite la extensión del grupo de búferes.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
no se admite. Consulte ALTER SERVER CONFIGURATION.
Intercalación
La intercalación de la instancia predeterminada es SQL_Latin1_General_CP1_CI_AS
y puede especificarse como un parámetro de creación. Consulte Intercalaciones.
Niveles de compatibilidad
- Los niveles de compatibilidad admitidos son 100, 110, 120, 130, 140, 150 y 160.
- No se admiten los niveles de compatibilidad menores que 100.
- El nivel de compatibilidad predeterminado es 150 para las bases de datos nuevas. Para las bases de datos restauradas, el nivel de compatibilidad no cambiará si era 100 o superior.
Consulte Nivel de compatibilidad de ALTER DATABASE.
Creación de reflejo de la base de datos
No se admite la creación de reflejo de la base de datos.
- Las opciones
ALTER DATABASE SET PARTNER
ySET WITNESS
no se admiten. CREATE ENDPOINT … FOR DATABASE_MIRRORING
no se admite.
Para más información, consulte ALTER DATABASE SET PARTNER y SET WITNESS y CREATE ENDPOINT … FOR DATABASE_MIRRORING.
Opciones de base de datos
- No se permite usar varios archivos de registro.
- No se admiten objetos en memoria caché en el nivel de servicio de uso general.
- Hay un límite de 280 archivos por instancia de uso general, lo cual implica un máximo de 280 archivos por base de datos. Los datos y archivos de registro en el nivel de uso general cuentan para este límite. El nivel Crítico para la empresa admite 32 767 archivos por base de datos.
- La base de datos no puede contener grupos de archivos que contengan datos FILESTREAM. Se produce un error en la restauración si
.bak
contiene datosFILESTREAM
. - Todos los archivos se colocan en Azure Blob Storage. La E/S y el rendimiento por archivo dependen del tamaño de cada archivo individual.
Instrucción CREATE DATABASE
Se aplican las siguientes limitaciones a CREATE DATABASE
:
No se pueden definir archivos y grupos de archivos.
Se agregan automáticamente un grupo de archivos y un archivo optimizados para memoria y se denominan XTP.
La opción
CONTAINMENT
no se admite.Las opciones
WITH
no se admiten.Sugerencia
Como alternativa, use
ALTER DATABASE
después deCREATE DATABASE
para establecer las opciones de la base de datos para agregar archivos o establecer el contenedor.La opción
FOR ATTACH
no se admite.La opción
AS SNAPSHOT OF
no se admite.
Para más información, consulte CREATE DATABASE.
instrucción ALTER DATABASE
Algunas propiedades de archivo no se pueden establecer ni cambiar:
- No se puede especificar una ruta de acceso del archivo en la instrucción T-SQL
ALTER DATABASE ADD FILE (FILENAME='path')
. QuiteFILENAME
del script porque una Instancia administrada de SQL coloca automáticamente los archivos. - El nombre del archivo no se puede cambiar mediante la instrucción
ALTER DATABASE
. - No se permite modificar el archivo XTP ni el grupo de archivos.
Las siguientes opciones se establecen de forma predeterminada y no se pueden cambiar:
MULTI_USER
ENABLE_BROKER
AUTO_CLOSE OFF
Las opciones siguientes no se pueden modificar:
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
Es posible que algunas instrucciones ALTER DATABASE
(por ejemplo, SET CONTAINMENT) no se puedan realizar de forma transitoria, por ejemplo, durante la copia de seguridad automatizada o justo después de crear una base de datos. En este caso, la instrucción ALTER DATABASE
debe volver a intentarse. Para obtener más información sobre los mensajes de error relacionados, consulte la sección Comentarios.
Para más información, consulte ALTER DATABASE.
Agente SQL Server
- La habilitación o deshabilitación del Agente SQL Server no se admite actualmente en la Instancia administrada de SQL. El Agente SQL se ejecuta de forma continua.
- No se admite el desencadenador de programación de trabajos basado en una CPU inactiva.
- La configuración del Agente SQL Server es de solo lectura. El procedimiento
sp_set_agent_properties
no se admite en la Instancia administrada de SQL. - Trabajos
- Se admiten los pasos de trabajo de T-SQL.
- Se admiten los siguientes trabajos de replicación:
- Lector del registro de transacciones
- Instantánea
- Distribuidor.
- Se admiten los pasos de trabajo de SSIS.
- Actualmente no se admiten estos otros tipos de pasos de trabajo:
- No se admite el paso de trabajo de replicación de mezcla.
- No se admite el lector de colas.
- Aún no se admite el shell de comandos.
- La Instancia administrada de SQL no puede acceder a los recursos externos como, por ejemplo, a los recursos compartidos de red a través de robocopy.
- No se admite SQL Server Analysis Services.
- Las notificaciones se admiten parcialmente.
- Se admite la notificación por correo electrónico, aunque es necesario configurar un perfil de Correo electrónico de base de datos. Agente SQL Server solo puede usar un perfil de Correo electrónico de base de datos y se debe llamar
AzureManagedInstance_dbmail_profile
.- El buscapersonas no se admite.
- No se admite NetSend.
- Aún no se admiten las alertas.
- No se admiten los servidores proxy.
- No se admite EventLog.
- El usuario debe estar asignado directamente al inicio de sesión del servidor de Microsoft Entra para crear, modificar o ejecutar trabajos del Agente SQL. Los usuarios que no estén directamente asignados, por ejemplo, los que pertenezcan a un grupo de Microsoft Entra que tenga derechos para crear, modificar o ejecutar trabajos del Agente SQL, no podrán realizar estas acciones de forma eficaz. Esto se debe a la suplantación de SQL Managed Instance y las limitaciones de EXECUTE AS.
- No se admite la característica de administración multiservidor para los trabajos de maestro y destino (MSX/TSX).
Para más información acerca del Agente SQL Server, consulte Agente SQL Server.
Tablas
No se admiten los siguientes tipos de tablas:
- FILESTREAM
- FILETABLE
- TABLA EXTERNA (excepto PolyBase)
- MEMORY_OPTIMIZED (únicamente no se admite en el nivel Uso general)
Para más información sobre cómo crear y modificar tablas, consulte CREATE TABLE y ALTER TABLE.
Funcionalidades
BULK INSERT / OPENROWSET
Una Instancia administrada de SQL no puede acceder a los recursos compartidos de archivos ni carpetas de Windows, por lo que los archivos se deben importar desde Azure Blob Storage:
DATASOURCE
es necesario en el comandoBULK INSERT
durante la importación de archivos desde Azure Blob Storage. Consulte BULK INSERT.DATASOURCE
se necesita en la funciónOPENROWSET
cuando se lee el contenido de un archivo desde Azure Blob Storage. Consulte OPENROWSET.OPENROWSET
se puede usar para leer datos de Azure SQL Database, Instancia administrada de Azure SQL o instancias de SQL Server. No se admiten otros orígenes, como bases de datos de Oracle o archivos de Excel.
CLR
Una Instancia administrada de SQL no puede acceder a los recursos compartidos de archivos ni a las carpetas de Windows, por lo que se aplican las siguientes restricciones:
- Solo se admite
CREATE ASSEMBLY FROM BINARY
. Consulte CREATE ASSEMBLY FROM BINARY. CREATE ASSEMBLY FROM FILE
no se admite. Consulte CREATE ASSEMBLY FROM FILE.ALTER ASSEMBLY
no puede hacer referencia a archivos. Consulte ALTER ASSEMBLY.
Correo electrónico de base de datos: (db_mail)
sp_send_dbmail
no puede enviar datos adjuntos con el parámetro @file_attachments. El sistema de archivos local y los recursos compartidos externos, o Azure Blob Storage, no son accesibles con este procedimiento.- Vea los problemas conocidos relacionados con el parámetro
@query
y la autenticación.
DBCC
La Instancia administrada de SQL no admite instrucciones DBCC no documentadas que estén habilitadas en SQL Server.
- Solo se admite un número limitado de marcas de seguimiento globales. No se admiten las
Trace flags
en el nivel de sesión. Consulte Marcas de seguimiento. - DBCC TRACEOFF y DBCC TRACEON funcionan con el número limitado de marcas trace-flags globales.
- No se puede usar DBCC CHECKDB con las opciones REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST y REPAIR_REBUILD porque la base de datos no se puede establecer en el modo
SINGLE_USER
; vea Diferencias de ALTER DATABASE. El equipo de soporte técnico de Azure se encarga de los posibles daños en la base de datos. Póngase en contacto con el soporte técnico de Azure si hay algún signo de daños en la base de datos.
Distributed transactions
Las transacciones distribuidas basadas en T-SQL y .NET entre instancias administradas están disponibles con carácter general. Otros escenarios, como transacciones XA, transacciones distribuidas entre instancias administradas y otros participantes, etc., se admiten con DTC para Azure SQL Managed Instance, que está disponible en versión preliminar pública.
Eventos extendidos
No se admiten algunos destinos específicos de Windows para Extended Events (XEvents):
- No se admite el destino
etw_classic_sync
. Almacene los archivos.xel
en Azure Blob Storage. Consulte Destino etw_classic_sync. - No se admite el destino
event_file
. Almacene los archivos.xel
en Azure Blob Storage. Consulte Destino event_file.
Bibliotecas externas
Las bibliotecas externas de R y Python en base de datos se admiten en la versión preliminar pública limitada. Consulte Machine Learning Services de Azure SQL Managed Instance (versión preliminar).
FILESTREAM y FileTable
- No se admiten datos FILESTREAM.
- La base de datos no puede contener grupos de archivos con datos
FILESTREAM
. FILETABLE
no se admite.- Las tablas no pueden tener tipos
FILESTREAM
. - No se admiten las siguientes funciones:
GetPathLocator()
GET_FILESTREAM_TRANSACTION_CONTEXT()
PathName()
GetFileNamespacePat)
FileTableRootPath()
Para más información, consulte FILESTREAM y FileTables.
Búsqueda semántica de texto completo
No se admite la búsqueda semántica.
Servidores vinculados
Los servidores vinculados en SQL Managed Instance admiten un número limitado de destinos:
- Los destinos admitidos son SQL Managed Instance, SQL Database, grupos de Azure Synapse SQL sin servidor y dedicados e instancias de SQL Server.
- Destinos no admitidos: archivos, Analysis Services y otros RDBMS. Intente usar la importación de CSV nativa desde Azure Blob Storage mediante
BULK INSERT
oOPENROWSET
como alternativa para la importación de archivos, o cargue los archivos mediante un grupo de SQL sin servidor en Azure Synapse Analytics.
Operaciones:
- Se admite
sp_dropserver
para quitar un servidor vinculado. Consulte sp_dropserver. - La función
OPENROWSET
se puede usar para ejecutar consultas solo en instancias de SQL Server. Se pueden administrar de forma local o en máquinas virtuales. Consulte OPENROWSET. - La función OPENDATASOURCE se puede usar para ejecutar consultas solo en instancias de SQL Server. Se pueden administrar de forma local o en máquinas virtuales. Un ejemplo es
SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee
. Solo se admiten los valoresSQLNCLI
,SQLNCLI11
,SQLOLEDB
yMSOLEDBSQL
como proveedor. SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 y SQL Server Management Studio 19 (SSMS). No se recomiendan SQL Server Native Client (SQLNCLI o SQLNCLI11) ni Microsoft OLE DB Provider for SQL Server (SQLOLEDB) heredado para el nuevo desarrollo. Cambie al nuevo controlador OLE DB de Microsoft (MSOLEDBSQL) para SQL Server o al controlador ODBC de Microsoft ODBC Driver for SQL Server más reciente de ahora en adelante. - Los servidores vinculados no se pueden usar para leer archivos (Excel y CSV) de los recursos compartidos de red. Intente usar BULK INSERT, OPENROWSET que lee los archivos CSV de Azure Blob Storage o un servidor vinculado que hace referencia a un grupo de SQL sin servidor en Synapse Analytics. Realice un seguimiento de estas solicitudes en el elemento de comentarios de la Instancia administrada de SQL.
Los servidores vinculados de Azure SQL Managed Instance admiten tanto la autenticación de SQL como la autenticación de Microsoft Entra.
PolyBase
La virtualización de datos con Azure SQL Managed Instance permite ejecutar consultas de Transact-SQL (T-SQL) en datos de archivos almacenados en Azure Data Lake Storage Gen2 o Azure Blob Storage, y combinarlos con datos relacionales almacenados localmente mediante combinaciones. Se admiten directamente los formatos de archivo Parquet y de texto delimitado (CSV). El formato de archivo JSON se admite indirectamente al especificar el formato de archivo CSV en el que las consultas devuelven cada documento como una fila independiente. Use JSON_VALUE
y OPENJSON
para analizar aún más las filas. Para obtener información general acerca de PolyBase, consulte PolyBase.
Además, CREATE EXTERNAL TABLE AS SELECT (CETAS) le permite exportar datos de la instancia administrada de SQL a una cuenta de almacenamiento externa. Puede usar CETAS para crear una tabla externa a partir de archivos Parquet o CSV en Azure Blob Storage o Azure Data Lake Storage (ADLS) Gen2. CETAS también puede exportar, en paralelo, los resultados de una instrucción SELECT de T-SQL en la tabla externa creada.
Replicación
- Se admiten los tipos de replicación de instantánea y bidireccional. No se admite la replicación de mezcla, la replicación punto a punto y las suscripciones actualizables.
- La replicación transaccional está disponible para SQL Managed Instance con algunas restricciones:
- Todos los tipos de participantes de la replicación (editor, distribuidor, suscriptor de extracción y suscriptor de inserción) se pueden colocar en una Instancia administrada de SQL, pero el editor y el distribuidor deben estar tanto en la nube como en el entorno local.
- La Instancia administrada de SQL puede comunicarse con las versiones recientes de SQL Server. Para más información, consulte la matriz de versiones compatibles.
- La replicación transaccional tiene algunos requisitos de red adicionales.
Para obtener más información sobre la configuración de la replicación transaccional, vea los siguientes tutoriales:
- Replicación entre un editor de Instancia administrada de SQL y un suscriptor de Instancia administrada de SQL
- Replicación entre un publicador de SQL MI, un distribuidor de SQL MI y un suscriptor de SQL Server
Instrucción RESTORE
- Sintaxis admitida:
RESTORE DATABASE
RESTORE FILELISTONLY
RESTORE HEADERONLY
RESTORE LABELONLY
RESTORE VERIFYONLY
- Sintaxis no admitida:
RESTORE LOGONLY
RESTORE REWINDONLY
- Origen:
- La única opción admitida es
FROM URL
(Azure Blob Storage). - No se admite
FROM DISK
/TAPE
/dispositivo de copia de seguridad. - No se admiten los conjuntos de copia de seguridad.
- La única opción admitida es
- Las opciones
WITH
no se admiten. Los intentos de restauración que incluyanWITH
, comoDIFFERENTIAL
,STATS
,REPLACE
, etc., generarán errores.
Una operación de restauración de base de datos es asincrónica y se puede reintentar en Azure SQL Managed Instance. Es posible que se genere un error en SSMS si se produce un error en la conexión o si expira el tiempo de espera. Azure SQL Managed Instance seguirá intentando restaurar la base de datos en segundo plano y se podrá realizar un seguimiento del progreso de la restauración mediante las vistas sys.dm_exec_requests y sys.dm_operation_status de administración dinámica.
Las siguientes opciones de base de datos se establecen o invalidan, y no se pueden cambiar más adelante:
NEW_BROKER
si el agente no está habilitado en el archivo .bak.ENABLE_BROKER
si el agente no está habilitado en el archivo .bak.AUTO_CLOSE=OFF
si una base de datos en el archivo .bak tieneAUTO_CLOSE=ON
.RECOVERY FULL
si una base de datos en el archivo .bak tiene el modelo de recuperaciónSIMPLE
oBULK_LOGGED
.- Se agrega un grupo de archivos optimizado para memoria y se le asigna el nombre XTP si aún no se encuentra en el archivo .bak de origen.
- Se cambia el nombre de todos los grupos de archivos optimizados para memoria existentes a XTP.
- Las opciones
SINGLE_USER
yRESTRICTED_USER
se convierten enMULTI_USER
.
Limitaciones:
- Las copias de seguridad de las bases de datos dañadas pueden restaurarse en función del tipo de daños, pero no se realizan copias de seguridad automatizadas mientras no se corrija el daño. Asegúrese de ejecutar
DBCC CHECKDB
en la Instancia administrada de SQL de origen y de usar la copia de seguridadWITH CHECKSUM
para evitar este problema. - La restauración de un archivo
.BAK
de una base de datos que contenga alguna de las limitaciones descritas en este documento (por ejemplo, objetosFILESTREAM
oFILETABLE
) no se puede llevar a cabo en SQL Managed Instance. - Los archivos
.BAK
que contienen varios conjuntos de copia de seguridad no se pueden restaurar. - Los archivos
.BAK
que contienen varios archivos de registro no se pueden restaurar. - Las copias de seguridad que contienen bases de datos con un tamaño superior a 8 TB, objetos OLTP en memoria activos o una cantidad de archivos superior a 280 por instancia no se pueden restaurar en una instancia de Uso general.
- Las copias de seguridad que contienen bases de datos con un tamaño superior a 4 TB u objetos OLTP en memoria con un tamaño total superior al descrito en los límites de recursos no se pueden restaurar en una instancia de tipo Crítico para la empresa. Para más información acerca de las instrucciones Restore, consulte Instrucciones RESTORE.
Importante
Las mismas limitaciones se aplican a una operación de restauración a un momento dado integrada. Por ejemplo, no es posible restaurar una base de datos de Uso general de más de 4 TB en una instancia de tipo Crítico para la empresa. Una base de datos de tipo Crítico para la empresa con archivos OLTP en memoria o más de 280 archivos no se puede restaurar en la instancia de Uso general.
Service Broker
El intercambio de mensajes de Service Broker entre instancias solo se admite entre instancias de Azure SQL Managed Instance:
CREATE ROUTE
: no puede usarCREATE ROUTE
conADDRESS
que no seaLOCAL
o el nombre DNS de otra instancia de SQL Managed Instance. El puerto siempre es 4022.ALTER ROUTE
: no puede usarALTER ROUTE
conADDRESS
que no seaLOCAL
o el nombre DNS de otra instancia de SQL Managed Instance. El puerto siempre es 4022.
Se admite la seguridad de transporte, pero no la seguridad de diálogo:
CREATE REMOTE SERVICE BINDING
no se admite.
Service Broker está habilitado de forma predeterminada y no se puede deshabilitar. No se admiten las siguientes opciones de ALTER DATABASE:
ENABLE_BROKER
DISABLE_BROKER
Procedimientos almacenados, funciones y desencadenadores
NATIVE_COMPILATION
no se admite en el nivel De uso general.- No se admiten las siguientes opciones de sp_configure:
allow polybase export
allow updates
filestream_access_level
remote access
remote data archive
remote proc trans
scan for startup procs
- Las siguientes opciones de sp_configure se omiten y no tienen ningún efecto:
Ole Automation Procedures
sp_execute_external_scripts
se admite solo para Machine Learning Services para SQL MI; de lo contrario,sp_execute_external_scripts
no se admite para SQL Managed Instance. Consulte sp_execute_external_scripts.xp_cmdshell
no se admite. Consulte xp_cmdshell.Extended stored procedures
no se admiten, esto incluyesp_addextendedproc
ysp_dropextendedproc
. Esta funcionalidad no se admitirá porque está en una ruta en desuso para SQL Server. Para obtener más información, vea Procedimientos almacenados extendidos.- No se admiten
sp_attach_db
,sp_attach_single_file_db
, ysp_detach_db
. Consulte sp_attach_db, sp_attach_single_file_db, y sp_detach_db.
Variables y funciones del sistema
Las siguientes variables, funciones y vistas devuelven resultados diferentes:
SERVERPROPERTY('EngineEdition')
devuelve el valor 8. Esta propiedad identifica de forma única una Instancia administrada de SQL. Consulte SERVERPROPERTY.SERVERPROPERTY('InstanceName')
devuelve NULL, porque el concepto de instancia tal y como existe para SQL Server no se aplica a una Instancia administrada de SQL. Consulte SERVERPROPERTY('InstanceName').@@SERVERNAME
devuelve un nombre DNS completo "conectable", por ejemplo,my-managed-instance.wcus17662feb9ce98.database.windows.net
. Consulte @@SERVERNAME.SYS.SERVERS
devuelve un nombre DNS completo "conectable", por ejemplo,myinstance.domain.database.windows.net
, para las propiedades "name" y "data_source". Consulte SYS.SERVERS.@@SERVICENAME
devuelve NULL, porque el concepto de servicio tal y como existe para SQL Server no se aplica a una Instancia administrada de SQL. Consulte @@SERVICENAME.SUSER_ID
es compatible. Devuelve NULL si el inicio de sesión de Microsoft Entra no está ensys.syslogins
. Consulte SUSER_ID.SUSER_SID
no se admite. Se devuelven los datos incorrectos, lo cual es un problema temporal conocido. Consulte SUSER_SID.
Restricciones del entorno
Subnet
- No se puede colocar ningún otro recurso (por ejemplo, máquinas virtuales) en la subred en la que ha implementado SQL Managed Instance. Implemente estos recursos con una subred diferente.
- La subred debe tener un número de direcciones IP disponibles suficiente. El mínimo es tener al menos 32 direcciones IP en la subred.
- El número de núcleos virtuales y tipos de instancias que se pueden implementar en una región tiene algunas restricciones y límites.
- Hay una configuración de red que se debe aplicar en la subred.
Red virtual
- La red virtual se puede implementar mediante el modelo de recursos. El modelo clásico no admite la implementación de red virtual.
- Después de crear una instancia de SQL Managed Instance, no se admite el traslado de esa instancia o la red virtual a otro grupo de recursos o suscripción.
- En el caso de las instancias de SQL Managed Instance hospedadas en clústeres virtuales creados antes del 22 de septiembre de 2020, no se admite el emparejamiento global de redes virtuales. Se puede conectar a estos recursos a través de ExpressRoute o de red virtual a red virtual a través de puertas de enlace de red virtuales.
Grupos de conmutación por error
Las bases de datos del sistema no se replican en la instancia secundaria de un grupo de conmutación por error. Por lo tanto, los escenarios que dependen de objetos de las bases de datos del sistema son imposibles en la instancia secundaria, a menos que los objetos se creen manualmente en la secundaria.
tempdb
- El tamaño máximo del archivo de la base de datos del sistema de
tempdb
no puede ser mayor de 24 GB por núcleo en un nivel De uso general. El tamaño máximo detempdb
en un nivel Crítico para la empresa está limitado por el tamaño de almacenamiento de la Instancia administrada de SQL. El tamaño del archivo de registrotempdb
está limitado a 120 GB en el nivel de uso general. Algunas consultas podrían devolver un error si necesitan más de 24 GB por núcleo entempdb
o si producen datos de registro superiores a 120 GB. tempdb
siempre se divide en 12 archivos de datos: 1 principal, también denominado archivo de datosmaster
, y 11 archivos de datos no principales. La estructura de archivos no se puede modificar y los archivos nuevos no se pueden agregar atempdb
.- Metadatos TempDB optimizados para memoria, una característica nueva de base de datos en memoria de SQL Server 2019, no se admite.
- Los objetos creados en la base de datos
model
no se pueden crear automáticamente entempdb
después de un reinicio o una conmutación por error, porquetempdb
no obtiene su lista de objetos inicial de la base de datosmodel
. Debe crear los objetos entempdb
manualmente después de cada reinicio o de una conmutación por error.
msdb
Los siguientes esquemas de la base de datos del sistema de msdb
en SQL Managed Instance deben ser propiedad de sus respectivos roles predefinidos:
- Roles generales
- TargetServersRole
- Roles fijos de base de datos
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
- Roles de DatabaseMail:
- DatabaseMailUserRole
- Roles de Integration Services:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Importante
El cambio de los nombres de roles predefinidos, los nombres de esquema y los propietarios de esquemas por parte de los clientes afectará al funcionamiento normal del servicio. Los cambios que se realicen en estos se revertirán a los valores predefinidos en cuanto se detecten, o bien en la siguiente actualización del servicio en la última para garantizar el funcionamiento normal del servicio.
Registros de error
Una Instancia administrada de SQL coloca información detallada en los registros de errores. Existen muchos eventos internos del sistema que se archivan en el registro de errores. use un procedimiento personalizado para leer los registros de errores que filtran algunas entradas que no son pertinentes. Para obtener más información, vea Instancia administrada de SQL – sp_readmierrorlog o Extensión de Instancia administrada de SQL (versión preliminar) para Azure Data Studio.
No se admite cambiar el número de registros de errores retenidos.