まず、私はデータベースの初心者です。よろしくお願いします。
可用性グループに完全復旧モードのsolarwinds SQL windows 2017データベースがあります。データベースは約2GBです。
昨日、私はログファイルを120 GBまで継続的に拡大するプロセスを実行しました。
この問題を将来的に防ぐために、私は:
...まあ、私は誤ってログバックアップを30分ごとにエラーになるように構成し、それがログファイルを最大サイズに満たすのを許可したと思いますか
「データベース 'SolarWindsOrion'のトランザクションログは 'XTP_CHECKPOINT'が原因でいっぱいです」というエラーを受け取りました。
ログファイルを圧縮できず、ログファイルをより大きなサイズに更新することもできません(同じエラーメッセージが表示されます)
私は最善の行動方針は何であるか、そして解決されたら将来この問題を防ぐために他に何かする必要がある場合はどうなのかと思っています。
私は最善の行動方針は何であるか、そして解決されたら将来この問題を防ぐために他に何かする必要がある場合はどうなのかと思っています。
Kin Shah が言及したように、
解決するには、ログのサイズを無制限に変更し、チェックポイントを実行して、ログのバックアップを取ります(おそらく少数)。なぜtlogサイズに上限を設けるのですか?
ログサイズを無制限に設定し、ログを2GBに制限しないで、定期的なログバックアップを実行すると、問題が解決します。
あなたの場合、それはまだ不可能でした。
サイズを無制限に変更しようとすると、同じエラーが発生します。
エラー
「XTP_CHECKPOINT」が原因で、データベース「SolarWindsOrion」のトランザクションログがいっぱいです。
一時的な解決策は 別のログファイルの追加 であり、ログのバックアップを取り、元のログファイルのサイズを変更します。
ログファイルを作成し、ログバックアップを取り、サイズを無制限に変更し、ログファイルを削除する例
USE [master]
GO
ALTER DATABASE [DB_NAME] ADD LOG FILE ( NAME = N'DB_log2', FILENAME = N'F:\Log1\DB_log02.ldf' , SIZE = 65536KB , FILEGROWTH = 65536KB );
GO
ALTER DATABASE [DB_NAME] MODIFY FILE ( NAME = N'DB_log', MAXSIZE = UNLIMITED);
GO
BACKUP LOG [DB_NAME] TO DISK = '\\LogBackupLocation\DB_LogIssue.trn';
USE [DB_NAME]
GO
ALTER DATABASE [DB_NAME] REMOVE FILE [DB_log2]
GO
--The file 'DB_log2' has been removed.
それはトリックをしたようです。前進する最善のアプローチに関する限り。 30秒ごとに国境を越えたバックアップが行われたので(当初の計画どおり)、この問題が今後発生するのを防ぐ必要がありますか?
最大サイズを2GBに保つ場合、Always On可用性グループの設定と一部のトランザクションのサイズによって異なります。
ログファイルの最大サイズを無制限に設定し、それが大きくなる可能性のある別のログドライブに設定するのが最適です。ログバックアップのスケジュールに関する限り、30秒で十分です。