sql >> データベース >  >> RDS >> Sqlserver

「読み取り専用」データベースを縮小できない| AlwaysOn可用性グループの使用中にトランザクションログを縮小する

    取得しました」「読み取り専用」データベースを縮小できません 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)初心者向けデータベースチュートリアルデータベース管理者


    1. SQLServerデータベースで有効/無効なチェック制約のリストを取得する方法-SQLServer/TSQLチュートリアルパート86

    2. MongoクラスターをSSLで保護する

    3. 大きな(14 GB)MySQLダンプファイルを新しいMySQLデータベースにインポートするにはどうすればよいですか?

    4. oracle10gで文字列の日付を日付形式に変換する方法