Migrate an Oracle database from Amazon EC2 to Amazon RDS for MariaDB using AWS DMS and AWS SCT
Created by Veeranjaneyulu Grandhi (AWS) and vinod kumar (AWS)
Environment: PoC or pilot | Source: Databases: Relational | Target: Amazon RDS for MariaDB |
R Type: Re-architect | Workload: Oracle | Technologies: Migration; Databases |
AWS services: Amazon RDS |
Summary
This pattern walks you through the steps for migrating an Oracle database on an Amazon Elastic Compute Cloud (Amazon EC2) instance to an Amazon Relational Database Service (Amazon RDS) for MariaDB DB instance. The pattern uses AWS Data Migration Service (AWS DMS) for data migration and AWS Schema Conversion Tool (AWS SCT) for schema conversion.
Managing Oracle databases on EC2 instances requires more resources and is more costly than using a database on Amazon RDS. Amazon RDS makes it easy to set up, operate, and scale a relational database in the cloud. Amazon RDS provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching, and backups.
Prerequisites and limitations
Prerequisites
An active AWS account.
A source Oracle database with instance and listener services up and running. This database should be in ARCHIVELOG mode.
Familiarity with Using an Oracle Database as a Source for AWS DMS.
Familiarity with Using Oracle as a Source for AWS SCT.
Limitations
Database size limit: 64 TB
Product versions
All Oracle database editions for versions 10.2 and later, 11g and up to 12.2, and 18c. For the latest list of supported versions, see Using an Oracle Database as a Source for AWS DMS and the AWS SCT version table in the AWS documentation.
Amazon RDS supports MariaDB Server Community Server versions 10.3, 10.4, 10.5, and 10.6. For the latest list of supported versions, see the Amazon RDS documentation.
Architecture
Source technology stack
An Oracle database on an EC2 instance
Target technology stack
Amazon RDS for MariaDB
Data migration architecture
Target architecture
Tools
AWS Schema Conversion Tool (AWS SCT) makes heterogeneous database migrations predictable by automatically converting the source database schema and a majority of the database code objects—including views, stored procedures, and functions—to a format compatible with the target database. After converting your database schema and code objects using AWS SCT, you can use AWS DMS to migrate data from the source database to the target database to complete your migration projects. For more information, see Using Oracle as a Source for AWS SCT in the AWS SCT documentation.
AWS Database Migration Service (AWS DMS) helps you migrate databases to AWS quickly and securely. The source database remains fully operational during the migration, minimizing downtime to applications that rely on the database. AWS DMS can migrate your data to and from the most widely used commercial and open-source databases. AWS DMS supports homogeneous migrations such as Oracle to Oracle, as well as heterogeneous migrations between different database platforms, such as Oracle or Microsoft SQL Server to Amazon Aurora. To learn more about migrating Oracle databases, see Using an Oracle Database as a Source for AWS DMS in the AWS DMS documentation.
Epics
Task | Description | Skills required |
---|---|---|
Identify versions and database engines. | Identify the source and target database versions and engines. | DBA, Developer |
Identify the replication instance. | Identify the AWS DMS replication instance. | DBA, Developer |
Identify storage requirements. | Identify storage type and capacity. | DBA, Developer |
Identify network requirements. | Identify network latency and bandwidth. | DBA, Developer |
Identify hardware requirements. | Identify hardware requirements for the source and target server instances (based on the Oracle compatibility list and capacity requirements). | DBA, Developer |
Identify security requirements. | Identify network-access security requirements for the source and target databases. | DBA, Developer |
Install drivers. | Install the latest AWS SCT and Oracle drivers. | DBA, Developer |
Determine a backup strategy. | DBA, Developer | |
Determine availability requirements. | DBA, Developer | |
Choose an application migration/switchover strategy. | DBA, Developer | |
Select the instance type. | Select the proper instance type based on capacity, storage, and network features. | DBA, Developer |
Task | Description | Skills required |
---|---|---|
Create a virtual private cloud (VPC). | The source, target, and replication instances should be in the same VPC and in the same Availability Zone (recommended). | Developer |
Create security groups. | Create the necessary security groups for database access. | Developer |
Generate a key pair. | Generate and configure a key pair. | Developer |
Configure other resources. | Configure subnets, Availability Zones, and CIDR blocks. | Developer |
Task | Description | Skills required |
---|---|---|
Launch the EC2 instance. | For instructions, see the Amazon EC2 documentation. | Developer |
Install the Oracle database. | Install the Oracle database on the EC2 instance, with required users and roles. | DBA |
Follow the steps in the task description to access Oracle from outside of the EC2 instance. |
| DBA |
Update the Amazon EC2 public DNS. | After the EC2 instance restarts, the public DNS changes. Make sure to update the Amazon EC2 public DNS in | DBA, Developer |
Configure the EC2 instance security group. | Configure the EC2 instance security group so the replication instance and required clients can access the source database. | DBA, Developer |
Task | Description | Skills required |
---|---|---|
Start the RDS DB instance. | Configure and start the Amazon RDS for MariaDB DB instance. | Developer |
Create tablespaces. | Create any necessary tablespaces in the Amazon RDS MariaDB database. | DBA |
Configure a security group. | Configure a security group so the replication instance and required clients can access the target database. | Developer |
Task | Description | Skills required |
---|---|---|
Install drivers. | Install the latest AWS SCT and Oracle drivers. | Developer |
Connect. | Enter appropriate parameters and then connect to the source and target. | Developer |
Generate a schema conversion report. | Generate an AWS SCT schema conversion report. | Developer |
Correct the code and schema as necessary. | Make any necessary corrections to the code and schema (especially tablespaces and quotation marks). | DBA, Developer |
Validate the schema. | Validate the schema on the source versus the target before loading data. | Developer |
Task | Description | Skills required |
---|---|---|
Set a connection attribute. | For full-load and change data capture (CDC) or just for CDC, set an extra connection attribute. For more information, see the Amazon RDS documentation. | Developer |
Enable supplemental logging. | Enable supplemental logging on the source database. | DBA, Developer |
Enable archive log mode. | For full-load and CDC (or just for CDC), enable archive log mode on the source database. | DBA |
Create and test endpoints. | Create source and target endpoints and test the connections. For more information, see the Amazon DMS documentation. | Developer |
Create a replication task. | When the endpoints are connected successfully, create a replication task. For more information, see the Amazon DMS documentation. | Developer |
Choose replication type. | Choose CDC only or Full load plus CDC in the task to capture changes for continuous replication only, or for full load and ongoing changes, respectively. | Developer |
Start and monitor the task. | Start the replication task and monitor Amazon CloudWatch logs. For more information, see the Amazon DMS documentation. | Developer |
Validate the data. | Validate the data in the source and target databases. | Developer |
Task | Description | Skills required |
---|---|---|
Follow the chosen application migration strategy. | DBA, App owner, Developer | |
Follow the chosen application cutover/switchover strategy. | DBA, App owner, Developer |
Task | Description | Skills required |
---|---|---|
Validate the schema and data. | Ensure that the schema and data are validated successfully in the source versus the target before project closure. | DBA, Developer |
Gather metrics. | Gather metrics for time to migrate, percentage of manual versus tool tasks, cost savings, and similar criteria. | DBA, App owner, Developer |
Review documentation. | Review the project documents and artifacts. | DBA, App owner, Developer |
Shut down resources. | Shut down temporary AWS resources. | DBA, Developer |
Close the project. | Close the migration project and provide any feedback. | DBA, App owner, Developer |