sql >> Databasteknik >  >> RDS >> Sqlserver

Kan inte krympa "skrivskyddad" databas | Krympa transaktionslogg när du använder AlwaysOn Availability Group

Jag fick " Kan inte krympa "skrivskyddad"-databas ”-fel under Krymp transaktionslogg när du använder AlwaysOn Availability Group.

Förminska transaktionsloggen när du använder AlwaysOn Availability Group

Transaktionsloggen för SQL Server-storleken var mycket stor, jag måste krympa den för att minska storleken. Men min databas använder AlwaysOn Availability Group, så jag kunde inte krympa den på grund av följande fel.

Jag har använt följande SQL-skript, du kan krympa SQL Server MDF, NDF eller LDF med hjälp av följande skript eller SQL Server Management Studio-verktyg.

USE [MSDB]
DECLARE @i INT;
set @i=199960
print @i
while(@i>199900)
begin
DBCC SHRINKFILE (N'MSDB_log.trn' ,@i)
set @[email protected]
print @i
end

TITLE: Microsoft SQL Server Management Studio
------------------------------

Shrink failed for LogFile 'KAS_CLIENT_log'. (Microsoft.SqlServer.Smo)

For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=15.0.18206.0+((SSMS_Rel).191029-2112)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Shrink+LogFile&LinkId=20476

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Cannot shrink 'read only' database 'MSDB'. (Microsoft SQL Server, Error: 7992)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.5026&EvtSrc=MSSQLServer&EvtID=7992&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Kan inte krympa "skrivskyddad"-databasen

Det här felet är relaterat till skrivskyddad databas, för att lösa detta fel kan du failover instansen och du kan göra den skrivskyddade databasen till primär med hjälp av följande inlägg.

SQL Server AlwaysOn ( Tillgänglighetsgrupp ) Arkitektur och Steg-för-steg-installation -3 Manuell misslyckande över steg

När du utför Always On Failover kan du krympa transaktionsloggfilen eftersom den här databasen nu har varit primär databas och lässkrivläge, så du kan enkelt krympa den.

Vill du lära dig Microsoft SQL Server DBA-handledningar för nybörjare, läs följande artiklar.

SQL Server ( MSSQL DBA ) Databashandledning för nybörjare Databasadministratörer


  1. 2 sätt att returnera rader som endast innehåller icke-alfanumeriska tecken i MariaDB

  2. Hur man utför rullande uppgraderingar för MySQL

  3. Sväva högre i molnet med MariaDB SkySQL

  4. ExecuteNonQuery för SELECT SQL-sats som returnerar inga rader