Historian: Backfill history blocks from Tier 1 to Tier 2
|
Internal Use Only |
Description
If you have a Tier1 historian that has been running for a while and add a Tier2 Historian later, the Tier1 historian will only replicate new/updated data to the Tier 2. This is a WAD, and the Tier 1 will not send the Tier 2 all of the old history that it has from before the Tier 2 was put in place. Below is a script from Wonderware to force the Tier1 to send the data by adding all of the tags to the ReplicationSyncRequest table.
Important Notes:
1) I've not been able to get this to work (-DP)
2) This is unsupported by Wonderware
3) Wonderware TechSupport warned that this could corrupt history blocks if you try to send data from blocks created in an older version.
The Script:
/*
!!! This script makes UNSUPPORTED modifications to your Runtime database !!!
!!! USE AT YOUR OWN RISK !!!
*/
-- The query below will create synch queue entries for ALL configured replication for the specified time period
-- This has the effect of "back replicating".
--
-- NOTES:
--
-- 1. The time period must be expressed in UTC.
-- 2. Recommend aligning on history block boundaries. Easy to find that with: SELECT * FROM HistoryBlock WHERE wwTimeZone='UTC'
-- 3. Use caution in the amount of time included in each INSERT operation--it is easy to overload the server when the queue entries
-- span too much time (e.g. months). It is not clear what contributes to overloading (duration does, but is it linked to tag count, too?
-- number of values?).
-- 4. The indication that the server is overloaded is that after the initial jump, the number of synch queue entries GROWS rather than shrinks.
-- To recover, "Shutdown and disable" Historian and DELETE all records from 'ReplicationSyncRequest'
INSERT INTO [Runtime].[dbo].[ReplicationSyncRequest]
([ReplicationTagEntityKey]
,[RequestVersion]
,[ModStartDateTimeUtc]
,[ModEndDateTimeUtc]
,[EarliestExecutionDateTimeUtc]
,[ExecuteState])
SELECT ReplicationTagEntityKey, 0, '2009-12-01 08:00:00', '2009-12-23 23:25:40',GETUTCDATE(),2
FROM ReplicationTagEntity
/*
-- Get a list of all the outstanding queue entries. Use this and the 'SysReplicationSyncQueue%' system tags to monitor progress
SELECT * FROM ReplicationSyncRequestInfo
Here are a few examples of the results from the 'ReplicationSyncRequestInfo' query above.
ReplicationSyncRequestKey ReplicationTagEntityKey RequestVersion ModStartDateTimeUtc ModEndDateTimeUtc EarliestExecutionDateTimeUtc ExecuteState
9273 20401 1 2010-01-25 08:00:02.000 2010-01-26 07:59:58.000 2010-01-29 10:47:35.700 2
9274 60929 1 2010-01-25 16:00:00.000 2010-01-25 16:00:01.000 2010-01-29 10:47:35.600 2
ReplicationSyncRequestKey ReplicationTagEntityKey RequestVersion ModStartDateTimeUtc ModEndDateTimeUtc EarliestExecutionDateTimeUtc ExecuteState
9276 60929 1 2010-01-25 17:00:00.500 2010-01-25 18:05:01.000 2010-01-29 10:56:58.700 2
9277 20401 1 2010-01-25 08:00:02.000 2010-01-26 07:59:58.000 2010-01-29 10:56:58.700 2
*/
Author |
|
Publish Date | |
Applies to Software |
|
Applies to Version | |
Applies to System/Module | |
Article Version |
|
************************************************************************************************************************************************************