Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Базата данни „само за четене“ не може да се свие | Свиване на дневника на транзакциите, докато използвате групата за наличност AlwaysOn

Получих ” ​​Не мога да свия базата данни „само за четене“ ” грешка по време на свиване на дневника на транзакциите при използване на AlwaysOn Availability Group.

Свиване на дневника на транзакциите при използване на AlwaysOn Availability Group

Регистърът на транзакциите с размер на SQL Server беше много голям, трябва да го свия, за да намаля размера му. Но моята база данни използва AlwaysOn Availability Group, така че не можах да я свия поради следната грешка.

Използвах следния SQL скрипт, можете да свиете SQL Server MDF, NDF или LDF, като използвате следния скрипт или инструмента 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
------------------------------

Не може да се свие базата данни „само за четене“

Тази грешка е свързана с базата данни само за четене, за да разрешите тази грешка, можете да преминете при отказ на екземпляра и можете да направите базата данни само за четене на Основна, като използвате следната публикация.

Архитектура на SQL Server AlwaysOn (група за наличност) и инсталация стъпка по стъпка -3 Ръководни стъпки за отказ

Когато изпълнявате Always On Failover, можете да свиете регистрационния файл на транзакциите, защото сега тази база данни е била основна база данни и режим на запис за четене, така че можете лесно да я свиете.

Искате ли да научите уроци за DBA на Microsoft SQL Server за начинаещи, след това прочетете следните статии.

SQL Server (MSSQL DBA) Уроци за база данни за начинаещи администратори на бази данни


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разберете типа данни на колоните, върнати в набор от резултати в SQL Server

  2. Как SCHEMA_ID() работи в SQL Server

  3. Какви са случаите на използване за избор на CHAR пред VARCHAR в SQL?

  4. Техническо сравнение:Microsoft Access 2016 срещу SQL Server 2016

  5. MIN и MAX агрегатни функции в SQL Server