Saturday, January 17, 2026

Greatest practices for creating and reorganizing information with further storage volumes in Amazon RDS for Oracle


Amazon Relational Database Service (Amazon RDS) for Oracle is a totally managed business database that makes it simple to arrange, function, and scale Oracle deployments within the cloud. Amazon RDS frees you as much as deal with innovation and utility improvement by managing time-consuming database administration duties, together with provisioning, backups, software program patching, monitoring, and {hardware} scaling.

With Amazon RDS further storage volumes, you’ll be able to increase the full storage capability whereas exactly matching storage efficiency to your information wants. Now you can provision as much as 256 TiB of complete storage by including as much as three further storage volumes to your RDS occasion, successfully quadrupling the accessible capability. You’ll be able to configure every quantity independently with completely different storage sorts and efficiency traits, so you’ll be able to place regularly accessed information on high-performance storage whereas transferring much less regularly accessed information to more cost effective volumes. You can too scale further storage volumes independently and in parallel. Amazon Elastic Block Retailer (Amazon EBS) storage modification operations at the moment are particular to every storage quantity and never on the occasion stage.

On this put up, we present you easy methods to use further storage volumes to increase your RDS for Oracle storage capability past 64 TiB. As well as, we stroll by means of use instances for added storage quantity and greatest practices whereas working with further volumes.

Add further storage volumes

You’ll be able to add further storage volumes to new or current RDS situations by means of the AWS Administration Console, AWS CLI, or AWS SDK. Then you’ll be able to create new database recordsdata on these volumes and transfer current information based mostly on their efficiency necessities. The function helps widespread database operations together with backup and restore, with Amazon RDS administration capabilities routinely extending to the extra volumes. You’ll be able to monitor efficiency metrics for every quantity by means of Amazon CloudWatch and modify quantity configurations as your wants change.

Modify RDS for Oracle occasion so as to add further storage quantity

So as to add further storage volumes to an current RDS for Oracle occasion, use the modify-db-instance command with the additional-storage-volumes parameter. The next code snippet provides two new volumes, one 5,000 GiB gp3 quantity sort with 4,000 IOPS named rdsdbdata2 and one other 6,000 GiB io2 quantity sort with 25,000 IOPS named rdsdbdata3:

aws rds modify-db-instance 
  --db-instance-identifier my-asv-demo1 
  --region us-east-1 
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "StorageType":"gp3",
            "AllocatedStorage":5000
            "IOPS":4000},
{
"VolumeName":"rdsdbdata3",
            "StorageType":"io2",
            "AllocatedStorage":6000
            "IOPS":25000}
    ]' 
  --apply-immediately

Create new RDS for Oracle occasion with further storage quantity

The next code snippet creates a brand new RDS for Oracle occasion with two further storage volumes connected. The primary further quantity is rdsdbdata2 of io2 storage sort and eight,000 GiB in measurement and the second further quantity is rdsdbdata3 of gp3 storage sort and 5,000 GiB in measurement.

aws rds create-db-instance 
--db-instance-identifier "asv-demo2" 
--master-username masteruser --master-user-password password 
--db-instance-class db.r5b.2xlarge --allocated-storage 50 --storage-type gp3 
--engine oracle-ee --engine-version 19.0.0.0.ru-2025-07.rur-2025-07.r1 
--backup-retention-period 1 
--multi-az 
--additional-storage-volumes '[
{
"VolumeName":"rdsdbdata2", 
"StorageType":"io2",
"AllocatedStorage":8000
“IOPS”:20000},
{
"VolumeName":"rdsdbdata3",
"StorageType":"gp3",
"AllocatedStorage": 5000}
]' 
--region us-west-2

After you create the occasion, you’ll be able to view the extra storage volumes on the Configuration tab on the Amazon RDS console or use describe-db-instance to verify the standing of the volumes. Quantity standing “Not in use” signifies that the amount is efficiently connected however isn’t utilized by the database but.

