MSSQL in Linux: Il file di log del database è pieno. Eseguire il backup del log delle transazioni del database per recuperare spazio nel file di log

Microsoft.SQLServer.Linux.EventRule.DBEngine.Database_log_file_is_full._Back_up_the_transaction_log_for_the_database_to_free_up_some_log_space_1_5_Rule (Rule)

Lo spazio disponibile nel file di log delle transazioni specificato è esaurito.

Knowledge Base article:

Cause

Lo spazio disponibile nel file di log delle transazioni specificato è esaurito.

Risoluzioni

Per acquisire spazio, è possibile liberare spazio sull'unità disco contenente il file di log delle transazioni del relativo database. Questa operazione consente al sistema di recupero di aumentare automaticamente le dimensioni del file di log. In alternativa, è possibile liberare spazio aggiungendo un file di log o aumentando le dimensioni di un file di log esistente per il database specificato.

È possibile liberare spazio su disco nell'unità locale o in un'altra unità disco. Per liberare spazio su disco in un'altra unità:

Un'altra soluzione consiste nell'aggiungere un file di log al database specificato utilizzando la clausola ADD FILE dell'istruzione ALTER DATABASE. In alternativa, è possibile aumentare le dimensioni del file di log utilizzando la clausola MODIFY FILE dell'istruzione ALTER DATABASE e specificando la sintassi SIZE e MAXSIZE. L'aggiunta di un ulteriore file di log consente di aumentare le dimensioni del log esistente.

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

300

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

2

Tempo di sincronizzazione

Tempo di sincronizzazione

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

200

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL in Linux: Il file di log del database è pieno. Eseguire il backup del log delle transazioni del database per recuperare spazio nel file di log
{0}
CommentMom2017ID='{AE514F41-328C-4346-8F73-79EFD38BEFDE}';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.Database_log_file_is_full._Back_up_the_transaction_log_for_the_database_to_free_up_some_log_space_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{AE514F41-328C-4346-8F73-79EFD38BEFDE}';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>9002</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.Database_log_file_is_full._Back_up_the_transaction_log_for_the_database_to_free_up_some_log_space_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>