取得しました」「読み取り専用」データベースを縮小できません AlwaysOn可用性グループの使用中にトランザクションログを縮小中にエラーが発生しました。
AlwaysOn可用性グループの使用中にトランザクションログを縮小する
SQL Serverのサイズのトランザクションログが非常に大きかったので、サイズを小さくするには縮小する必要があります。しかし、私のデータベースはAlwaysOn可用性グループを使用しているため、次のエラーのためにデータベースを縮小できませんでした。
次のSQLスクリプトを使用しました。次のスクリプトまたはSQLServerManagement Studioツールを使用して、SQL Server MDF、NDF、またはLDFを縮小できます。
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フェイルオーバーを実行すると、トランザクションログファイルを縮小できます。これは、このデータベースがプライマリデータベースであり、読み取り/書き込みモードになっているため、簡単に縮小できるためです。
初心者向けのMicrosoftSQLServer DBAチュートリアルを学習してから、次の記事をお読みください。
SQL Server(MSSQL DBA)初心者向けデータベースチュートリアルデータベース管理者