Create database recordsdata

After you add the volumes efficiently, you can begin creating new database recordsdata on this location. Amazon RDS for Oracle makes use of Oracle Managed Recordsdata (OMF) for database recordsdata placement on the storage. You’ll be able to’t specify the placement when creating new database recordsdata, as an alternative this will probably be derived based mostly on the present setting of db_file_create_dest parameter. You’ll be able to modify this parameter at session or occasion stage:

  • Occasion stage – Replace the parameter db_create_file_dest within the parameter group assigned to your DB occasion and apply it. For extra data, check with RDS for Oracle initialization parameters and Modifying parameters in a DB parameter group in Amazon RDS.
  • Session stage – You’ll be able to run the ALTER SESSION assertion and set the parameter to the specified further storage quantity. When utilizing further storage volumes with replicas, we suggest utilizing a parameter group to handle the datafile location as an alternative of updating on the session stage to take care of constant habits between major and reproduction situations.
SHOW PARAMETER db_create_file_dest

NAME                  TYPE      VALUE
------------------------------------ ----------- -------------------------
db_create_file_dest string /rdsdbdata/db

ALTER SESSION SET db_create_file_dest="/rdsdbdata2/db";
Session altered.

SHOW PARAMETER db_create_file_dest

NAME TYPE VALUE
------------------------------------ ----------- -------------------------
db_create_file_dest string /rdsdbdata2/db

After you set the db_create_file_dest parameter, you should use SQL instructions to create a tablespace in an extra storage quantity:

ALTER SESSION SET db_create_file_dest="/rdsdbdata2/db";
Session altered.

CREATE TABLESPACE mynewtablespace2 DATAFILE SIZE 10G;
Tablespace created.

SELECT tablespace_name,file_id,file_name
FROM dba_data_files
WHERE tablespace_name="MYNEWTABLESPACE2";

TABLESPACE_NAME FILE_ID FILE_NAME
------------------------- ---------- -------------------------------------
MYNEWTABLESPACE2 7
/rdsdbdata2/db/ORCL_A/datafile/o1_mf_mynewtab_n563b2kn_.dbf

Concerns for utilizing further storage volumes

Bear in mind the next issues:

  • The next database constructions are saved within the major storage quantity and might’t be moved to an extra storage quantity:
    • SYSTEM tablespace
    • RDSADMIN tablespace
    • Redo log recordsdata
    • Archive log recordsdata and
    • Management file
  • Extra storage quantity will probably be suitable with each new and current RDS for Oracle situations which have major volumes equal to or bigger than 200 GiB. The dimensions of further storage volumes needs to be equal to or larger than 200 GiB.
  • Extra storage volumes will be both gp3 or io2 storage sort. The first quantity will be of any storage sort.
  • Extra storage volumes should use the next quantity names:
    rdsdbdata2
    rdsdbdata3
    rdsdbdata4

  • While you create an extra storage quantity by modifying the DB occasion, Amazon RDS instantly creates the storage quantity whatever the schedule modifications setting. Including a storage quantity is a web based operation and doesn’t influence your database efficiency.
  • In Oracle Enterprise Version (EE), you should use the move_datafile process to maneuver a datafile of an current tablespace from one quantity to a different quantity. This operation will be finished on-line. Equally, you’ll be able to transfer a desk, index, or partition on-line utilizing the ONLINE clause of ALTER TABLE or ALTER INDEX instructions in Oracle EE.
  • In Oracle Commonplace Version 2 (SE2), you’ll be able to transfer desk and index information from one quantity to a different however this will probably be an offline operation, that means the desk or index will probably be locked throughout the transfer operation.
  • When creating an RDS for Oracle reproduction for a DB occasion that has further storage volumes, Amazon RDS routinely configures further storage volumes on the reproduction. Nevertheless, subsequent modifications made in storage volumes of your major DB occasion are usually not routinely utilized to the reproduction.

