Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Die schreibgeschützte Datenbank kann nicht verkleinert werden | Verkleinern des Transaktionsprotokolls bei Verwendung der AlwaysOn-Verfügbarkeitsgruppe

Ich bekomme ” Die schreibgeschützte Datenbank kann nicht verkleinert werden ” Fehler beim Verkleinern des Transaktionsprotokolls während der Verwendung der AlwaysOn-Verfügbarkeitsgruppe.

Transaktionsprotokoll bei Verwendung der AlwaysOn-Verfügbarkeitsgruppe verkleinern

Das Transaktionsprotokoll der SQL Server-Größe war sehr groß, ich muss es verkleinern, um seine Größe zu verringern. Aber meine Datenbank verwendet die AlwaysOn-Verfügbarkeitsgruppe, daher konnte ich sie aufgrund des folgenden Fehlers nicht verkleinern.

Ich habe das folgende SQL-Skript verwendet. Sie können das SQL Server MDF, NDF oder LDF mit dem folgenden Skript oder dem SQL Server Management Studio-Tool verkleinern.

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
------------------------------

Die schreibgeschützte Datenbank kann nicht verkleinert werden

Dieser Fehler hängt mit der schreibgeschützten Datenbank zusammen. Um diesen Fehler zu beheben, können Sie ein Failover der Instanz durchführen und die schreibgeschützte Datenbank mithilfe des folgenden Beitrags auf die primäre Datenbank umstellen.

Architektur von SQL Server AlwaysOn (Verfügbarkeitsgruppe) und Schritt-für-Schritt-Installation – 3 manuelle Failover-Schritte

Wenn Sie das Always On-Failover durchführen, können Sie die Transaktionsprotokolldatei verkleinern, da diese Datenbank jetzt die primäre Datenbank und der Lese-/Schreibmodus ist, sodass Sie sie problemlos verkleinern können.

Möchten Sie Microsoft SQL Server DBA-Tutorials für Anfänger lernen, dann lesen Sie die folgenden Artikel.

SQL Server ( MSSQL DBA ) Database Tutorials for Beginners Database Administrators