oracle to aws · 2026 migration guide

Oracle to AWS: keep Oracle, or leave the license bill behind.

There are three real ways to move Oracle to AWS. Lift and shift to Amazon RDS for Oracle (fast, but you keep paying Oracle). Run Oracle Exadata inside AWS with Oracle Database@AWS (for RAC and Exadata estates). Or re-platform to Aurora PostgreSQL and drop the Oracle license. This page covers each path, the SCT and DMS workflow, the PL/SQL that fights back, the cutover and the savings model. If Oracle runs outside AWS today, a vetted partner can file MAP migration funding when the move qualifies: typically $50K to $150K for startups. Depends on the workload; AWS approves.

paths
3
RDS lift and shift
2–8 wks per DB
Aurora re-platform
4–9 months
Oracle license on Aurora
none
TL;DR
  • Three paths, three different projects. Amazon RDS for Oracle is a same-engine lift and shift: managed Oracle, little rewrite, live in weeks, but the Oracle license bill stays. Oracle Database@AWS runs Oracle Exadata, managed by Oracle Cloud Infrastructure, inside AWS data centers, so RAC and Exadata workloads move without re-architecting. Aurora PostgreSQL is an engine change: it drops Oracle licensing but needs schema conversion, PL/SQL rewrites and a careful cutover.
  • For the Aurora path, the toolchain is the AWS Schema Conversion Tool (SCT) for schema and code and AWS Database Migration Service (DMS) for data. SCT reports, object by object, what converts automatically and what needs manual work. DMS does a full load, then change data capture keeps Aurora in sync with live Oracle until cutover, so downtime is minutes, not a weekend.
  • The motivation is the license bill, and most enterprises use a mix: lift and shift the hard, vendor-locked databases and re-platform the ones worth converting. If Oracle runs on-premises or in another cloud, MAP (the AWS Migration Acceleration Program) can offset part of the move. Your matched partner files the request when the migration qualifies, and AWS approves it.
the motivation

IWhy teams move Oracle to AWS: almost always the license bill

Performance is rarely the reason. Oracle is an excellent database. The reason is the cost structure: per-core licensing, support renewals, separately licensed options, and audit exposure that grows with every CPU.

Oracle Database Enterprise Edition lists at about $47,500 per processor license on Oracle's public price list, and Oracle's core-factor table often counts one physical core as more than one processor. Support adds about 22% of the license price every year. Then come the options many schemas depend on (Partitioning, Advanced Compression, Diagnostics and Tuning Packs, Active Data Guard, RAC), each licensed separately. Running on your own hardware adds the refresh, DBA headcount and a DR site, and running under a hypervisor invites the audit argument about licensing every core in the cluster.

AWS changes the structure in three ways. Keep Oracle but stop running the hardware, with RDS for Oracle. Keep Oracle Exadata and RAC, running inside AWS, with Oracle Database@AWS. Or re-platform to Aurora PostgreSQL, and the Oracle license line goes away.

Knowing which database deserves which path is the whole game, and the rest of this page is organized around that call.

the decision

IIThe three paths: RDS for Oracle, Oracle Database@AWS, Aurora PostgreSQL

In AWS 7 Rs terms, RDS for Oracle and Oracle Database@AWS are rehost or relocate (same engine), and Aurora PostgreSQL is replatform (different engine). The effort, risk and payoff differ a lot.

Decide per database. Some Oracle databases are so wired into PL/SQL, Oracle-only SQL and vendor support matrices that converting them costs more than the license they would save. Defaulting everything to RDS for Oracle carries the whole Oracle bill into AWS.

Path A: Amazon RDS for Oracle (same-engine lift and shift)

What it is: the same Oracle engine, managed by AWS: patching, automated backups, point-in-time restore and Multi-AZ failover.

How you migrate: Oracle Data Pump for smaller databases; DMS or Data Pump over Direct Connect or a Site-to-Site VPN for larger ones; or a restore from a backup staged in S3. Application code, PL/SQL and SQL stay unchanged.