Use instances of further storage volumes

On this part, we talk about varied use instances of further storage volumes.

Scale up the storage for lively information exceeding 64 TiB

As your databases develop with further storage quantity, you’ll be able to scale up the storage past 64 TiB by including further storage volumes. Every further storage quantity can scale as much as 64 TiB, and you may add as much as three further volumes with the brand new most storage measurement of 256 TiB for RDS for Oracle situations. The first quantity in an RDS for Oracle occasion known as rdsdbdata, and extra volumes are rdsdbdata2, rdsdbdata3, and rdsdbdata4. While you add a brand new quantity, you’ll be able to select the storage sort and quantity traits to satisfy the efficiency necessities. Extra storage volumes assist each io2 and gp3 quantity sorts with a minimal measurement of 200 GiB per further storage quantity.

Place lively and often accessed information on separate volumes

Including an extra storage quantity to an RDS occasion supplies distinctive benefits aside from scaling up the storage of the occasion. For instance, with an extra storage quantity, you’ll be able to enhance database efficiency by splitting your lively information from historic information. You’ll be able to transfer sometimes accessed information into further volumes with Basic Goal SSD storage (gp3) whereas maintaining extremely accessed information on Provisioned IOPS SSD storage (io2) sort. You’ll be able to even use Oracle’s on-line relocation capabilities (in Oracle EE) to maneuver information between volumes whereas your functions proceed operating.

Contemplate one other situation, by which you will have a database workload of 20 TB with roughly 5 TB of historic information not regularly accessed in a separate schema. Let’s say you will have a complete requirement of 80,000 IOPS for this workload, which incorporates each learn and write IOPS. Historically to assist this, you’d provision an RDS for Oracle occasion with io2 storage sort of 20 TB with 80,000 provisioned IOPS, which prices about $21,120 per thirty days for storage within the us-east-1 AWS Area.

With the extra storage quantity function, you’ll be able to break up this throughout two volumes by provisioning a 15 TB io2 quantity with 60,000 IOPS for lively information and transfer the sometimes accessed schema right into a GP3 quantity of 5 TB, which is able to value about $17,017 ($15,840 + $1,177) per thirty days for RDS storage prices.

Momentary storage for information loading

You may want short-term storage on RDS for Oracle situations for information masses or export/import dump recordsdata or a staging space to maintain your transportable tablespace (XTTS) datafiles. With further storage volumes, you’ll be able to create a brand new further storage quantity for staging your short-term information and delete the amount when the migration/export/import exercise is full. This helps with value management by not allocating additional storage on the first quantity, which may’t be scaled down.

Database administration operations with further storage volumes

On this part, we talk about widespread database administration operations with further storage volumes.

Use Oracle Information Pump with further storage quantity

To create a listing on an extra storage quantity utilizing Oracle Information Pump, use the next code:

BEGIN
rdsadmin.rdsadmin_util.create_directory(
p_directory_name => 'DATA_PUMP_DIR2',
p_database_volume_name => 'rdsdbdata2');
END;
/

Observe the steps described in Importing utilizing Oracle Information Pump to export and import your information to the brand new listing.

After the operation is full, you’ll be able to take away recordsdata and optionally delete the amount.

Use transportable tablespaces with an extra storage quantity

