none
Windows Internal Database(WID) で発生するトラブルに関する Tips RRS feed

  • 質問

  • こんにちは。SQL Server サポート チームです。

    今回は、Windows Internal Database(WID) で発生するトラブルに関する Tips をご紹介します。

    WID SQL Server と比較し機能が制限されております。

    この機能制限に抵触しデータベースが復旧待ちになり、アプリケーションが動作しなくなるといったお問合せもたびたびございます。

    WID WSUS と組み合わせて利用するケースも多く、その中でも SUSDB へアクセスできないといったお問合せが SQL Server サポートチームに寄せられてきます。

    WSUS のメンテナンスや、WSUS のデータベース管理に際して、そもそも SUSDB へ接続できないといった状況の場合、今回の Tips がお役に立てば幸いです。

    WSUS のデータベースメンテナンスが必要な際は、下記手順にて Microsoft SQL Server Management Studio (SSMS) を利用します。

     

    WSUS データベースを簡単に操作するには (Windows Server 2012 )

    https://social.msdn.microsoft.com/Forums/ja-JP/f02afeaa-37e9-4ecd-bf95-39f1019ed385/wsus?forum=jpsccmwsus

     

    しかしながら、対象の SUSDB に接続する際に、「データベース SUSDB にアクセスできません。」といったエラーが発生することもあると思います。


    その際、SSMS からデータベースを展開した際に、SUSDB (復旧待ち) というステータスになっている場合には、以下の手順が有効となります。

    事象のメカニズムにつきましても、解消手順に続いて補足いたします。


     

    ===================================

    (復旧待ち) ステータス解消手順

    ===================================

    1. SSMS から[データベース] – [SUSDB] を右クリックし、[オフライン] を選択します。

    2. SSMS から再度 [SUSDB] を右クリックし、[オンライン] を選択します。

    3. SSMS [データベース] [SUSDB] [テーブル] [システムテーブル] [dbo.sysdiagrams] を右クリックし、 [削除] を選択します。

    または、下記のクエリを実行することで、dbo.sysdiagrams を削除します。

    ------- <クエリここから> -------

    USE SUSDB

    go

    DROP Table dbo.sysdiagrams

    -------------------------------

     

    事象発生のメカニズムについて

    前述いたしました通り WID には SQL Server に対して内部的な機能制限があります。

    WID では内部的に機能制限に抵触していないかを確認する処理が定期的に実施されています。

    その制限の一つにシステムテーブルへの変更を許可していないというものがございます。

    今回の事象については、SUSDB のシステムテーブルに dbo.sysdiagrams というシステムテーブルが

    追加されたことで、

    機能制限のチェックに抵触し、強制的に復旧待ちステータスとなります。

    一旦、オフラインからオンラインに手動で変更し SSMS 経由で制限に抵触している dbo.sysdiagrams

    削除することで、

    SUSDB へのアクセスが回復いたします。


    * ご参考情報

    SUSDB のメンテナンスを実施される方は、一般にトラブルシューティングなども実施いただくことも多いかと思います。

    イベントログや、WID error.log に以下のログが発生している場合にも、同様の事象が発生していると判断できます。

    *****

    2020-07-15 18:12:23.44 spid20s     Verification failed

    2020-07-15 18:12:23.44 spid20s    

    2020-07-15 18:12:23.44 spid20s     The following columns are unexpected:

        dbo.sysdiagrams.name.sys.sysname(256)

        dbo.sysdiagrams.principal_id.sys.int(4)

        dbo.sysdiagrams.diagram_id.sys.int(4)

        dbo.sysdiagrams.version.sys.int(4)

        dbo.sysdiagrams.definition.sys.varbinary(-1)

    2020-07-15 18:12:23.45 spid20s     Database verification script failed for database 'SUSDB'.

    *****

    日本語環境の Windows Server 2016 では、WID のログが error.log には日時以外の情報がほとんど出力されない不具合があります。

    以下のブログで情報を公開しておりますので、こちらもご参照ください。

     

    日本語環境の Windows Server 2016 WID のログが記録されない不具合について

    https://social.technet.microsoft.com/Forums/ja-JP/f29e1df3-798a-48c5-ba50-fab8eb0d257e/260852641235486298722265912398-windows-server-2016-12398-wid?forum=jpbidp















    2020年7月16日 1:29
    所有者