ロールアップ複製エラーのトラブルシューティング

ロールアップ データベース データを直接修正しないでください

Ivanti は、パブリッシャからサブスクライバへの単方向トランザクション複製として、SQL Server 複製を実装しています。サブスクライバで複製されたデータを修正すると、これらの変更がパブリッシャに複製されません。さらに、パブリッシャはこのような変更を認識しません。これらの変更をロールバックする場合は、SQL Server の Replication Monitor を使用して、そのパブリッシャからのスナップショットを無効にし、新しいスナップショットを強制する必要があります。

エンドポイント マネージャ バージョンへのアップグレード後の ProductSnapshot 複製エラー

次のエラー メッセージが表示される場合:

プロセスは表 '"dbo"."PRODUCTSnapshot"' に一括コピーできませんでした。

この問題は、アップグレードされたコアの ReplProductV ビューが、ロールアップ データベースの古い ProductSnapshot 表と同期していないためです。

このエラーを修正するには、ビューをスキーマと一致させる必要があります。ビューと表の両方で sp_help を実行し、"Nullable" 列が一致することを確認します。一般的に、Version および ProductGUID 列が同期していません。ロールアップ データベースの表を修正できます (ただし、各アップグレードされていないコアのビューも変更する必要があります)。

alter table productsnapshot alter column version nvarchar9255) not null

alter table productsnapshot alter column productguid nvarchar(255) not null

あるいは、アップグレードされたコアでビューを修正します。ビューを修正するには、ローカル発行のプロパティ ダイアログで、そのビューの複製を停止する必要があります。

ファイルサイズが大きすぎるための複製エラー

Replication Monitor でこのエラーが発生した場合、問題は、コアのビューとロールアップの表に一致しないスキーマがあることです。列の長さが一致しない場合、通常は、列の NOT NULL 属性の不一致が原因です。コアの Repl<表名>V とロールアップの表名の間で、すべての列定義が一致する必要があります。

末尾が Snapshot の表がエラーに示されている場合は、その表はロールアップで一時表として使用されています。コアの対応するビューには、単語「Snapshot」が含まれません (例: ProductSnapshot = ReplProductV)。

ISA と IDE 表の複製エラー

問題:古い (またはアップグレードされた) バージョンの Ivanti データベースを使用している場合、ISA および IDE 表で複製エラーが発生することがあります。ISA および IDE 表の ID 列は2011年に名前が変更されました。

解決策:複製の実行中に、ISA と IDE 表の両方のサブスクリプションと項目を削除する必要があります。ビューを変更し、SELECT 句で古い ID 列名を使用します。ビューで UNIQUE CLUSTERED 索引を作成し、項目と項目フィルタを再度追加します。サブスクリプションを更新します。最後に、[スナップショット エージェント ステータス] ウィンドウ内で [開始] を手動でクリックするか、スナップショット エージェントが変更を検出するのを待機できます。データが正常に複製されたことを確認するには、Replication Monitor を確認してください。

以下のスクリプトを使用して、問題を修正します。sp_dropsubscription プロシージャでサブスクライバとデータベースの名前 (<your subscriber server name> と <your subscriber database name>) を使用していることを確認します。

--ISA 表のサブスクリプションと項目の削除

sp_dropsubscription 'LDMS', 'ISACSO', '<your subscriber server name>', '<your subscriber database name>'

go

sp_droparticle @publication = 'LDMS', @article='ISACSO'

go

 

--ISA 表のビューを変更し、select リストで古い ISAPorts_Idn 列を使用

alter VIEW [dbo].[ReplISAV] (Computer_Idn, ISA_IDN, DeviceNum, Description, Designation, Location, Manufacturer, Type, COREGUID)

WITH SCHEMABINDING AS

SELECT isnull((b.Computer_Idn + 2097152), b.Computer_Idn) Computer_Idn, isnull(cast(b.ISAPorts_IDN as int), cast(0 as int)) ISAPorts_IDN, isnull(b.DeviceNum, 0) DeviceNum, b.Description, b.Designation, b.Location, b.Manufacturer, b.Type, isnull(cast(a.SYSTEMGUID as uniqueidentifier), cast(cast(0 as binary) as uniqueidentifier)) COREGUID

FROM dbo.METASYSTEMS a, dbo.ISA b

WHERE a.SYSTEM_IDN = 0

GO

 

--クラスタ化された索引の再構築

create unique clustered index PKReplISAV on ReplISAV (CoreGuid, Computer_Idn, ISA_Idn)

go

 

--項目とフィルタを発行に追加

sp_addarticle @publication = 'LDMS', @article='ISACSO', @source_object='ReplISAV', @destination_table='ISA', @type='indexed view logbased', @sync_object='ReplISAV', @pre_creation_cmd='delete', @schema_option=0x00, @status=24, @ins_cmd='CALL sp_LDins_ISA', @del_cmd='CALL sp_LDdel_ISA', @upd_cmd='MCALL sp_LDupd_ISA', @fire_triggers_on_snapshot='FALSE'

go

sp_articlefilter @publication = 'LDMS', @article='ISACSO', @filter_name='CoreGuidISA', @filter_clause='CoreGuid = cast(''C192290A-8FAC-4ABF-8183-D6B911ACFE73'' as uniqueidentifier)'

go

 

--IDE 表のサブスクリプションと項目の削除

sp_dropsubscription 'LDMS', 'IDECSO', '<サブスクライバ サーバ名>', '<サブスクライバ データベース名>'

go

sp_droparticle @publication = 'LDMS', @article='IDECSO'

go

 

--IDE 表のビューを変更し、select リストで古い IDEPorts_Idn 列を使用

ALTER VIEW [dbo].[ReplIDEV] (Computer_Idn, IDE_IDN, DeviceNum, Description, Designation, Location, Manufacturer, Type, ProdName, COREGUID)

WITH SCHEMABINDING AS

SELECT isnull((b.Computer_Idn + 2097152), b.Computer_Idn) Computer_Idn, isnull(cast(b.IDEPorts_Idn as int), cast(0 as int)) IDEPorts_IDN, isnull(b.DeviceNum, 0) DeviceNum, b.Description, b.Designation, b.Location, b.Manufacturer, b.Type, b.ProdName, isnull(cast(a.SYSTEMGUID as uniqueidentifier), cast(cast(0 as binary) as uniqueidentifier)) COREGUID

FROM dbo.METASYSTEMS a, dbo.IDE b

WHERE a.SYSTEM_IDN = 0

GO

 

--クラスタ化された索引の再構築

create unique clustered index PKReplIDEV on ReplIDEV (CoreGuid, Computer_Idn, IDE_Idn)

go

 

--項目とフィルタを発行に追加

sp_addarticle @publication = 'LDMS', @article='IDECSO', @source_object='ReplIDEV', @destination_table='IDE', @type='indexed view logbased', @sync_object='ReplIDEV', @pre_creation_cmd='delete', @schema_option=0x00, @status=24, @ins_cmd='CALL sp_LDins_IDE', @del_cmd='CALL sp_LDdel_IDE', @upd_cmd='MCALL sp_LDupd_IDE', @fire_triggers_on_snapshot='FALSE'

go

sp_articlefilter @publication = 'LDMS', @article='IDECSO', @filter_name='CoreGuidIDE', @filter_clause='CoreGuid = cast(''C192290A-8FAC-4ABF-8183-D6B911ACFE73'' as uniqueidentifier)'

go

 

--サブスクリプションを更新

sp_refreshsubscriptions @publication='LDMS'

go