The next steps present easy methods to use further storage quantity as a staging space to maintain dump recordsdata whereas utilizing transportable tablespaces (XTTS) for migration or export/import:

  1. Set the db_create_file_dest parameter at session stage earlier than importing XTTS tablespaces into the goal database with an extra storage quantity:
    ALTER SESSION SET db_create_file_dest="/rdsdbdata2/db";
    VAR x CLOB;
    
    BEGIN
    :x := rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
                        p_tablespace_list => 'TBTEST1',
                        p_directory_name => 'XTTS_DIR_DATA2',
                        p_platform_id => 13);
    END;
    /
    PRINT :x;

  2. Verify the XTTS import standing:
    ALTER SESSION SET nls_date_format="DD.MM.YYYY HH24:MI:SS";
    
    COL xtts_operation_start_utc FORMAT A30
    COL xtts_operation_end_utc FORMAT A30
    COL xtts_operation_state FORMAT A30
    COL xtts_operation_type FORMAT A30
    
    SELECT xtts_operation_start_utc, xtts_operation_type,
    xtts_operation_state
    FROM rdsadmin.rds_xtts_operation_info;

  3. When the XTTS tablespace import is full, import XTTS metadata:
    BEGIN
    rdsadmin.rdsadmin_transport_util.import_xtts_metadata(
    p_datapump_metadata_file => 'xttdump.dmp',
    p_directory_name => 'XTTS_DIR_DATA2');
    END;
    /

Use Amazon S3 with further storage quantity

The next steps present easy methods to create a database listing on an extra storage quantity and combine that with Amazon Easy Storage Service (Amazon S3) for staging recordsdata. With such a integration, you’ll be able to obtain and add recordsdata between Amazon S3 and the extra storage quantity.

  1. Create an Oracle listing on the extra storage quantity:
    exec rdsadmin.rdsadmin_util.create_directory('ASVDIRECTORY', 'rdsdbdata2');

  2. Obtain recordsdata from Amazon S3 to the extra storage quantity:
    SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
          p_bucket_name    =>  '',
          p_directory_name =>  ' ASVDIRECTORY') 
       AS TASK_ID FROM DUAL;

  3. Add recordsdata from the extra storage quantity to Amazon S3:
    SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
          p_bucket_name    =>  '', 
          p_prefix         =>  '', 
          p_s3_prefix      =>  '', 
          p_directory_name =>  'ASVDIRECTORY') 
       AS TASK_ID FROM DUAL;

Transfer information and datafiles between volumes

You’ll be able to transfer datafiles and database objects between your major and extra storage volumes. Earlier than you progress information, think about these necessities:

  • The supply and goal volumes should have ample free house. Verify the scale of the file you’re transferring and be sure that the goal quantity has ample house.
  • Information motion operations eat I/O on each volumes. Monitor IOPS Amazon CloudWatch metrics on each supply and goal quantity and enhance IOPS in the event you see a rivalry. CloudWatch metrics embrace ReadIOPS, WriteIOPS, ReadIOPS_rdsdbdata2, and WriteIOPS_rdsdbdata2.
  • Giant information actions can influence database efficiency.
  • In the event you restored the database from a snapshot, you may expertise longer time to maneuver information between volumes resulting from lazy loading. Discuss with Prewarm an Amazon RDS for Oracle database to scale back the influence of lazy loading for extra data.

You’ll be able to transfer datafiles on-line utilizing the RDSADMIN.RDSADMIN_UTIL.MOVE_DATAFILE process. This function of on-line datafile motion is accessible solely in Oracle EE.

PROCEDURE MOVE_DATAFILE
Argument Identify Sort In/Out Default?
------------------------------ ----------------------- ------ --------
P_DATA_FILE_ID NUMBER IN
P_LOCATION VARCHAR2 IN

This process makes use of the next parameters:

  • P_DATA_FILE_ID is the file_id of the datafile to be moved
  • P_LOCATION is the goal storage quantity to maneuver the datafile (for instance, rdsdbdata2).

Transfer a tablespace from major quantity to further quantity

Within the following code, we transfer a tablespace from the first quantity rdsdbdata to the brand new further storage quantity rdsdbdata2:

SELECT tablespace_name,file_id,file_name
FROM dba_data_files
WHERE tablespace_name="MYNEWTABLESPACE";

TABLESPACE_NAME FILE_ID FILE_NAME
------------------------- ---------- -------------------------------------
MYNEWTABLESPACE 6
/rdsdbdata/db/ORCL_A/datafile/o1_mf_mynewtab_n563b2kn_.dbf

