---
title: Migration of Oracle Database to Amazon RDS using Golden Gate
description: An overview of migrating your on-premise database to Amazon RDS using Oracle GoldenGate.
---

[Blog | Pythian ](https://www.pythian.com/blog)

# [Migration of Oracle Database to Amazon RDS using Golden Gate](https://www.pythian.com/blog/migration-oracle-database-amazon-rds-using-golden-gate)

 Written by [Fahd Mirza](https://www.pythian.com/blog/author/fahd-mirza) | Aug 28, 2015 4:00:00 AM

## Migrating Oracle to Amazon RDS with Minimal Downtime

Amazon RDS is a web service used to manage databases, like Oracle, in the cloud. Small- and medium-sized enterprises with databases of normal load, volume, and SLA, can certainly leverage the ease and cost efficiency Amazon RDS offers. There are two other methods that are widely used to migrate databases with minimal downtime: Oracle Data Guard and Oracle GoldenGate. AWS RDS doesn't support Data Guard, but luckily it does support Oracle GoldenGate. There are some version constraints though.

## Component Topology: Source, Hub, and Target

The following steps are involved while migrating a database from on-premises to AWS RDS:

- **Source database on premises** * **Oracle GoldenGate Hub on EC2 instance** * **Target database on AWS RDS** Now there could be different topologies for the above 3 components, but we are just using this topology for simplicity. For details on this topology, refer to this very fine and simple Appendix: Using Oracle GoldenGate with Amazon RDS.

## Operational Steps for a Successful Migration

Generally and roughly, the steps used to migrate databases from on-premises Oracle database to AWS RDS could be as follows:

- Create target database **targetdb** in AWS RDS with same parameters as that of the source database **sourcedb**.
- Create same tablespaces on **targetdb** in AWS RDS as they exist in source database **sourcedb**.
- Create same non default users on **targetdb** in AWS RDS as they exist in source database **sourcedb**.
- Create same non default roles on **targetdb** in AWS RDS as they exist in source database **sourcedb** and assign these roles to users on **targetdb**.
- Export data/objects from **sourcedb** database to specific SCN from non default schemas
- Import data/objects into **targetdb** database
- Configure GoldenGate extract process on **sourcedb** * Configure GoldenGate replicate processes on **targetdb** * Set up Oracle GoldenGate (GG) Hub on EC2
- Start GG extract process on **sourcedb** * Start GG replicate process on **targetdb** starting after that SCN until it catch all changes generated on **sourcedb** database during exp/imp time.
- Then plan the cut-off time for applications to switch to new AWS RDS database after stopping replicat process at **targetdb**.
- Cleanup of **sourcedb**.

## Planning and the Human Element

These are just the skeleton steps and need refining and proper planning. It's always good to first thoroughly test such action plans. But as you can see, Oracle GoldenGate is a viable tool to migrate databases to the AWS RDS. Pythian has a full range of skills, experience, and capabilities to oversee such migrations as its our daily routine to use GoldenGate to do migrations. And yes, even if AWS RDS is a cloud service, you still need a DBA :)

## Oracle Database Consulting Services

Ready to optimize your Oracle Database for the future?

 

[View full post](https://www.pythian.com/blog/migration-oracle-database-amazon-rds-using-golden-gate)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Fahd Mirza"
  },
  "dateModified" : "2026-04-12T05:41:18.269Z",
  "datePublished" : "2015-08-28T04:00:00Z",
  "headline" : "Migration of Oracle Database to Amazon RDS using Golden Gate",
  "image" : {
    "@type" : "ImageObject",
    "height" : 60,
    "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
    "width" : 60
  },
  "mainEntityOfPage" : "https://www.pythian.com/blog/migration-oracle-database-amazon-rds-using-golden-gate",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "Pythian Blog"
  }
}
```