MSSQL en Linux: error de CREATE DATABASE. No se pudo asignar suficiente espacio en disco para una nueva base de datos en los discos indicados

Microsoft.SQLServer.Linux.EventRule.DBEngine.CREATE_DATABASE_failed._Could_not_allocate_enough_disk_space_for_a_new_database_on_the_named_disks_1_5_Rule (Rule)

Este error se produce cuando no hay espacio suficiente en el dispositivo para crear la base de datos modelo.

Knowledge Base article:

Resumen

Este error se produce cuando no hay espacio suficiente en el dispositivo para crear la base de datos modelo.

Resoluciones

El procedimiento de control de este error depende de si el error se produce en una base de datos de usuario o en tempdb.

Si el error se produce en una base de datos de usuario

Si el error se produce en tempdb:

Si ha vuelto a mover tempdb desde un dispositivo a cualquier dispositivo predeterminado y no cuenta con espacio suficiente en él (2 MB), Microsoft SQL Server intentará crear tempdb en otro dispositivo. Si no dispone de un dispositivo con al menos 2 MB libres, SQL Server no se iniciará. Inicie SQL Server mediante la opción de configuración mínima -f

Puede liberar un mínimo de 2 MB en el dispositivo o crear uno nuevo que disponga, al menos, de 2 MB. Si crea un dispositivo nuevo, asegúrese de que se especifica como dispositivo predeterminado, como en este ejemplo:

sp_diskdefault new_device_name, defaulton

Si no se especifica ningún valor predeterminado, SQL Server enviará un mensaje de memoria insuficiente (puede pasarlo por alto) y, a continuación, moverá tempdb a la memoria RAM automáticamente.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Prioridad

Define la prioridad de alerta.

1

Gravedad

Define la gravedad de alerta.

2

Hora de sincronización

Hora de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

200

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Linux: error de CREATE DATABASE. No se pudo asignar suficiente espacio en disco para una nueva base de datos en los discos indicados
{0}
CommentMom2017ID='{9722C604-8246-478A-A7CC-36B31045A847}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.CREATE_DATABASE_failed._Could_not_allocate_enough_disk_space_for_a_new_database_on_the_named_disks_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{9722C604-8246-478A-A7CC-36B31045A847}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>1803</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.CREATE_DATABASE_failed._Could_not_allocate_enough_disk_space_for_a_new_database_on_the_named_disks_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>