EXECUTE rdsadmin.rdsadmin_util.move_datafile( 6, 'rdsdbdata2');
PL/SQL process efficiently accomplished.

SELECT tablespace_name,file_id,file_name
FROM dba_data_files
WHERE tablespace_name="MYNEWTABLESPACE";

TABLESPACE_NAME FILE_ID FILE_NAME
------------------------- ---------- -------------------------------------
MYNEWTABLESPACE 6
/rdsdbdata2/db/ORCL_A/datafile/o1_mf_mynewtab_n56cdlw2_.dbf

Transfer desk information and indexes between major and extra volumes

You’ll be able to optimize database storage by creating tablespaces on further storage volumes after which transferring particular database objects (tables, indexes, and partitions) to those tablespaces. You should use commonplace Oracle instructions as proven within the following instance. This method is especially beneficial for efficiency tuning when your database comprises information with completely different entry patterns. You should use these instructions to maneuver database objects in each Oracle EE and Oracle SE2. Nevertheless, you’ll be able to transfer database objects utilizing a web based operation solely in Oracle EE. For instance, you’ll be able to retailer regularly accessed operational information on high-performance storage volumes whereas transferring not often accessed historic information to lower-cost storage volumes.

  1. Create new tablespaces on the extra quantity:
    ALTER SESSION SET db_create_file_dest="/rdsdbdata2/db";
    CREATE TABLESPACE new_tablespace DATAFILE SIZE 10G;
    CREATE TABLESPACE historical_data DATAFILE SIZE 10G;

  2. To maneuver a desk to your further storage quantity utilizing a web based operation (Oracle EE solely), use the next code:
    ALTER TABLE staff
    MOVE TABLESPACE new_tablespace ONLINE;

  3. To maneuver a desk partition to your further storage quantity utilizing a web based operation (Oracle EE solely, and partitioning can be an EE function), use the next code. This strikes sometimes accessed information into the historical_data tablespace, which is on the extra quantity.
    ALTER TABLE orders
    MOVE PARTITION orders_2022
    TABLESPACE historical_data ONLINE;

  4. To maneuver an index to your further storage quantity utilizing a web based operation (Oracle EE solely), use the next code:
    ALTER INDEX employees_idx
    REBUILD ONLINE TABLESPACE new_tablespace;

  5. To observe the progress of knowledge motion, use the next queries:
    1. Verify lively periods with lengthy operations:
      SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds
      FROM v$session_longops
      WHERE time_remaining > 0;

    2. Verify house utilization in your tablespaces:
      SELECT tablespace_name, used_percent
      FROM dba_tablespace_usage_metrics
      ORDER BY used_percent DESC;

Greatest practices for utilizing further storage volumes

