SQL レプリケーションがUnmodeledDataに関連するエラーで失敗する

バージョン 3

    検証バージョン

    LANDESK Management Suite 2016


    事象 

    レプリケーション処理(SQL Server レプリケーション)が、次のようなエラーで失敗することがある。

     

    エラー:

    The process could not bulk copy into table '"dbo"."UNMODELEDDATASnapshot"'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20037)

    Get help: http://help/MSSQL_REPL20037

    Batch send failed

    Violation of UNIQUE KEY constraint 'UQ_UnmodeledData'. Cannot insert duplicate key in object 'dbo.UNMODELEDDATA'. The duplicate key value is (4210706, 6952, <NULL>, 648beee3-0671-446c-92e3-76951f4a4dc5). (Source: MSSQLServer, Error number: 2627)

    Get help: http://help/2627

    To obtain an error file with details on the errors encountered when initializing the subscribing table, execute the bcp command that appears below. Consult the BOL for more information on the bcp utility and its supported options. (Source: MSSQLServer, Error number: 20253)

    Get help: http://help/20253

    bcp "LDMS_ROLLUP"."dbo"."UNMODELEDDATASnapshot" in "\\CORESERVER\ReplData\unc\CORESERVER\20150811103502\UNMODELEDDATACSO_255.bcp" -e "errorfile" -t"\n<x$3>\n" -r"\n<,@g>\n" -m10000 -SMAD-REAL-LDDB -T -w (Source: MSSQLServer, Error number: 20253)

     

     

     

    原因

    現在、レプリケーション処理には以前のエントリをクリアする機能は含まれておりません。これに対応する改善は将来的に実装される予定です。

    現状では、手動で関連するレコード(UnmodeledDataに関連するデータ)を処理する必要があります。


     

    解決策

    1. SQL Server の Management Studio を起動し、ロールアップコアサーバのデータベースに接続する

    2. ロールアップデータベースにて次のSQLクエリを実行する

     

    例) SELECT * FROM METASYSTEMS

     

    3. ロールアップ処理が失敗したコアサーバのSYSTEMGUID を探し、それをコピーする

    4. ロールアップデータベースにて次のSQLクエリを実行する
      ※ xxx の部分に SYSTEMGUID を入れます

     

    例)'DELETE FROM UNMODELEDDATA WHERE CoreGUID = 'XXXXXXXXXXXX' 

     


    英文ドキュメント:

    SQL Replication Fails with an error for UnmodeledData