<!DOCTYPE html> <html> <body style="font-family: Arial, sans-serif; font-size: 14px; max-width: 900px; margin: 40px auto; padding: 0 20px;"> <h1>Data Migration Service</h1> <p><strong>Author:</strong> Michael Dombaugh<br> <strong>Version:</strong> 1.0<br> <strong>Last Updated:</strong> 2026-03-11<br> <strong>Status:</strong> Initial Requirements for Review</p> <hr> <h2>Requirements</h2> <p><strong>1. PROCESSING:</strong> Support batch data movement between any two databases across two supported platforms (SQL Server / Oracle).</p> <p><strong>2. INPUTS:</strong></p> <ul> <li>COUNTRY (configurable WHERE clause filter for this use case)</li> <li>VERSION (configurable WHERE clause filter for this use case)</li> <li>SOURCE DB</li> <li>TABLES: discrete list or ALL</li> <li>TARGET DB</li> <li>TARGET SCHEMA</li> </ul> <p><strong>3. TRIGGER:</strong> Initiated by CDR upon successful product build.<br> <em>(Approval process TBD - Dashboard Control Required)</em></p> <p><strong>4. PROCESS STEPS:</strong></p> <ul> <li>Define a sequential set of steps to be executed during migration</li> <li>Steps are configurable and manageable via the dashboard</li> <li>Support insertion of stored procedure calls at any step position on either the source or target side</li> <li>Steps can be added, removed, and reordered at runtime</li> </ul> <p><strong>5. LOCKING AVOIDANCE:</strong> POC to evaluate partition swapping or import table swap mechanism to avoid table locking during batch insert.</p> <p><strong>6. NETWORK CONNECTIVITY:</strong> Cerner network or VPN required to access MIT databases.</p> <p><strong>7. RECOVERY:</strong> Track which tables were successfully moved; on failure, resume with only the remaining incomplete tables. Support restart of a migration that processes only the failed tables in a batch.</p> <p><strong>8. VALIDATION:</strong> Upon completion of data movement, perform record count comparison between source and target for each table moved, by COUNTRY and VERSION. Report any discrepancies.</p> <p><strong>9. DASHBOARD:</strong> Provide visibility and control over sequential process steps, trigger management, migration status, and the ability to define new migration processes.</p> <p><strong>10. CURRENT USE CASE:</strong></p> <ol type="a"> <li>Move a defined set of countries from MIT Global_Distribute to OCI GLOBAL_DISTRIBUTE.</li> <li>Call an archive stored procedure to remove the oldest data version after migration is complete (or implement via partition swap - TBD based on POC).</li> <li>Mark the migration as complete in a tracking table in OCI GLOBAL_DISTRIBUTE.</li> </ol> <p><strong>11. ALTERNATE USE CASE:</strong></p> <ol type="a"> <li>Temporary update from Gen1 Global_Research to Gen1 GLOBAL_PHARMACY, while implementing real-time replication for this.</li> </ol> </body> </html>