The next are some greatest practices when working with further storage volumes in Amazon RDS for Oracle:

  • In case your database comprises tables with BLOB and CLOB objects that eat substantial cupboard space however are sometimes accessed, you’ll be able to optimize it by making a tablespace for LOB information on an extra storage quantity and transferring the big objects.
  • To scale back Amazon RDS storage measurement, you’ll be able to transfer and delete the objects and tablespaces on the extra storage quantity after which delete the extra storage quantity. The first quantity (rdsdbdata) can’t be deleted; solely further volumes will be deleted when the volumes are empty.
  • Take a look at your information transfer operation from the first to further storage quantity in your dev surroundings to get a baseline for time and efficiency earlier than performing in manufacturing. It will depend on measurement of the item, IOPS, and the way busy the database is.
  • Monitor your information motion progress by querying v$session_longops and monitoring tablespace utilization.
  • Amazon RDS storage operations work in a different way with further storage volumes as a result of every quantity operates independently. For instance, think about an RDS for Oracle occasion with a major quantity (rdsdbdata) of io2 storage sort with 45 TiB capability, and one further storage quantity (rdsdbdata2) of gp3 storage sort with 10 TiB capability. Now you can concurrently set off a storage modification operation on every quantity. You’ll be able to enhance the IOPS on the first quantity, which is able to provoke a storage modify operation on rdsdbdata. Whereas that is in progress, you’ll be able to set off one other modify operation on rdsdbdata2, for instance, scale up the amount by 2 TiB. As a result of every operation is on a separate quantity, you’ll be able to set off a number of storage modification operations.
  • A snapshot of an RDS occasion with an extra storage quantity contains all volumes. You’ll be able to’t take a snapshot of particular volumes.
  • When restoring from a snapshot, you’ll be able to add new further storage volumes or modify current further storage volumes. The identical is relevant for time limit restoration (PITR).
  • After a datafile transfer operation is full, all the time take a snapshot in order that the right file places are mirrored within the newest snapshot.
  • If utilizing further storage volumes in an RDS for Oracle occasion with a learn reproduction, we suggest utilizing parameter group settings to handle the datafile location as an alternative of session-level adjustments to take care of constant habits between major and reproduction situations.
  • Oracle has a number of options to archive Oracle information. These embrace, however are usually not restricted to, Oracle In-Database Archiving (IDA), Oracle Information Pump Entry Driver, and Oracle Partitioning. Oracle archiving may also be applied utilizing Oracle Data Lifecycle Administration (Oracle ILM). With Oracle ILM, you’ll be able to outline information lessons and place them on completely different storage tiers. Oracle ILM can even use further Oracle options, reminiscent of information partitioning, superior row compression, hybrid columnar compression, Computerized Information Optimization (ADO), Warmth Map, direct NFS consumer, Clonedb, SecureFiles, In-Database Archiving, and Database File System (DBFS). You’ll be able to implement Oracle ILM with RDS for Oracle situations with further storage volumes. To implement an ILM technique for information motion in your database, you should use Warmth Map and ADO options. Discuss with Utilizing Warmth Map for particulars.
  • When you’ve got an RDS for Oracle occasion with Multi-AZ enabled and are utilizing an extra storage quantity, every quantity is replicated in parallel to the standby occasion. This comes with the good thing about elevated replication bandwidth for writes.
  • For added storage volumes, new per-volume metrics are added for the I/O associated CloudWatch metrics, reminiscent of:
    FreeStorageSpace
    WriteThroughput
    ReadThroughput
    WriteIOPS
    ReadIOPS
    WriteLatency
    ReadLatency
    DiskQueueDepth

    For instance, volume-level WriteIOPS are proven as “WriteIOPS (per quantity)” on the CloudWatch console.

    Extra exactly, volume-level metrics will be captured with the CloudWatch dimension (DbInstanceIdentifier, VolumeName).

    Metrics collected by Enhanced Monitoring for the first storage quantity (rdsdbdata) at the moment are collected for added storage volumes. You’ll be able to view these OS metrics on the Amazon RDS console by selecting Enhanced Monitoring on the Monitoring tab. Discuss with OS metrics in Enhanced Monitoring for an inventory and outline of Enhanced Monitoring metrics.

Conclusion

On this put up, we walked by means of the brand new further storage quantity function launched in Amazon RDS for Oracle, its use instances, and key advantages. We additionally highlighted the most effective practices and issues to observe whereas working with further storage volumes in Amazon RDS for Oracle. When you’ve got any questions or suggestions, please depart a remark.

In regards to the authors

Yamuna Palasamudram

Yamuna Palasamudram

Yamuna is a Principal Database Specialist Options Architect with AWS. She works with the AWS relational database crew, specializing in business database engines like Oracle. She enjoys working with prospects to assist design, deploy, and optimize relational database workloads on AWS, and offering technical steering to prospects.

Amit Grover

Amit Grover

Amit has been engaged on relational databases for over 20 years and is presently working as a Principal Engineer for RDS Business Engines. Amit’s present focus is on the design of multi-tenant databases, storage, and I/O subsystems redesign for Amazon RDS.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles