

# 执行 Oracle 数据库实例的其他任务
<a name="Appendix.Oracle.CommonDBATasks.Misc"></a>

下文中介绍了如何在运行 Oracle 的 Amazon RDS 数据库实例上执行其他 DBA 任务。为了提供托管服务体验，Amazon RDS 不允许通过 shell 访问数据库实例，而仅限访问某些需要高级权限的系统过程和表。

**Topics**
+ [在主数据存储空间中创建和删除目录](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [列出数据库实例目录中的文件](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [读取数据库实例目录中的文件](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [访问 Opatch 文件](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [管理顾问任务](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [传输表空间](rdsadmin_transport_util.md)

## 在主数据存储空间中创建和删除目录
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

要创建目录，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.create_directory`。您可以创建最多 10000 个目录 (全部位于主数据存储空间中)。要删除目录，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.drop_directory`。

`create_directory` 和 `drop_directory` 过程具有以下必需参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  —  |  是  |  目录的名称。  | 

以下示例创建一个名为 `PRODUCT_DESCRIPTIONS` 的新目录。

```
EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');
```

数据字典以大写形式存储目录名称。您可以通过查询 `DBA_DIRECTORIES` 列出目录。系统将自动选择实际主机路径名称。以下示例获取名为 `PRODUCT_DESCRIPTIONS` 的目录的目录路径：

```
SELECT DIRECTORY_PATH 
  FROM DBA_DIRECTORIES 
 WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS';
        
DIRECTORY_PATH
----------------------------------------
/rdsdbdata/userdirs/01
```

数据库实例的主用户名在新目录中拥有读取和写入权限，可以向其他用户授予访问权限。`EXECUTE` 权限不可用于数据库实例上的目录。目录在您的主数据存储空间中创建，将占用空间和 I/O 带宽。

以下示例删除名为 `PRODUCT_DESCRIPTIONS` 的目录。

```
EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
```

**注意**  
还可以使用 Oracle SQL 命令 `DROP DIRECTORY` 删除目录。

删除目录不会删除其内容。由于 `rdsadmin.rdsadmin_util.create_directory` 过程可重用路径名称，因此，删除的目录中的文件会显示在新创建的目录中。在您删除目录之前，我们建议您使用 `UTL_FILE.FREMOVE` 从目录中删除文件。有关更多信息，请参阅 Oracle 文档中的 [FREMOVE 过程](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924)。

## 列出数据库实例目录中的文件
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

要列出目录中的文件，请使用 Amazon RDS 过程 `rdsadmin.rds_file_util.listdir`。Oracle 副本不支持此过程。`listdir` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  是  |  要列出的目录的名称。  | 

以下示例将目录 `PRODUCT_DESCRIPTIONS` 的读/写权限授予用户 `rdsadmin`，然后列出此目录中的文件。

```
GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin;
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));
```

## 读取数据库实例目录中的文件
<a name="Appendix.Oracle.CommonDBATasks.ReadingFiles"></a>

要读取文本文件，请使用 Amazon RDS 过程 `rdsadmin.rds_file_util.read_text_file`。`read_text_file` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  是  |  包含文件的目录的名称。  | 
|  `p_filename`  |  varchar2  |  —  |  是  |  要读取的文件的名称。  | 

以下示例在 `rice.txt` 目录中创建 `PRODUCT_DESCRIPTIONS` 文件。

```
declare
  fh sys.utl_file.file_type;
begin
  fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w');
  utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs');
  utl_file.fclose(file=>fh);
end;
/
```

以下示例读取目录 `rice.txt` 中的文件 `PRODUCT_DESCRIPTIONS`。

```
SELECT * FROM TABLE
    (rdsadmin.rds_file_util.read_text_file(
        p_directory => 'PRODUCT_DESCRIPTIONS',
        p_filename  => 'rice.txt'));
```

## 访问 Opatch 文件
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files"></a>

Opatch 是一个 Oracle 实用程序，可用于将修补程序应用和回滚到 Oracle 软件。用于确定哪些修补程序已应用于数据库的 Oracle 机制是 `opatch lsinventory` 命令。为了向自带许可 (BYOL) 客户打开服务请求，Oracle 支持部门会请求 `lsinventory` 文件，有时还请求由 Opatch 生成的 `lsinventory_detail` 文件。

为提供托管服务体验，Amazon RDS 未提供对 Opatch 的 Shell 访问权限。相反，`lsinventory-dbv.txt` 包含与当前引擎版本相关的修补程序信息。当您执行次要或主要升级时，Amazon RDS 会在应用补丁后的一小时内更新 `lsinventory-dbv.txt`。要验证应用的补丁，请参阅`lsinventory-dbv.txt`。该操作类似于运行 `opatch lsinventory` 命令。

**注意**  
本节中的示例假定 BDUMP 目录名为 `BDUMP`。在只读副本上，BDUMP 目录名称不同。要了解如何通过对只读副本查询 `V$DATABASE.DB_UNIQUE_NAME` 来获取 BDUMP 名称，请参阅[列出文件](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest)。

清单文件使用 Amazon RDS 命名约定 `lsinventory-dbv.txt` 和 `lsinventory_detail-dbv.txt`，其中 *dbv* 是数据库版本的全名。`lsinventory-dbv.txt` 文件在所有数据库版本上均可用。对应的 `lsinventory_detail-dbv.txt` 在 19.0.0.0、ru-2020-01.rur-2020-01.r1 或更高版本上可用。

例如，如果您的数据库版本为 19.0.0.0.ru-2021-07.rur-2021-07.r1，则您的清单文件具有以下名称。

```
lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
```

确保下载与当前版本的数据库引擎匹配的文件。

### 控制台
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.console"></a>

**使用控制台下载清单文件**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择要查看其日志文件的数据库实例的名称。

1. 选择 **Logs & events (日志和事件)** 选项卡。

1. 向下滚动到**日志**部分。

1. 在**日志**部分中，搜索 `lsinventory`。

1. 选择要访问的文件，然后选择**下载**。

### SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.sql"></a>

要在 SQL 客户端中读取 `lsinventory-dbv.txt`，您可以使用 `SELECT` 语句。对于此技术，请使用以下任一 `rdsadmin` 函数：`rdsadmin.rds_file_util.read_text_file` 或 `rdsadmin.tracefile_listing`。

在下面的示例查询中，将 *dbv* 替换为您的 Oracle 数据库版本。例如，您的数据库版本可能是 19.0.0.0.ru-2020-04.rur-2020-04.r1。

```
SELECT text
FROM   TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-dbv.txt'));
```

### PL/SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.plsql"></a>

要在 SQL 客户端中读取 `lsinventory-dbv.txt`，您可以编写 PL/SQL 程序。此程序使用 `utl_file` 读取文件，并使用 `dbms_output` 打印文件。这些是 Oracle 提供的程序包。

在下面的示例程序中，将 *dbv* 替换为您的 Oracle 数据库版本。例如，您的数据库版本可能是 19.0.0.0.ru-2020-04.rur-2020-04.r1。

```
SET SERVEROUTPUT ON
DECLARE
  v_file              SYS.UTL_FILE.FILE_TYPE;
  v_line              VARCHAR2(1000);
  v_oracle_home_type  VARCHAR2(1000);
  c_directory         VARCHAR2(30) := 'BDUMP';
  c_output_file       VARCHAR2(30) := 'lsinventory-dbv.txt';
BEGIN
  v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r');
  LOOP
    BEGIN
      SYS.UTL_FILE.GET_LINE(v_file, v_line,1000);
      DBMS_OUTPUT.PUT_LINE(v_line);
    EXCEPTION
      WHEN no_data_found THEN
        EXIT;
    END;
  END LOOP;
END;
/
```

或者，查询 `rdsadmin.tracefile_listing`，并将输出后台打印到一个文件。以下示例将输出后台打印到 `/tmp/tracefile.txt`。

```
SPOOL /tmp/tracefile.txt
SELECT * 
FROM   rdsadmin.tracefile_listing 
WHERE  FILENAME LIKE 'lsinventory%';
SPOOL OFF;
```

## 管理顾问任务
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

Oracle 数据库中包含许多顾问。每个顾问都支持自动化任务和手动任务。您可以使用 `rdsadmin.rdsadmin_util` 程序包中的过程来管理一些顾问任务。

以下引擎版本中提供了顾问任务过程：
+ Oracle Database 21c (21.0.0)
+ 版本 19.0.0.0.ru-2021-01.rur-2021-01.r1 及更高 Oracle Database 19c 版本 

  有关更多信息，请参阅《Amazon RDS for Oracle 发布说明》中的[版本 19.0.0.0.ru-2021-01.rur-2021-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2021-01.rur-2021-01.r1)**。

**Topics**
+ [设置顾问任务参数](#Appendix.Oracle.CommonDBATasks.setting-task-parameters)
+ [禁用 AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.dropping-advisor-task)
+ [重新启用 AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.recreating-advisor-task)

### 设置顾问任务参数
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

要为某些顾问任务设置参数，请使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.advisor_task_set_parameter`。`advisor_task_set_parameter` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  是  |  要更改其参数的顾问任务的名称。有效值有： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html)  | 
|  `p_parameter`  |  varchar2  |  —  |  是  |  任务参数的名称。要查找顾问任务的有效参数，请运行以下查询。将 *p\$1task\$1name* 替换为 `p_task_name` 的有效值： <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 
|  `p_value`  |  varchar2  |  —  |  是  |  任务参数的值。要查找任务参数的有效值，请运行以下查询。将 *p\$1task\$1name* 替换为 `p_task_name` 的有效值： <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 

对于 `ACCEPT_PLANS`，以下 PL/SQL 程序可将 `FALSE` 设置为 `SYS_AUTO_SPM_EVOLVE_TASK`。SQL Plan Management 自动化任务可验证计划并生成其调查结果的报告，但不会自动发展计划。您可以使用报告来识别新的 SQL 计划基准并手动接受它们。

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK',
    p_parameter => 'ACCEPT_PLANS',
    p_value     => 'FALSE');
END;
```

对于 `EXECUTION_DAYS_TO_EXPIRE`，以下 PL/SQL 程序可将 `10` 设置为 `AUTO_STATS_ADVISOR_TASK`。预定义的任务 `AUTO_STATS_ADVISOR_TASK` 每天在维护时段自动运行一次。该示例将任务执行的保留周期设置为 10 天。

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'AUTO_STATS_ADVISOR_TASK',
    p_parameter => 'EXECUTION_DAYS_TO_EXPIRE',
    p_value     => '10');
END;
```

### 禁用 AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.dropping-advisor-task"></a>

要禁用 `AUTO_STATS_ADVISOR_TASK`，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.advisor_task_drop`。`advisor_task_drop` 过程接受以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  是  |  要禁用的顾问任务的名称。唯一有效值为 `AUTO_STATS_ADVISOR_TASK`。  | 

以下命令可删除 `AUTO_STATS_ADVISOR_TASK`。

```
EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')
```

您可以使用 `rdsadmin.rdsadmin_util.dbms_stats_init` 重新启用 `AUTO_STATS_ADVISOR_TASK`。

### 重新启用 AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.recreating-advisor-task"></a>

要重新启用 `AUTO_STATS_ADVISOR_TASK`，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.dbms_stats_init`。`dbms_stats_init` 过程不需要任何参数。

以下命令可重新启用 `AUTO_STATS_ADVISOR_TASK`。

```
EXEC rdsadmin.rdsadmin_util.dbms_stats_init()
```

# 传输表空间
<a name="rdsadmin_transport_util"></a>

使用 Amazon RDS 包 `rdsadmin.rdsadmin_transport_util` 将一组表空间从本地 Oracle 数据库复制到 RDS for Oracle 数据库实例。在物理层，可传输的表空间功能以递增方式将源数据文件和元数据文件复制到您的目标实例。您可以使用 Amazon EFS 或 Amazon S3 传输文件。有关更多信息，请参阅 [使用 Oracle 可传输表空间进行迁移](oracle-migrating-tts.md)。

**Topics**
+ [将传输的表空间导入到您的数据库实例](rdsadmin_transport_util_import_xtts_tablespaces.md)
+ [将可传输的表空间元数据导入到数据库实例中](rdsadmin_transport_util_import_xtts_metadata.md)
+ [列出表空间导入后的孤立文件](rdsadmin_transport_util_list_xtts_orphan_files.md)
+ [表空间导入后的孤立数据文件](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md)

# 将传输的表空间导入到您的数据库实例
<a name="rdsadmin_transport_util_import_xtts_tablespaces"></a>

使用过程 `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` 还原您之前从源数据库实例导出的表空间。在传输阶段中，您将备份只读表空间，导出 Data Pump 元数据，将这些文件传输到目标数据库实例，然后导入表空间。有关更多信息，请参阅 [阶段 4：传输表空间](oracle-migrating-tts.md#oracle-migrating-tts.final-br-phase)。

## 语法
<a name="rdsadmin_transport_util_import_xtts_tablespaces-syntax"></a>

```
FUNCTION import_xtts_tablespaces(
    p_tablespace_list IN CLOB,
    p_directory_name  IN VARCHAR2,
    p_platform_id     IN NUMBER DEFAULT 13,
    p_parallel        IN INTEGER DEFAULT 0) RETURN VARCHAR2;
```

## 参数
<a name="rdsadmin_transport_util_import_xtts_tablespaces-parameters"></a>


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_list`  |  `CLOB`  |  —  |  是  |  要导入的表空间列表。  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  是  | 包含表空间备份的目录。 | 
|  `p_platform_id`  |  `NUMBER`  |  `13`  |  否  |  提供与在备份阶段中指定的平台 ID 相匹配的平台 ID。要查找平台的列表，请查询 `V$TRANSPORTABLE_PLATFORM`。原定设置平台是 Linux x86 64 位，以 little endian 格式表示。  | 
|  `p_parallel`  |  `INTEGER`  |  `0`  |  否  |  并行度。原定设置情况下，并行度处于禁用状态。  | 

## 示例
<a name="rdsadmin_transport_util_import_xtts_tablespaces-examples"></a>

以下示例从 *DATA\$1PUMP\$1DIR* 目录中导入表空间 *TBS1*、*TBS2* 和 *TBS3*。源平台是基于 AIX 的系统（64 位），其平台 ID 为 `6`。您可以通过查询 `V$TRANSPORTABLE_PLATFORM` 查找平台 ID。

```
VAR task_id CLOB

BEGIN
  :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
        'TBS1,TBS2,TBS3',
        'DATA_PUMP_DIR',
        p_platform_id => 6);
END;
/

PRINT task_id
```

# 将可传输的表空间元数据导入到数据库实例中
<a name="rdsadmin_transport_util_import_xtts_metadata"></a>

使用过程 `rdsadmin.rdsadmin_transport_util.import_xtts_metadata` 将可传输的表空间元数据导入您的 RDS for Oracle 数据库实例。在操作期间，元数据导入的状态显示在表 `rdsadmin.rds_xtts_operation_info` 中。有关更多信息，请参阅 [步骤 5：在目标数据库实例上导入表空间元数据](oracle-migrating-tts.md#oracle-migrating-tts.transport.import-dmp)。

## 语法
<a name="rdsadmin_transport_util_import_xtts_metadata-syntax"></a>

```
PROCEDURE import_xtts_metadata(
    p_datapump_metadata_file IN SYS.DBA_DATA_FILES.FILE_NAME%TYPE,
    p_directory_name         IN VARCHAR2,
    p_exclude_stats          IN BOOLEAN DEFAULT FALSE,
    p_remap_tablespace_list  IN CLOB DEFAULT NULL,
    p_remap_user_list        IN CLOB DEFAULT NULL);
```

## 参数
<a name="rdsadmin_transport_util_import_xtts_metadata-parameters"></a>


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_datapump_metadata_file`  |  `SYS.DBA_DATA_FILES.FILE_NAME%TYPE`  |  —  |  是  |  包含可传输表空间的元数据的 Oracle Data Pump 文件的名称。  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  是  |  包含 Data Pump 文件的目录。  | 
|  `p_exclude_stats`  |  `BOOLEAN`  |  `FALSE`  |  否  |  指示是否排除统计数据的标志。  | 
|  `p_remap_tablespace_list`  |  `CLOB`  |  NULL  |  否  |  要在元数据导入期间重新映射的表空间列表。采用格式 `from_tbs:to_tbs`。例如，指定 `users:user_data`。  | 
|  `p_remap_user_list`  |  `CLOB`  |  NULL  |  否  |  要在元数据导入期间重新映射的用户架构列表。采用格式 `from_schema_name:to_schema_name`。例如，指定 `hr:human_resources`。  | 

## 示例
<a name="rdsadmin_transport_util_import_xtts_metadata-examples"></a>

该示例从文件 *xttdump.dmp* 导入表空间元数据，该文件位于目录 *DATA\$1PUMP\$1DIR* 中。

```
BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
END;
/
```

# 列出表空间导入后的孤立文件
<a name="rdsadmin_transport_util_list_xtts_orphan_files"></a>

使用 `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` 过程列出表空间导入后孤立的数据文件。确定数据文件后，可以通过调用 `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import` 将其删除。

## 语法
<a name="rdsadmin_transport_util_list_xtts_orphan_files-syntax"></a>

```
FUNCTION list_xtts_orphan_files RETURN xtts_orphan_files_list_t PIPELINED;
```

## 示例
<a name="rdsadmin_transport_util_list_xtts_orphan_files-examples"></a>

以下示例运行过程 `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`。输出显示了两个孤立的数据文件。

```
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);

FILENAME       FILESIZE
-------------- ---------
datafile_7.dbf 104865792
datafile_8.dbf 104865792
```

# 表空间导入后的孤立数据文件
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import"></a>

使用 `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` 过程删除表空间导入后孤立的数据文件。运行此命令会在 `BDUMP` 目录中生成一个使用名称格式 `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` 的日志文件。使用过程 `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import` 找出孤立的文件。您可以通过调用过程 `rdsadmin.rds_file_util.read_text_file` 来读取日志文件。有关更多信息，请参阅 [第 6 阶段：清理剩余文件](oracle-migrating-tts.md#oracle-migrating-tts.cleanup)。

## 语法
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-syntax"></a>

```
PROCEDURE cleanup_incomplete_xtts_import(
    p_directory_name IN VARCHAR2);
```

## 参数
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-parameters"></a>


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  是  |  包含孤立数据文件的目录。  | 

## 示例
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-examples"></a>

以下示例删除了 *DATA\$1PUMP\$1DIR* 中的孤立数据文件。

```
BEGIN
  rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
END;
/
```

以下示例读取了由上一个命令生成的日志文件。

```
SELECT * 
FROM TABLE(rdsadmin.rds_file_util.read_text_file(
       p_directory => 'BDUMP',
       p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));

TEXT
--------------------------------------------------------------------------------
orphan transported datafile datafile_7.dbf deleted.
orphan transported datafile datafile_8.dbf deleted.
```