

# RDS for Oracle 中附加存储卷的使用案例
<a name="User_Oracle_AdditionalStorage.UseCases"></a>

附加存储卷支持各种数据库管理方案。以下各节介绍了常见的使用案例和实施方法。

**Topics**
+ [将存储容量扩展到 64 TiB 以上](#User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity)
+ [在单独的卷上对频繁和不频繁访问的数据进行存储分层](#User_Oracle_AdditionalStorage.UseCases.Storagetiering)
+ [用于数据加载和卸载的临时存储](#User_Oracle_AdditionalStorage.UseCases.Temporarystorage)
+ [将 Oracle 可传输表空间与附加存储卷结合使用](#User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces)

## 将存储容量扩展到 64 TiB 以上
<a name="User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity"></a>

当主存储卷接近 64 TiB 限制但数据库中需要更多存储空间时，您可以使用附加存储卷。您可以使用 `modify-db-instance` 命令将附加存储卷连接到数据库实例，每个存储卷最多 64 TiB。连接附加存储卷后，您可以在附加存储卷上创建表空间，并使用标准 Oracle SQL 将表、索引和分区等对象移动到这些表空间。有关更多信息，请参阅 [在 RDS for Oracle 中对附加存储卷执行数据库管理操作](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement)。

## 在单独的卷上对频繁和不频繁访问的数据进行存储分层
<a name="User_Oracle_AdditionalStorage.UseCases.Storagetiering"></a>

您可以通过在卷之间配置不同的存储类型，使用附加存储卷来优化成本和性能。例如，您可以使用高性能预调配 IOPS SSD 存储（io2）卷来存储频繁访问的数据，而将历史数据存储在经济实惠的通用型（gp3）存储卷上。您可以使用标准 Oracle 命令将特定的数据库对象（表、索引和分区）移动到这些表空间。有关更多信息，请参阅 [在 RDS for Oracle 中对附加存储卷执行数据库管理操作](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement)。

## 用于数据加载和卸载的临时存储
<a name="User_Oracle_AdditionalStorage.UseCases.Temporarystorage"></a>

您可以按照以下步骤，使用附加存储卷作为大型数据加载或导出的临时存储：
+ 使用以下命令在附加存储卷上创建一个目录：

  ```
  BEGIN
  rdsadmin.rdsadmin_util.create_directory(
              p_directory_name => 'DATA_PUMP_DIR2',
              p_database_volume_name => 'rdsdbdata2');
  END;
  /
  ```
+ 创建目录后，按照[使用 Oracle Data Pump 导入](Oracle.Procedural.Importing.DataPump.md)中所述的步骤将数据导出并导入到新目录。
+ 操作完成后，移除文件，并可以选择删除该卷以节省存储成本。只有当附加存储卷为空时，您才能移除该存储卷。

## 将 Oracle 可传输表空间与附加存储卷结合使用
<a name="User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces"></a>

您可以通过 Oracle 可传输表空间，使用附加存储卷将数据文件移动到附加存储卷中，步骤如下：
+ 在使用附加存储卷将可传输表空间导入到目标数据库之前，先在会话级别设置 `db_create_file_dest` 参数。

  ```
  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;
  ```
+ 检查可传输表空间导入状态：

  ```
  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;
  ```
+ 可传输表空间导入完成后，导入可传输表空间元数据。

  ```
  BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata(
  p_datapump_metadata_file => 'xttdump.dmp',
  p_directory_name => 'XTTS_DIR_DATA2');
  END;
  /
  ```