

# 在 RDS for Oracle 中使用临时文件
使用 Oracle 临时文件

## 在只读副本上向实例存储中添加临时文件


当您在主数据库实例上创建临时表空间时，只读副本不会创建临时文件。假设由于以下原因之一，只读副本上存在一个空的临时表空间：
+ 您从只读副本上的表空间中删除了一个临时文件。有关更多信息，请参阅 [删除只读副本上的临时文件](Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica.md)。
+ 您在主数据库实例上创建了一个新的临时表空间。在这种情况下，RDS for Oracle 会将元数据同步到只读副本。

您可以将临时文件添加到空的临时表空间，并将临时文件存储在实例存储中。要在实例存储中创建临时文件，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.add_inst_store_tempfile`。您只能在只读副本上使用此过程。 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  是  |  只读副本上临时表空间的名称。  | 

在以下示例中，您的只读副本上存在空的临时表空间 *temp01*。运行以下命令以创建此表空间的临时文件，并将其存储在实例存储中。

```
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => 'temp01');
```

有关更多信息，请参阅 [在 RDS for Oracle 实例存储中存储临时数据](CHAP_Oracle.advanced-features.instance-store.md)。

# 删除只读副本上的临时文件


您不能删除只读副本上的现有临时表空间。您可以将只读副本上的临时文件存储从 Amazon EBS 更改为实例存储，或者从实例存储更改为 Amazon EBS。为实现这些目标，请执行以下操作：

1. 删除只读副本上临时表空间中的当前临时文件。

1. 在不同的存储上创建新的临时文件。

要删除临时文件，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util. drop_replica_tempfiles`。您只能在只读副本上使用此过程。`drop_replica_tempfiles` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  是  |  只读副本上临时表空间的名称。  | 

假设一个名为 *temp01* 的临时表空间位于只读副本上的实例存储中。通过运行以下命令，删除此表空间中的所有临时文件。

```
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => 'temp01');
```

有关更多信息，请参阅 [在 RDS for Oracle 实例存储中存储临时数据](CHAP_Oracle.advanced-features.instance-store.md)。