【トレースフラグ 902】──データベースへのスクリプトアップグレードをスキップする:SQL Serverトレースフラグレファレンス(17)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は「トレースフラグ902の詳細と使い方」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブル対策を踏まえた「SQL Serverのトレースフラグ」の使いこなしTipsを紹介していきます。
今回は「トレースフラグ902」の詳細と使い方を解説します。
トレースフラグ902は、「データベースへのスクリプトアップグレード」をスキップする設定です。SQL Serverの全てのバージョンに対応します。
SQL Serverに対してService Pack(以下、SP)やCumulative Update(以下、CU)を適用する際、スクリプトレベルのアップグレードがデータベースに対して実行される場合があります。アップグレード時に何らかの問題が発生すると、SPやCUの適用に失敗し、さらにはSQL Server自体が起動しなくなってしまうこともあります。
トレースフラグ902を有効にすると、スクリプトアップグレードをスキップできるため、スクリプトアップグレードのエラーによってSQL Serverが起動しないような状況でも、暫定的に起動できます。
このトレースフラグは暫定対処用のトレースフラグです。障害の対処策として公開されている目的以外で使用することは、推奨しません(*1)。
設定可能なスコープ
設定方法 | 可/不可 | 要/不要 |
---|---|---|
スタートアップ | ○ | − |
グローバルスコープ | × | − |
セッションスコープ | × | − |
クエリスコープ | × | − |
トレースフラグ 3604/3605 | − | 不要 |
動作例
SQL Server 2012や同2014で、SSISDB(SQL Server Integration Services DB)をAlwaysOnの可用性データベースとして構成していると、SSISDBに対する修正が含まれたSPやCUなどの適用に失敗する場合があります。例えばSQL Server 2012 SP1でSSISDBを可用性データベースとして構築している環境にSP2を適用すると、図1のように失敗しました。
Windowsイベントビューアーで、OSログの「Application」項目を確認すると、「エラー912」や「エラー3417」が記録されていました(図2、図3)。
「エラー912」には、「アップグレード手順'SSIS_hotfix_install.sql'でエラー945、状態2、重大度25が発生したため、データベース'master'のスクリプトレベルのアップグレードが失敗しました。このエラー状態は深刻で、通常の操作に影響を与える可能性があるので、データベースはオフラインになります。'master'データベースのアップグレード中にこのエラーが発生した場合は、SQL Serverインスタンス全体を開始できません。スクリプトのアップグレード手順が最後まで実行されるように、これまでのエラーログエントリを参考にしてエラーを調査し、適切な方法で対処して、データベースを再起動してください」と記載されていました。
「エラー3417」には「masterデータベースを復旧できません。SQL Serverを実行できません。masterデータベースを、完全バックアップを使用して復元するか、修復または再構築してください。masterデータベースを再構築する方法の詳細については、SQL Serverオンラインブックを参照してください」と記載されていました。
エラーメッセージを基に検索すると、先ほどのMSDNブログなどが見つかります。ブログの手順にあるように、SP2が正常に適用された環境に戻すには、トレースフラグ902を有効化してから、SQL Serverを起動します。その後、SSISDBを可用性グループから削除し、SP2を再適用、可用性グループにSSISDBを再参加させます。
筆者紹介
内ヶ島 暢之(うちがしま のぶゆき)
ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP for Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。
椎名 武史(しいな たけし)
ユニアデックス株式会社所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- それでは“ダメ”な「トラブル対応例」
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、「SQL Serverで起こりがちなトラブル」を厳選して、具体的な対処方法を紹介していきます。第1回目は「トラブルを適切に対処するための考え方」を解説します。 - 「パラメータースニッフィング」によって、あるタイミングから処理が遅くなった(パフォーマンストラブル)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「あるタイミングで処理遅延が発生し、それが継続して発生するようになってしまった場合の対処例.2」を解説します。 - I/Oボトルネックの病巣はこれで究明できる