none
トランザクションレプリケーションにおける、スナップショットエージェントの実行でエラー RRS feed

  • 質問

  • お世話になります。

    以下の環境でトランザクションレプリケーションを運用しております。

    OS:Windows2008R2 EnterPrise 64bit (中国語版)

    SQLServer2008R2 Standard(英語版)

    パブリッシャ、ディストリビュータとして使用。

    スナップショットの保存先は同一サーバーのDドライブになります。

    パブリケーションとなるDBは15GBほどです。

    サブスクライバは遠隔地にあります。

    配信テーブルのスキーマに変更があり、テーブル変更後、再配信するためにスナップショットエージェントを実行しました。

    実行中にレプリケーションモニタ上で「Failed to read column data」を出力しました。

    その後、自動でスナップショットエージェントが再実行された形になり、レプリケーションモニタ上では2つのスナップショットエージェントが実行されているような表示になりました。

    その状態になってしまうと、SQLServerのインスタンスにアクセスができなくなってしまいます。20分ほど待ってみましたが現象は変わりませんでした。SSMSでsa権限でのアクセスも不可の状態です。タスクマネージャで確認したところ、sqlserver.exeのプロセスがCPU100%で占有している状態でした。通常は10%以下です。

    OSの再起動をしたところアクセスはできるようになりましたが、スナップショットが作成されていない状態なので、サブスクライバのほうにデータが配信できていない状態です。

    MSRepl_errorsを参照すると、以下のようなエラーが出力されていました。

    Message: Failed to read column data  Stack:   
    在 Microsoft.SqlServer.Replication.Snapshot.SqlServer.NativeBcpOutProvider.ThrowNativeBcpOutException(CConnection* pNativeConnectionWrapper)    
    在 Microsoft.SqlServer.Replication.Snapshot.SqlServer.NativeBcpOutProvider.BcpOut(String strBcpObjectName, String strBcpObjectOwner, String strBaseBcpObjectName, Boolean fUnicodeConversion, String strDataFile, String strLoadOrderingHint, String strWhereClause, Boolean useTableLockHint, Int32 bcpFileFormatVersion)    
    在 Microsoft.SqlServer.Replication.Snapshot.SqlServer.BcpOutThreadProvider.DoWork(WorkItem workItem)    
    在 Microsoft.SqlServer.Replication.WorkerThread.NonExceptionBasedAgentThreadProc()    
    在 Microsoft.SqlServer.Replication.AgentCore.BaseAgentThread.AgentThreadProcWrapper()

    Message: Shared Memory Provider: 管道的另一端上无任何进程。  Stack:

    Message: Communication link failure  Stack:

    この現象は何度か発生しています。OS再起動後、再実行すると問題なく終了するときもあります。

    データ量が多くなってきていることも原因の1つかなと思っていますが、わからないです。

    この現象の原因と解決法はどのようなことが考えられるでしょうか。

    以上、よろしくお願いいたします。

    2015年7月28日 6:10

回答

  • 自己解決いたしましたので報告します。

    下記に同様の事例がありました。

    ttps://social.msdn.microsoft.com/Forums/sqlserver/en-US/a05ec1b4-7ba3-4ac6-89f4-aeadd12eb12b/failed-to-read-blob-column-failed-to-read-column-data-errors-by-snapshot-agent?forum=sqlreplication

    SQLServerの不具合によるものでした。SP3を当てたところ、正常にスナップショットエージェントが終了いたしました。

    • 回答としてマーク ika5662 2015年7月30日 22:49
    2015年7月30日 22:49