Q: Will AWS Database Migration Service help me convert my Oracle PL/SQL and SQL Server T-SQL code to Amazon Aurora or MySQL and PostgreSQL stored procedures?
Yes, part of the AWS Database Migration Service is the free AWS Schema Conversion Tool (SCT) that automates the conversion of Oracle PL/SQL and SQL Server T-SQL code to equivalent code in the Amazon Aurora / MySQL dialect of SQL or the equivalent PL/pgSQL code in PostgreSQL. When a code fragment cannot be automatically converted to the target language, SCT will clearly document all locations that require manual input from the application developer.
Q: How do I get started with AWS Database Migration Service?
Getting started with AWS Database Migration Service is quick and simple. Most data replication tasks can be set up in less than 10 minutes. Visit the AWS Database Migration Service section of the AWS Management Console and enter the Start Migration wizard. Specify your source and target endpoints, select an existing replication instance or create a new one, and accept the default schema mapping rules or define your own transformations. Data replication will start immediately after you complete the wizard.
Q: In addition to one-time data migration, can I use AWS Database Migration Service for continuous data replication?
Yes, you can use AWS Database Migration Service for both one-time data migration into RDS and EC2-based databases as well as for continuous data replication. AWS Database Migration Service will capture changes on the source database and apply them in a transactionally-consistent way to the target. Continuous replication can be done from your data center to the databases in AWS or in the reverse, replicating to a database in your datacenter from a database in AWS. Ongoing continuous replication can also be done between homogeneous or heterogeneous databases. For ongoing replication it would be preferable to use Multi-AZ for high-availability.
Q: How are AWS Database Migration Service (DMS) and AWS Schema Conversion Tool (SCT) related?
DMS and SCT work in conjunction to both migrate databases and support ongoing replication for a variety of uses such as populating datamarts, synchronizing systems, etc. SCT can copy database schemas for homogeneous migrations and convert them for heterogeneous migrations. The schemas can be between databases e.g.) Oracle to PostgreSQL or between data warehouses e.g.) Netezza to Amazon Redshift.
Once a schema has been created on an empty target, depending on the volume of data and/or supported engines, either DMS or SCT are then used to move the data. DMS traditionally moves smaller relational workloads (<10 TB) and MongoDB, whereas SCT is primarily used to migrate large data warehouse workloads. DMS supports ongoing replication to keep the target in sync with the source; SCT does not.
Q: What sources and targets does AWS Database Migration Service support?
AWS Database Migration Service (DMS) supports a range of homogeneous and heterogeneous data replications.
Either the source or the target database (or both) need to reside in RDS or on EC2. Replication between on-premises to on-premises databases is not supported.
Q: What sources and targets does AWS Schema Conversion Tool support?
AWS Schema Converstion Tool (SCT) supports a range of database and data warehouse conversions which are listed here. Note that SCT can be used to:
- Copy a database schema from a source to a target
- Convert a database or data warehouse schema
- Analyze a database to determine the conversion complexity
- Analyze a database to determine any possible restrictions to running on Amazon RDS
- Analyze a database to determine if a license downgrade is possible
- Convert embedded SQL code in an application
- Migrate data warehouse data to Amazon Redshift
Q: Why should I use AWS Database Migration Service instead of my own self-managed replication solution?
AWS Database Migration Service is very easy to use. Replication tasks can be set up in minutes instead of hours or days, compared to the self-managed replication solutions that have to be installed and configured. AWS Database Migration Service monitors for replication tasks, network or host failures, and automatically provisions a host replacement in case of failures that can’t be repaired.Users of AWS Database Migration Service don’t have to overprovision capacity and invest in expensive hardware and replication software, as they typically have to do with self-managed solutions. With AWS Database Migration Service users can take advantage of on-demand pricing and scale their replication infrastructure up or down, depending on the load. AWS Database Migration Service data replication integrates tightly with the AWS Schema Conversion Tool, simplifying heterogeneous database migration projects.
Q: Can you summarize the database migration steps using AWS Database Migration Service for me?
During a typical simple database migration you will create a target database, migrate the database schema, setup the data replication process, initiate the full load and a subsequent change data capture and apply, and conclude with a switchover of your production environment to the new database once the target database is caught up with the source database.
Q: Are these steps different for continuous data replication?
The only difference is in the last step (the production environment switchover), which is absent for continuous data replication. Your data replication task will run until you change or terminate it.
Q: Can I monitor the progress of a database migration task?
Yes. AWS Database Migration Service has a variety of metrics displayed in the AWS Management Console. It provides an end-to-end view of the data replication process, including diagnostic and performance data for each point in the replication pipeline. AWS Database Migration Service also integrates with other AWS services such as CloudTrail and CloudWatch Logs. Customers can also leverage the AWS Database Migration Service API and CLI to integrate with their existing tools or build custom monitoring tools to suit their specific needs.
Q: How do I integrate AWS Database Migration Service with other applications?
AWS Database Migration Service provides a provisioning API that allows creating a replication task directly from your development environment, or scripting their creation at scheduled times during the day. The service API and CLI allows developers and database administrators to automate the creation, restart, management and termination of replication tasks.
Q: Can I replicate data from encrypted data sources?
Yes, AWS Database Migration Service can read and write from and to encrypted databases. AWS Database Migration Service connects to your database endpoints on the SQL interface layer. If you use the Transparent Data Encryption features of Oracle or SQL Server, AWS Database Migration Service will be able to extract decrypted data from such sources and replicate it to the target. The same applies to storage-level encryption. As long as AWS Database Migration Service has the correct credentials to the database source, it will be able to connect to the source and propagate data (in decrypted form) to the target. We recommend using encryption-at-rest on the target to maintain the confidentiality of your information. If you use application-level encryption, the data will be transmitted through AWS Database Migration Service as is, in encrypted format, and then inserted into the target database.
Q: Does AWS Database Migration Service migrate the database schema for me?
To quickly migrate a database schema to your target instance you can rely on the Basic Schema Copy feature of AWS Database Migration Service. Basic Schema Copy will automatically create tables and primary keys in the target instance if the target does not already contain tables with the same names. Basic Schema Copy is great for doing a test migration, or when you are migrating databases heterogeneously e.g. Oracle to MySQL or SQL Server to Oracle. Basic Schema Copy will not migrate secondary indexes, foreign keys or stored procedures. When you need to use a more customizable schema migration process (e.g. when you are migrating your production database and need to move your stored procedures and secondary database objects), you can use the AWS Schema Conversion Tool for both homogeneous and heterogeneous migrations, or use the schema export tools native to the source engine, if you are doing homogeneous migrations like (1) SQL Server Management Studio's Import and Export Wizard, (2) Oracle's SQL Developer Database Export tool or script the export using the dbms_metadata package, (3) MySQL's Workbench Migration Wizard.
Q: Can I use DMS to perform bi-directional replication?
Bi-directional replication is not recommended with DMS. A typical replication scenario has a single source and a target. When the source and target endpoints are distinct, DMS guarantees transactional integrity. In bi-directional replication these source and targets can be reversed and lead to unintended consequences if the same row is updated by two different replication tasks. Two-way replication works best when the tables being updated from the source to the target are logically independent from the tables being updated from the target to the source.