none
データベースのコンテインメントの種類が変更できない RRS feed

  • 質問

  • いつもお世話になります。

    Win2012R2サーバ上のSQLServer2016SP1のデータベースでコンテインメントの種類をなし→部分に変更したいのですが以下のエラーが

    発生し変更できません。

    インスタンスでは包含データベースをTRUEにしており、そのインスタンスには10個のデータベースが存在していますが1つのデータベースだけが

    変更できない状況です。この事象についてご存知でしたらご教授頂きたくお願い致します。

    ■エラー内容

    データベース'XXXXXX'のALTERに失敗しました。(Microsoft.sqlserver.smo)

    追加情報:

    Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。

    (Microsoft.sqlserver.smo)

    ALTER DATABASEステートメントが失敗しました。(MicrosoftSQL Serverエラー:5069)

    2017年9月22日 1:26

すべての返信

  • 包含データベースの運用経験はないですが、単純にそのデータベースに接続中のユーザーいるということはないでしょうか?
    もしくは、以下のようなことかもしれません。

    ALTER DATABASE の SET オプション (Transact-SQL)
    https://msdn.microsoft.com/ja-jp/library/bb522682(v=sql.120).aspx

    ーー 引用開始 ------
    部分的
    データベースは包含データベースです。レプリケーション、変更データ キャプチャ、または変更の追跡が有効になっているデータベースの包含状態を PARTIAL に設定すると失敗します。エラー チェックは、エラーを 1 つ検出すると停止します。包含データベースの詳細については、「包含データベース」をご覧ください。
    ーー 引用終了 ------


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年9月22日 1:55
  • ご返信ありがとうございます。

    確認しましたがレプリケーション、変更データ キャプチャ、または変更の追跡は有効になっておりませんでした。

    またユーザ接続中の場合に同様の変更をすると、「データベースをロックできませんでした」的なエラー表示となるようなので今回事象とは違うようです。

    一つ気になるのはコンテインメントの種類をなし→部分にした際のSQLのログを見ると以下のStack dumpが出力されていました。この状況について何か分かりますでしょうか。

    ■ダンプ内容

    Setting database option contained to partial for database 'DB_NAME'.
    2017-09-22 05:27:34.73 spid58      Using 'dbghelp.dll' version '4.0.5'
    2017-09-22 05:27:34.74 spid58      ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER01\MSSQL\LOG\SQLDump0008.txt
    2017-09-22 05:27:34.74 spid58      SqlDumpExceptionHandler: Process 58 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
    2017-09-22 05:27:34.74 spid58      * *******************************************************************************
    2017-09-22 05:27:34.74 spid58      *
    2017-09-22 05:27:34.74 spid58      * BEGIN STACK DUMP:
    2017-09-22 05:27:34.74 spid58      *   09/22/17 05:27:34 spid 58
    2017-09-22 05:27:34.74 spid58      *
    2017-09-22 05:27:34.74 spid58      *
    2017-09-22 05:27:34.74 spid58      *   Exception Address = 00007FF9740FD1FA Module(sqllang+00000000003AD1FA)
    2017-09-22 05:27:34.74 spid58      *   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION
    2017-09-22 05:27:34.74 spid58      *   Access Violation occurred reading address 0000000000000080
    2017-09-22 05:27:34.74 spid58      * Input Buffer 148 bytes -
    2017-09-22 05:27:34.74 spid58      *             ALTER DATABASE [DB_Name] SET CONTAINMENT = PARTIAL WITH NO_WA
    2017-09-22 05:27:34.74 spid58      *  IT
    2017-09-22 05:27:34.74 spid58      * 

    2017年9月26日 5:27