Database vendor conversion
Any direction between SQL Server, Db2 and Oracle. Here is exactly what moves.
Written to be quoted in your scoping paper: the specification, the rework list by object class, the three gates on the night, and the register of what has to be re-proved before the change closes. Rows carry stable codes, so you can cite DBC-6 in an email and we both know what it means.
Specification
Platforms, prerequisites and the evidence produced
Scope
- Source and target
- Microsoft SQL Server, IBM Db2, Oracle Database. Any of the three to any other.
- Version envelope
- The versions in IBM system requirements for your Maximo 7.6.1.x or MAS Manage release.
- Schema converted
- The Maximo schema as Database Configuration built it, custom objects and attributes included.
- Outside the database
- DOCLINKS attachments, a filesystem, on their own verified track.
Target prerequisites
- Oracle
- AL32UTF8 character set, schema owner and tablespaces created before the load.
- IBM Db2
- UTF-8 codeset and 32K pagesize tablespaces for the Maximo schema.
- Microsoft SQL Server
- A case-insensitive collation, with READ_COMMITTED_SNAPSHOT enabled on the Maximo database.
- Why it matters
- Collation and codeset decide sort and comparison. Wrong ones surface in reports, not at load time.
Keys and sequences
- Oracle and Db2
- Native database sequences generate Maximo unique IDs.
- SQL Server
- The MAXSEQUENCE table does the same job.
- Conversion action
- Rebuilt above the highest value present, then proved before Maximo starts.
- Cost of skipping it
- Duplicate key errors on the first record a planner creates.
Prerequisites follow IBM system requirements for your release. Where yours differ, the assessment records the difference.
Rework list
What converts unchanged, and what needs hands on it first
The data moves mechanically. The cost sits in everything around it that assumed the old platform, catalogued item by item before a window is booked.
| Ref | Object class | Converts unchanged | Work required before cutover |
|---|---|---|---|
| DBC-1 | Maximo tables, indexes and views built by Database Configuration | Yes, structure and data | None, though index and constraint rebuild is usually the long pole, measured in rehearsal. |
| DBC-2 | Custom objects and attributes added through Database Configuration | Yes | None, provided they were made through the application, not by direct DDL. |
| DBC-3 | Objects created by direct DDL outside Database Configuration | No | Catalogued, then recreated and registered properly on the target, or retired with a named owner agreeing. |
| DBC-4 | Automation Scripts in Python or JavaScript | Yes | Scripts issuing native SQL are rewritten against the target dialect. |
| DBC-5 | Saved queries, conditional expressions, SLA and escalation conditions | The definitions, yes | Native functions do not travel: NVL, ISNULL, ROWNUM, TOP and date arithmetic, rewritten one by one. |
| DBC-6 | BIRT and bespoke reports | The designs, yes | Reports with native SQL in the dataset are rewritten. Usually the largest single line of rework. |
| DBC-7 | Integration framework object structures, publish channels and enterprise services | Yes | JDBC endpoints and drivers repointed, along with anything reading the database directly. |
| DBC-8 | DOCLINKS attachments | Not part of the database | Copied ahead of the freeze, topped up during it, verified by count, size and retrieval. |
Cite these codes in your scoping paper. They are stable and will not be renumbered.
The number everyone asks for first
Where the freeze window comes from
Maximo is closed to the business from the freeze until the gates pass on the target. Four measured things set the length: extract and load for your volume, index and constraint rebuild, statistics, and how much verification you want before reopening.1 No window is quoted before the second rehearsal has been timed on a production-size copy, stage by stage, and contingency is added to measured numbers rather than to estimated ones.2
Notes
- 1 DOCLINKS volume affects preparation more than the window itself, because the bulk copy runs before the freeze and only the delta is taken during it.
- 2 Rollback stays available for as long as nobody has written to the target. After that, returning is a restore plus a replay of everything done since, which is why the go decision belongs to a named change authority at the gate.
Cutover night
Three gates, and what each one refuses
Each is a decision by a named person against evidence in front of them, not by whoever has been awake longest and would like it finished.
-
Gate 1 Gate 1, freeze and restore point
Signed by The change authority named on the approved window.
Passes
The rehearsed run may start against production.
Held back
Starting before the source backup is verified restorable, or integrations paused in the recorded order.
-
Gate 2 Gate 2, technical verification
Signed by The MaxIron conversion lead, on the evidence sheet.
Passes
Maximo and the integrations may be started on the target platform.
Held back
Any unexplained variance in row counts, checksums or DOCLINKS counts against the baseline.
-
Gate 3 Gate 3, business functional pass
Signed by The named business users who agreed the scenarios in rehearsal.
Passes
The estate opens to users on the target platform.
Held back
A partial pass. A failed scenario nobody can explain returns the estate to the restore point.
Retest register
What has to be re-proved on the target before the change closes
Seven rows, each closed with evidence attached to the change record.
| Ref | Item | Evidence that closes it |
|---|---|---|
| RT-1 | Row counts and checksums | Per-table comparison against the pre-freeze baseline, every variance explained in writing. |
| RT-2 | Attachment retrieval | File count and byte size against the source, plus a document opened from the oldest year present. |
| RT-3 | Autokey generation | A work order, asset and purchase order created on the target, proving sequences resumed above the highest existing value. |
| RT-4 | Reports rewritten under DBC-6 | Each run on the target and compared, output to output, against the source copy. |
| RT-5 | Expressions rewritten under DBC-5 | Run against the same record set on both platforms and compared row for row. |
| RT-6 | Integrations | A handshake and one live transaction each way on every interface, restarted in the order paused. |
| RT-7 | Weekly and month-end work | Long-cycle jobs watched through their first run during hypercare rather than assumed. |
RT-7 is why hypercare runs with the engineers who ran the cutover, not a handover team meeting the estate for the first time.
Boundaries
Three things a conversion is not
Each is cheaper to settle in the scoping paper than at the gate.
It is not a performance project
Any change in response times comes from the infrastructure you land on and the tuning done alongside. Where performance is the objective, it is scoped and measured as its own workstream.
It is not a release upgrade
The release is unchanged across the window, which is what makes the gate evidence meaningful. Where both are needed they are sequenced, so a platform fault and an upgrade fault never present as one symptom. See Maximo to MAS upgrade.
Direct database consumers are yours to name
A warehouse extract, a reporting tool or a bespoke dashboard reading the database directly is invisible to an assessment run inside Maximo. Every one you list before rehearsal is one not found on the night.
Database vendor conversion, frequently asked questions
- Which conversions do you support?
- Any direction between Microsoft SQL Server, IBM Db2 and Oracle Database, at the versions listed in IBM system requirements for the Maximo 7.6.1.x or MAS Manage release you run. The conversion moves the platform under an unchanged release.
- How much downtime should we plan for?
- There is downtime, and the window comes from a timed rehearsal on a production-size copy. Extract and load, index and constraint rebuild, statistics and verification are timed separately, so the long pole is known rather than guessed at.
- Can this be combined with an MAS upgrade?
- Yes, and it often is, but as two sequenced pieces of work. The conversion lands either before the upgrade begins or after the upgraded estate is stable. See Maximo to MAS upgrade for the route options.
- Do you need production data to rehearse?
- A production-size copy, because timings taken from a subset are not timings. Where data cannot leave a boundary, the rehearsal environment is built inside your controls: a constraint to design around, not a reason to skip it.
Usually scoped alongside
Work that lands in the same programme
Bring your source, your target, and the window you can secure.
Send your source platform, your target, the database size and the longest freeze the operation will give you. We come back with the rework list against the DBC codes above, the rehearsal schedule, and where your window is likely to be tight.
Bring this to the first call
- Source and target database vendors, and who set that direction
- Maximo or MAS release, database size, growth rate and DOCLINKS size
- The longest freeze window the operation can realistically give you
- Any list you hold of reports, scripts and tools that read the database directly