Importing Snapshots during migration process
Here is a sample 'create snapshot' statement from an export dump:
CREATE SNAPSHOT "TVP219UNITMEASURE" USING ("TVP219UNITMEASURE", (3,
'IVPAP.WORLD', 1, 0, "VPO999", "TVP219UNITMEASURE", '2003-08-01:
2760, '1950-01-01:12:00:00', '', 0, (2, "CD_COMPANY_SYSTEM",
"CD_COMPANY_SYSTEM", 0, 321, 0, "CD_UNIT_OF_MEASURE",
321, 0)), 2228321, 4, ('1950-01-01:12:00:00', 372, 0, 0,
REFRESH FAST WITH PRIMARY KEY AS
SELECT t.* FROM VPO999.TVP219UNITMEASURE@CISOV_LINK t
I have had a tar open with Oracle for about a month now in an attempt to understand this process. I am now hoping that all the people who used to work for Oracle and have real hands-on knowledge of this process are now happily working elsewhere, earning more money, and monitoring this forum......
Basically this question came up after the migration we performed of a test system with simple read-only snapshots (188.8.131.52 on Sun Solaris 5.6 to 184.108.40.206 on HPUX 11i) using export/import.
Oracle advised that as long as the db_name, sid and tnsnames was the same in the target database, then the snapshots would import and continue to replicate where they left off.
In actual fact, this was incorrect information, the global_name of the target database was different (it had a .world domain extension) and this meant that upon importing, the snapshots registered themselves as completely new entities on the master site - and we lost data between the time of the export (when replication had been suspended) from the source and the time that these snapshots were created in the target.
We would like to clarify exactly what happens when the snapshot is imported, but it appears that not even the 'Replication Product Manager in US' can answer this question.
If you look at the import statement, 372 corresponds to the snapshot_id on the master site.
Does anyone know what criteria the registration process uses to match this snapshot with the old snapshot that is already registered?
Also, surely the recreation of the snapshots should have used the last_refresh time and picked up all log updates since that timestamp?
Can anyone clarify this for us? If you can its worth a beer or two.
Many thanks in advance,