私はSQLServer 2008を持っており、メンテナンスソリューションにはOlaHallengrenスクリプトを使用しています。最近、このサーバーにある15のデータベースのうち、3つ(システムデータベースではなくユーザーデータベース)に2つの変更を加えました。ミラーリングを削除し、リカバリモデルをフルからシンプルに変更しました。これにより、SQL Server ManagementStudioでsqlコマンドが実行されました。
これらの変更を行った日から、システムデータベースの整合性チェックと完全バックアップのためのOlaHallengrenのSQLジョブで奇妙な動作に気づきました。理解するには、ジョブを実行して終了するには2分で十分でしたが、同じジョブで約10分かかるようになりました。その結果、この時点でSQLサーバーのI/Oが増加し、タイムアウトが発生します。
次のコマンドを実行するとシステムデータベースに影響を与える可能性があるかどうかはわかりません。どこにも見つかりませんでした。
ALTER DATABASE <database_name> SET PARTNER OFF
and
USE master ;
ALTER DATABASE <database_name> SET RECOVERY SIMPLE ;
ここで、database_nameは、システムではなく、変更を加えたユーザーデータベースです。
これらの変更がシステムデータベースの何かに影響を与える可能性はありますか?
これらの変更は、システムバックアップの実行にかかる時間には影響しません。
最初のステップとして、整合性チェックとシステムバックアップが同時に実行されないようにジョブスケジュールを変更します。
また、これらのいずれかと同時に実行されている他のジョブがないことを確認してください。
監視が行われていない場合は、バックアップの実行中にサーバーにジャンプし、サーバーの負荷を確認してください。フルを1時間ほど前に戻して、時間の変更によって違いが生じるかどうかを確認することもできます。
SQL Serverで1週間調査し、さらに3つのデータベースをオフラインにした後、msdbシステムデータベースのインデックスを再構築することで、最終的に問題を修正したようです。インデックスの断片化を調べたところ、ほとんどが平均50%を超えていました。インデックスの再構築、整合性のためのSQLジョブ、および完全バックアップシステムデータベースは、通常の時間完了に戻りました。
根本原因を定義しなかったため、問題が残っています。インデックスを再構築した後、問題が解決したようです。