Join the DZone community and get the full member experience.Join For Free
data migration is the process of transferring data from one system to the other, which can necessitate changing the storage type, formats, database, application or computer systems.
reasons for embarking on a data migration project might be due to a need to upgrade hardware platforms or servers, change of storage equipment, database upgrade or migration to a new software application. it is a complex undertaking and it’s a branch of it in which the processes and software tools being used are continually evolving.
making mistakes in a data migration project can lead to loss of data and this might be very costly for a business and organization embarking on the project. nonetheless, if choices are made carefully and the project is adequately planned, the migration project would be completed in a timely manner without any problem afterwards.
data migration can be in the form of
- storage migration: with the current advancement in storage technologies, it is not uncommon for businesses to choose to take advantage of more efficient and effective storage technologies, thus, moving data from one hardware storage platform to another, which can be local disk, iscsi or fibre channel (fc). this would necessitate the movement of blocks of data from one storage medium to another, the format of the data is usually not changed in this process.
- database migration: this is the most common form of migration, it entails the upgrade of a database version or moving from one database vendor to another. a database migration project might lead to change in the data format which may or may not affect the behavior of the application and as such a validation process is required at the end of the migration procedure. a vendor change can be from mysql, sybase or oracle to sql server.
- application migration: every software application has, and can operates its own specific data model or schema, changing the application vendor can trigger a migration project, say changing a business’ erp vendor from sap to sage will definitely require migration of the data from the existing application to the new application. application migration can also be in the form of application environment change such as moving an application from an on premise server to a cloud provider’s environment.
data migration methodology
data migration usually involves four steps or processes
assessment: this phase involves information gathering about the migration environment, a thorough assessment of the data to be migrated, its current format and the new format it will take after migration, risks assessment is also done to evaluate any challenges that might be faced in the process. at the end of this phase, a report is usually generated to determine the cost, risks and time frames of the migration.
- evaluate and analyze the data to be migrated
- evaluate the current and future environments
- define appropriate standards
planning: this process usually involves the determining the migration requirements, time schedules, while identifying the current and future environments. at the stage, the hardware or software needed to successfully carry out the migration is identified. it is a good practice for the it staff to carry the business owners along in the planning process, this might help determine potential problems.
- document plan
- notify users of the migration schedule
- set a realistic time frame
- prepare a test plan
migration: this is the actual migration phase also known as “move”, at the stage the it staff(s) involved in the migration would configure the software tools and or hardware required for the migration. software tools can speed up the process while reducing or eliminating business downtime.
- revise migration plan
- configure migration environment
- perform backup or replication of data to be migrated
- initiate migration process
- prepare migration report
validation: data validation is required upon completion of the migration to ensure the integrity of the data. a migration statistics and reports should be prepared, this should include what worked and what didn’t during the migration. the steps used in the migration should be duly documented to simplify future migrations of the same pattern. acceptance testing should be done by the business owners. verify database schema and validate that the data was migrated correctly
- test data to ensure integrity
- perform roll back if data corruption occurs
choosing appropriate data migration software
the choice of the migration software should take into consideration the os environments, source and target hardware platforms and the database vendors and versions in the case of a database migration project.
a key requirement to consider is the ability to roll back the migration should in case something goes wrong. this is a great concern in the eventuality of a problem or an error, the migration software should be able to terminate, restart or roll back entirely the process.
the performance of the software should be considered when making choice, how quickly the data is copied from the source environment to the target environment. performance should be balanced against system overhead and network bandwidth.
storage migration software tools
- rsync: its open source and provides fast incremental file transfer.
- ibm softek transparent data migration facility can migrate data at the volume or block level, supports multiple platforms.
- sanxfer: can migrate server data volumes and is optimized for cloud environments.
- hitachi data systems universal replicator: provides storage array-based replication.
database migration software tools
most database vendors ship migration tools with their products, nevertheless, there are some readily available commercial software tools
- microsoft sql server migration assistant (ssma) for migrating mysql or oracle database to sql server.
- mysql workbench wizard for easy database migration to mysql.
- oracle sql developer provide tool for migrating non oracle databases to oracle.
- edb migration toolkit for database migration to postgres.
- there are other commercial products used for database migration such as flyway, swissql, esf database migration toolkit, ispirer’s sqlways
application migration software tools
application migration is usually complex and complicated and as such application vendors normally provide custom tools to migrate data from one application to the other,
data migration best practices
- migration projects are time consuming and as such a proper planning is crucial to the successful implementation of the project.
- it is important to understand the data being migrated, the current and future storage as well as the current and future form or format.
- a duplication or replication of the data is advised before migration. implement data migration policies so data is moved in an orderly manner.
- a proper shutdown or downtime plan should be put in place for duration of the migration project, with which the business would not have access to the data.
- accuracy of the migrated data should be ensured using test and validation procedures.
- adequate documentation of the entire process could simplify related future projects.
data migration is often a very complex process, thus a good working cooperation is required among the it staffs, the business owners and any stakeholder involved in the migration. following best practices and choosing the suitable software for the project can facilitate smooth and timely completion of the project.
Published at DZone with permission of Ayobami Adewole, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
JSON to PDF Magic: Harnessing LaTeX and JSON for Effortless Customization and Dynamic PDF Generation
Integration Testing Tutorial: A Comprehensive Guide With Examples And Best Practices
How To Use the Node Docker Official Image
MLOps: Definition, Importance, and Implementation