Licensing: bring your own license (subject to Oracle's cloud policy) or license-included for Standard Edition Two. You still pay Oracle.

Timeline: typically 2–8 weeks per database.

Pick it when the database is tightly coupled to Oracle features, a vendor requires Oracle, the team has no PostgreSQL capacity, or you need off your hardware now and will modernize later.

Path B: Oracle Database@AWS (Exadata inside AWS)

What it is: Oracle Exadata systems managed by Oracle Cloud Infrastructure (OCI), running inside AWS data centers. You set it up from the AWS Management Console and buy it through a private offer from Oracle in AWS Marketplace. It became generally available in July 2025, and AWS listed it in twelve Regions in April 2026.

How you migrate: with Oracle's own tools, such as Data Guard and Data Pump. AWS positions it for moving on-premises Exadata and RAC applications to AWS without re-architecting, next to the rest of your AWS workloads.

Licensing: it is still Oracle, and you still pay Oracle for the database.

Pick it when you run Exadata or RAC, the database cannot leave Oracle any time soon, and you want it next to your applications on AWS.

Path C: Aurora PostgreSQL (engine change, no Oracle license)

What it is: a PostgreSQL-compatible engine with storage that grows to 128 TiB, six copies across three Availability Zones and up to 15 read replicas. No Oracle license, no support renewal, no core-factor table.

How you migrate: SCT converts schema and code; DMS moves the data with change data capture. Sections III to V cover the workflow.

Licensing: none for the engine. You pay for Aurora compute, storage and I/O.

Timeline: typically 4–9 months for a substantial database, mostly PL/SQL conversion and testing.

Pick it when the database carries real Oracle cost, SCT says the PL/SQL is tractable, your team can own PostgreSQL, and the savings clearly beat the one-time conversion.

the portfolio move

Most Oracle-to-AWS programs use more than one path. Lift and shift the hard or vendor-locked databases to RDS for Oracle (or Oracle Database@AWS for Exadata and RAC) to get off the hardware fast. Then re-platform the high-cost, tractable databases to Aurora PostgreSQL. Easy wins first build the credibility, and free the budget, for the harder conversions.

step 1: assess and convert

IIIAWS SCT: schema conversion and the honest assessment

The Schema Conversion Tool is where an Oracle to Aurora project succeeds or stalls, because its assessment report tells you, object by object, what converts automatically and what does not. That report is your project plan.

Point SCT at the Oracle source and the Aurora PostgreSQL target. It analyzes tables, indexes, views, sequences, constraints and the procedural code (packages, procedures, functions, triggers), converts what it can, and rates every remaining action item simple, medium or complex. The share that converts automatically depends almost entirely on how much PL/SQL you have and how Oracle-specific it is.

Storage objects and most datatypes convert cleanly (NUMBER to numeric or integer types, VARCHAR2 to varchar, CLOB to text, BLOB to bytea), with flags on NUMBER columns whose precision needs a human decision. The hard parts are predictable:

  • Packages. PostgreSQL has no package construct. SCT turns each package into a schema of functions; package-level state and overloading need manual work.
  • Autonomous transactions. PRAGMA AUTONOMOUS_TRANSACTION has no direct PostgreSQL equivalent and usually means redesigning the logging or audit pattern that relied on it.
  • Hierarchical queries. CONNECT BY and START WITH become recursive CTEs (WITH RECURSIVE). SCT handles many; complex ones need review.
  • Sequences and identity. seq.NEXTVAL maps to nextval('seq'), but identity patterns and the triggers around them often need adjusting.
  • Built-in differences. DECODE to CASE, NVL to COALESCE, SYSDATE semantics, ROWNUM to LIMIT or row_number(), and Oracle treating an empty string as NULL all differ in small ways.
  • Bulk operations and collections. BULK COLLECT, FORALL and associative arrays have no one-to-one mapping and are common rewrite targets in heavy ETL packages.
  • Oracle-only features. Materialized-view refresh rules, some partitioning strategies and any reliance on Oracle-only options show up here as complex items.

For the hardest objects, SCT can deploy an extension pack that emulates some Oracle functions on PostgreSQL. Treat that as technical debt to revisit: convert what converts, rewrite the medium and complex items into idiomatic PL/pgSQL, and keep emulation for the long tail.

The most useful output is the number. "This database is 88% auto-convertible with 240 complex action items" lets you size the project honestly. A reporting database that converts almost fully is a quick win. A core schema with thousands of lines of PL/SQL is a real engineering program and may belong on RDS for Oracle instead.

step 2: move the data

IVAWS DMS: full load, then CDC to a near-zero-downtime cutover

Once the schema exists on Aurora, Database Migration Service moves the data and keeps it moving. Change data capture is what turns a weekend-long cutover into a switch measured in minutes.

A DMS task first copies existing data (the full load), then reads Oracle's redo logs and applies every insert, update and delete to Aurora continuously. Aurora trails production by seconds while Oracle stays fully online, so you can validate, performance-test and run the application against Aurora in staging for days or weeks.

DMS moves rows, not procedural code (that is SCT's job). Secondary indexes and constraints are usually created after the full load for speed, large-object columns need explicit LOB settings, and big or busy databases need a right-sized replication instance and often several parallel tasks. That is routine for a partner who has done it before.

Validating that the data matches

DMS data validation compares source and target row by row during load and CDC and reports mismatches. For a database the business runs on, add your own checks: row counts, checksums on critical tables and business reconciliation queries. Together they let a CFO or a regulator accept the Aurora copy as the system of record.

step 3: cut over safely

VCutover and risk management for a mission-critical database

The conversion and the data move are engineering. The cutover is risk management, and the plan is judged on one question: what happens if something goes wrong at the moment of switch?

The answer is a rehearsed runbook and a rollback you do not have to invent under pressure. Keep the Oracle source untouched and authoritative until the cutover succeeds. Because DMS syncs Aurora from Oracle, not the other way around, rollback during the window is just pointing the application back at Oracle.

  • Days before: Aurora is live under CDC and trailing Oracle by seconds. The regression suite is green against Aurora, DMS validation is clean, and query plans and indexes are tuned at production load, because PostgreSQL's planner behaves differently from Oracle's.
  • The cutover window: Announce a short maintenance window. Stop application writes to Oracle. Let DMS apply the final changes. Run the reconciliation checks. Point the connection strings at Aurora.
  • Smoke test: Run the critical write paths (login, checkout, the core transactions) against Aurora before reopening to users. A scripted test takes minutes and catches the typo class of failure.
  • Go or no-go: If the smoke test passes, reopen traffic and watch closely. If not, point back to Oracle, reopen and debug Aurora offline. Rollback costs minutes, not data.
  • Stabilize, then decommission: Keep Oracle running read-only as a safety net for an agreed window, commonly one to four weeks, then decommission it and stop the license renewal. That date is when the savings start.
the business case

VIThe license-savings model that justifies the project

The conversion costs real engineering time, so the business case has to clear it. For a high-cost Oracle database it usually does, because the Oracle bill it removes recurs every year while the conversion is paid once.

Build the model on three lines. The Oracle cost you remove: licenses after the core factor, about 22% a year in support, the options you license, plus hardware and DBA effort if you run it yourself. The Aurora cost you add: compute (instances or Aurora Serverless v2), storage, I/O and backups, with no license layer. The one-time conversion cost: SCT and DMS work, PL/SQL rewrites, testing and cutover. That last line is what MAP funding can offset when the migration qualifies.

The savings are largest when you were on Enterprise Edition with options and a DR standby, because Aurora includes Multi-AZ, backups and read replicas without per-feature licensing. They are smaller if you were already on Standard Edition. The support renewal alone can pay back the conversion, which is why these projects survive CFO review.

Two caveats keep the model honest. PostgreSQL is not a drop-in Oracle, so budget for conversion and a tuning phase (query plans, indexing, connection pooling). And savings start only after decommission: while Oracle runs in parallel as a safety net, you pay for both.

how CloudRoute fits

VIIWho files the funding, and when it applies

You do not have to build an SCT and DMS team from scratch. CloudRoute matches you with a vetted AWS partner who has migrated Oracle before. If the move is onto AWS and qualifies, that partner files MAP funding for it.

MAP (the AWS Migration Acceleration Program) has three phases. Assess builds readiness and a TCO model: the partner runs SCT against your Oracle databases for the convertibility numbers and a cost model, so you have go/no-go data before you commit. Mobilize builds the landing zone and a pilot conversion. Migrate & Modernize is the production conversion and cutover. Your matched partner files the MAP request when the migration qualifies, and AWS decides the amount. For startups, partner-filed funding is typically $50K to $150K. Depends on the workload; AWS approves.

The honest framing: MAP is for moves onto AWS, such as Oracle on-premises or in another cloud. If your Oracle already runs on EC2 or RDS, a move to Aurora stays inside AWS and is not a MAP migration. For Oracle Database@AWS, ask your partner how funding applies before you plan around it; AWS decides. Where no funding applies, a partner who has done Oracle to Aurora moves still de-risks the cutover.

CloudRoute is the match. You tell us how much Oracle you run, which editions and options, what the databases do and your timeline, and we introduce a partner with an Oracle migration track record that can file MAP. CloudRoute is free for you. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

Who files which AWS funding
FundingWho files itAmountWhen it fits
Migration Acceleration Program (MAP)Your matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You are not on AWS yet and want to migrate.
Proof of concept (POC) fundingYour matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You want to test something, whether or not you are on AWS today.
Incremental workload (IW) fundingYour matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract.
AWS Activate FoundersFounder applies$1,000 to start, up to $5,000Self-funded startups with no investor or accelerator behind them.
AWS Activate PortfolioFounder appliesup to $200,000Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider.
AWS Credits for AI StartupsInvite only (AWS account manager)$200,000 or more, by invitationAI startups ready to scale after Activate Portfolio, invited by AWS.
Facts checked on October 10, 2026. AWS decides every application.
where this connects

See how much funding a partner can file and AWS Database Migration Service. The platform you land on should be a secure multi-account AWS landing zone. The migration offer page lays out what a CloudRoute match includes.

the core decision

RDS for Oracle vs Oracle Database@AWS vs Aurora PostgreSQL

This is the table the whole project turns on. Pick per database, not per company.

DimensionAmazon RDS for OracleOracle Database@AWSAurora PostgreSQL
Migration typeSame engineSame engine (Exadata)Engine change (SCT and DMS)
Code rewriteNoneNonePL/SQL to PL/pgSQL; SCT automates part, the rest is manual
Oracle licenseYou keep it (BYOL or license-included)You keep paying OracleNone
Who runs the databaseAWS (RDS)Oracle (OCI), inside AWS data centersAWS (Aurora)
Typical timeline2–8 weeks per databaseDepends on the Exadata scope4–9 months for a substantial database
Engineering riskLow: proven and mechanicalLow to medium: same engine, new setupHigher: conversion, CDC cutover, tuning
Vendor lock-inStays on OracleStays on OracleOpen-source compatible
Best forOracle-coupled or vendor-locked databases; speedExadata and RAC estates that must stay OracleHigh-cost, tractable databases worth converting
SCT's assessment tells you which Aurora candidates are tractable. The rest go to RDS for Oracle or, for Exadata and RAC, Oracle Database@AWS.
ready to size the move?
Start with a MAP Assess: real SCT numbers and a savings model before you commit
Get matched free with a vetted AWS partner who can file it
how a match works

How a match works (example)

  1. You tell us about the work

    You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.

  2. We pick one partner

    We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.

  3. The partner checks MAP funding

    Your matched partner scopes the migration with you. Then it checks whether the move qualifies for MAP (Migration Acceleration Program) funding. MAP is for teams that are not on AWS yet.

  4. The partner files, AWS decides

    If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.

  5. You pay nothing

    CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.

faq

Common questions

Should I move Oracle to RDS, Oracle Database@AWS or Aurora PostgreSQL?
Usually more than one, for different databases. Use Amazon RDS for Oracle when a database is coupled to Oracle features, required by a vendor, or just needs off your hardware fast: no code rewrite, live in weeks, but you keep the Oracle bill. Use Oracle Database@AWS for Exadata and RAC estates that must stay on Oracle but should sit next to your AWS workloads. Re-platform to Aurora PostgreSQL when the database carries real license cost and SCT says it is tractable: the Oracle license goes away, but expect SCT and DMS conversion, PL/SQL rewrites and a careful cutover over 4–9 months.
How much does moving from Oracle to Aurora PostgreSQL save?
It depends on what you license today. You remove the per-processor license, about 22% a year in support and any separately licensed options (Partitioning, Diagnostics, RAC, Active Data Guard), while Aurora includes Multi-AZ, backups and read replicas without per-feature licensing. Savings are largest on Enterprise Edition with options and a DR standby, and smaller on Standard Edition. They start only after you decommission Oracle; while both run in parallel, you pay for both.
What is Oracle Database@AWS?
Oracle Exadata systems, managed by Oracle Cloud Infrastructure, running inside AWS data centers. You buy it through a private offer from Oracle in AWS Marketplace and set it up from the AWS Management Console. It became generally available in July 2025, and AWS listed it in twelve Regions in April 2026. AWS positions it for moving on-premises Exadata and RAC applications to AWS without re-architecting. You still pay Oracle for the database.
What is the SCT and DMS workflow for Oracle to Aurora?
AWS Schema Conversion Tool (SCT) converts tables, indexes, views and PL/SQL and produces an assessment report that marks every object as converted or as a manual action item (simple, medium or complex). AWS Database Migration Service (DMS) copies existing rows, then change data capture reads Oracle's redo logs and keeps Aurora in sync. You fix the flagged PL/SQL, run DMS for days or weeks while you validate and test, then stop Oracle writes, let DMS drain the last changes and point the app at Aurora.
Which Oracle PL/SQL features are hardest to convert?
Packages (PostgreSQL has no package construct), autonomous transactions (no direct equivalent), hierarchical queries (CONNECT BY becomes WITH RECURSIVE), bulk operations (BULK COLLECT, FORALL) and the long tail of built-in differences (DECODE, NVL, SYSDATE, ROWNUM, empty string as NULL). SCT converts many and can emulate some Oracle functions with an extension pack, but medium and complex items need manual rewrites. The amount of Oracle-specific PL/SQL is the biggest driver of the timeline.
How much downtime does an Oracle migration need, and how do you manage the risk?
Minutes, done right. DMS change data capture keeps the target in sync with live Oracle, so the cutover is: stop writes, let DMS apply the final changes, reconcile and point the app at the new database. Keep Oracle authoritative until the switch succeeds so rollback is just pointing back. Migrate non-critical databases first, rehearse the cutover in staging, validate with DMS plus your own reconciliation, tune performance at production load, and keep Oracle read-only as a safety net for one to four weeks.
How long does an Oracle to AWS migration take, and can AWS fund it?
A lift and shift to RDS for Oracle typically takes 2–8 weeks per database. A re-platform to Aurora PostgreSQL typically takes 4–9 months for a substantial database, mostly PL/SQL conversion and testing. On funding: MAP (the AWS Migration Acceleration Program) is for moves onto AWS. Your matched AWS partner files the MAP request when the migration qualifies, and AWS approves it. For startups, partner-filed funding is typically $50K to $150K. Depends on the workload; AWS approves. If your Oracle already runs in your AWS account, a move to Aurora is not a MAP migration. CloudRoute is free for you either way.

Get your Oracle migration to AWS run by a vetted partner

A vetted AWS partner runs the SCT assessment, picks the path per database (RDS for Oracle, Oracle Database@AWS or Aurora PostgreSQL), runs a de-risked cutover, and files MAP funding when the move qualifies: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.

we reply within24 hours
partner-filed funding$50K to $150K
CloudRoute fee for startups$0