Advanced Database & Application Migration (ADAM) is an end-to-end migration system that facilitates migration preparation, migration implementation, and cutover migration.
- What type of cloud database do I select?
- How many cloud database instances and what specifications are required?
- What cloud database instance can I migrate each table to? How do I modify the table?
You may encounter these questions when preparing for migration. To help you find out the answers to these questions, ADAM provides two data collectors and an intelligent analysis platform.
The database collector collects information of source Oracle databases. The information includes operating environments, database objects, SQL statements, storage space, performance, and transactions. The database collector summarizes the overall status of the source Oracle databases. The database collector also processes the collected data to reduce data redundancy, enhance data security, and ensure data accuracy. For example, the collector removes duplicates, masks sensitive data, and checks data consistency.
The application collector collects the application framework and the runtime information. The information includes server performance, SQL statements in application code, runtime SQL call stacks, calls between applications, and calls between applications and databases. The application collector summarizes the overall status of the applications. The application collector also processes the collected data. For example, the collector removes duplicates, masks sensitive data, and checks data consistency.
Intelligent analysis platform
Based on the information that is collected from source Oracle databases and the runtime information that is collected from applications, the intelligent analysis platform provides the optimal destination database solution. To do this, the intelligent analysis platform provides three services: database evaluation, database transformation, and application evaluation and transformation.
- Source database profiling: After the database collector collects the information of a source database, ADAM analyzes the collected information and generates a profile for the source database. The profile includes the database performance, database capacity, Oracle features, database links, and a panoramic view of all database objects. The panoramic view shows the associations between objects and the Oracle features that are used by each object.
- Destination database selection: ADAM uses the information of source tables to calculate the required specifications of a destination. The specifications include the number of CPU cores, the memory size, and the disk size. Based on the required specifications, ADAM estimates the costs of each available destination database solution to facilitate cost analysis.
- Analysis of compatibility between source and destination databases: ADAM analyzes the compatibility between a source Oracle database and each available destination database solution. Available destination database solutions differ in the database type and version. An available destination database solution can be incompatible or fully compatible with the source database. In a migration plan, ADAM provides transformation suggestions (if exist) for an incompatible destination database solution.
Database transformation and migration
- Migration planning: By using database evaluation results, ADAM creates a plan for migrating data from source Oracle databases to destination databases. The migration plan includes a data type conversion solution that maximizes the compatibility between the source and destination databases. ADAM also provides a schema migration tool that automatically converts data types based on the migration plan.
- Migration plan verification: ADAM verifies the schema consistency between migration plans and source databases, and offers data merging suggestions if inconsistency occurs. This maximizes the schema consistency between the source and destination databases.
- Schema migration and revision: ADAM generates a data definition language (DDL) statement for each destination database based on the data type conversion solution in the migration plan. Then, ADAM connects to the destination database and create the database schema. During schema migration, ADAM allows you to revise the target data types if errors occur. This ensures a high success rate of schema migration.
- Data migration: ADAM is integrated with Data Transmission Service (DTS) and uses DTS to migrate data.
Application evaluation and transformation
- Application profiling: After the application collector collects application information, ADAM analyzes the application information and the WAR file of the application, and generates a profile for the application. The profile includes the software stack, system information, object overview, SQL operations, and call stacks. The application profiling feature provides dynamic analysis and static analysis. Dynamic analysis is based on the collected application information, and static analysis is based on the WAR file of the application.
- Application evaluation: During migration between heterogeneous databases, database transformation is required. The application evaluation feature identifies application code that needs transformation.
The intelligent analysis platform provides semi-automatic migration solutions that require only a few manual operations. You can estimate migration workloads and costs based on the migration solutions.
Features that ADAM provides during migration
After migration starts, the following challenges may occur due to migration engineers' unfamiliarity with systems to be migrated or due to a lack of experience in migration:
- How do I synchronize schemas and data from source databases to destination databases?
- What do I need to transform in source databases and how do I make the transformation?
- Are the requirements for migration met after transformation?
To address these challenges, ADAM provides an end-to-end migration tool that consists of three key modules:
- Compatibility analysis module: evaluates the compatibility of source Oracle objects with destination databases and provides migration suggestions.
- Object conversion module: converts source Oracle objects into objects that are supported by the destination database.
- Application migration module: migrates applications to destination databases.
Compatibility analysis module
Based on years of practice within Alibaba Group, the compatibility analysis module provides suggestions on the types of destination database to which each Oracle object can be migrated.
The compatibility analysis module analyzes compatibility for Oracle features and application scenarios.
To analyze feature compatibility, the module identifies the Oracle features that are used by database objects and provides suggestions on substitute features in destination databases.
To analyze application scenario compatibility, the module identifies the application scenario of each source database, and evaluates whether the application scenario is supported by destination databases. If not, the module provides suggestions on transformation.
The compatibility analysis module can be used independently.
Object conversion module
The object conversion module converts tables and other objects in the source Oracle database into objects that are supported by the destination database or into Java code. The object conversion module can automatically create table schemas in the destination database. Automatic creation of other objects in the destination database is coming soon.
Application migration module
The application migration module provides an auxiliary migration environment for migration engineers to accelerate the migration process. During the migration process, the application migration module collects requests to the source database in real time and returns call stacks. This allows you to identify the code that needs transformation. The application migration module also collects the SQL queries that correspond to the requests. The module analyzes the compatibility of the SQL queries with destination databases, returns the analysis results, and provides instructions on how to edit your application code. In addition, the application migration module collects the responses to the requests and collects performance data, so that you can compare the migrated application with the source application in functions and performance. The application migration module allows you to migrate multiple source databases to multiple destination databases. The module can route each SQL query to the appropriate destination database based on the queried objects. This simplifies the migration process by eliminating the need to directly connect an application to multiple databases.
Similar to a debugger, the application migration module provides suggestions on code modification and verifies the results in real time. This allows migration engineers to perform migration and verification in the development and test environments. If the business system passes all the AMS test cases, the migration process is completed.