12月 19, 2021

SQL Server DBA日記

データベースバックアップの実行は、DBAによって最も頻繁に実行されるタスクの一つです。 ほとんどの場合、DBAチームがデータベースメンテナンスアクティビティを実行するためのメンテナンスウィンドウは、通常は少なくなります。 多くの場合、データベースの保守タスクは規定されたウィンドウを超えて実行され、アプリケーションチームはこれにつ

私たちの環境でも、通常、アプリケーションチームは”私たちの重要な仕事は今後数分で始まろうとしています。 1つのデータベースのバックアッププロセスがほとんどのリソースを利用していることがわかります。 それは私たちの仕事に影響を与える可能性がありますので、あなたはそれを殺”

彼らにとっては、毎日実行されるバックアップジョブです。 しかし、データベースのバックアップがどれほど貴重であるかを知っているのはDBAだけです。 私は余分なバックアップが厳しい状況から私を助けたか、私にいくつかの危険な提案を進めるために自信を与えた回数を覚えていません。

誰かがそのバックアップジョブの実行時間や既に実行されている作業量を尋ねると、SQL Server2000の最良のオプションは、バックアップスクリプトのstats しかし、誰かがバックアップスクリプトにstatsパラメーターを含めるのを忘れた場合、SQL Server2000のバックアップ完了状態を確認する方法はありません。

ただし、SQL Server2005以降では、この動作が変更されています。 SQL Server2005に含まれる多くの素晴らしいDmvの1つはsys.dm_exec_requestsです。 バックアッププロセスのうち(そのことについては、任意のSQLコマンド)を簡単に追跡することができます。 ここではまったく同じことをするスクリプトがあります。

SELECT A.NAME,B.TOTAL_ELAPSED_TIME/60000 AS ,B.ESTIMATED_COMPLETION_TIME/60000 AS ,B.PERCENT_COMPLETE as ,(SELECT TEXT FROM sys.dm_exec_sql_text(B.SQL_HANDLE))AS COMMAND FROM MASTER..SYSDATABASES A, sys.dm_exec_requests BWHERE A.DBID=B.DATABASE_ID AND B.COMMAND LIKE '%BACKUP%' order by percent_complete desc,B.TOTAL_ELAPSED_TIME/60000 desc

私は、私たちのほとんどがすでにこのスクリプトの一部または他のバージョンを非常に長い間使用していることを知っています。 このスクリプトは最近、David Rummelが大規模なデータベースのバックアップを追跡するのを助けたので、これはどこか他の誰かを助けるかもしれな

コメントを残す

メールアドレスが公開されることはありません。