Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nie można zmniejszyć bazy danych „tylko do odczytu” | Zmniejsz dziennik transakcji podczas korzystania z grupy dostępności AlwaysOn

Mam ” Nie można zmniejszyć bazy danych „tylko do odczytu” ” błąd podczas zmniejszania dziennika transakcji podczas korzystania z grupy dostępności AlwaysOn.

Zmniejsz dziennik transakcji podczas korzystania z grupy dostępności AlwaysOn

Dziennik transakcji o rozmiarze SQL Server był bardzo duży, muszę go zmniejszyć, aby zmniejszyć jego rozmiar. Ale moja baza danych korzysta z grupy AlwaysOn Availability Group, więc nie mogłem jej zmniejszyć z powodu następującego błędu.

Użyłem następującego skryptu SQL, możesz zmniejszyć SQL Server MDF, NDF lub LDF za pomocą następującego skryptu lub narzędzia SQL Server Management Studio.

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

Nie można zmniejszyć bazy danych „tylko do odczytu”

Ten błąd jest powiązany z bazą danych tylko do odczytu. Aby rozwiązać ten błąd, możesz przełączyć instancję w tryb awaryjny i ustawić bazę danych tylko do odczytu na podstawową, korzystając z następującego postu.

Architektura SQL Server AlwaysOn (grupa dostępności) i instalacja krok po kroku – 3 ręczne kroki awaryjne

Kiedy wykonujesz zawsze włączone przełączanie awaryjne, możesz zmniejszyć plik dziennika transakcji, ponieważ teraz ta baza danych była podstawową bazą danych i trybem odczytu i zapisu, dzięki czemu możesz ją łatwo zmniejszyć.

Czy chcesz poznać samouczki Microsoft SQL Server DBA dla początkujących, a następnie przeczytać poniższe artykuły.

Samouczki dotyczące baz danych SQL Server ( MSSQL DBA ) dla początkujących Administratorzy baz danych


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PARSE() vs CAST() vs CONVERT() w SQL Server:jaka jest różnica?

  2. Konfiguracja poczty bazy danych w SQL Server

  3. Instrukcja CASE w klauzuli WHERE w SQL Server 2008

  4. Procedura składowana, która eksportuje dane do plików csv eksportuje tylko do jednego pliku

  5. jak uzyskać daty rozpoczęcia i zakończenia wszystkich tygodni między dwiema datami w serwerze SQL?