For the purposes of cost estimation, risk assessment and project management it’s important to understand the scope of a database migration project.
From a practical perspective we distinguish between a database upgrade and a database migration because an upgrade generally requires no data movement whereas a database migration always involves data movement. Because of this a database migration has a higher level of cost, effort and risk.
A database upgrade is where we move from one version of a database product to a more recent version of the same product. We make a distinction between a minor version upgrade (for example, a maintenance upgrade or database patch) and a major version upgrade which we also refer to as a version migration as it can often require data migration.
A database migration is where we move some or all workload from one database environment to a completely separate environment. This means that a database migration will always require movement of data. A database migration can often include a database upgrade. During a migration we might change the version and type of operating system, the infrastructure (e.g. hardware, firmware and networking), the database deployment architecture (e.g. replication topology, back-up and recovery technology, application connectivity architecture etc.), the database version or even the database product itself.
Migrating database workload and database applications to cloud infrastructure is another example of a database migration project that requires data movement. Cloud migration projects have their own set of unique challenges and opportunities.