

# Oracle DB 인스턴스에 대한 공통 기타 작업 수행
<a name="Appendix.Oracle.CommonDBATasks.Misc"></a>

그 다음에는 Oracle을 실행하는 Amazon RDS DB 인스턴스에서 기타 DBA 작업을 수행하는 방법을 알아봅니다. 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않으며, 고급 권한이 필요한 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다.

**Topics**
+ [메인 데이터 스토리지 공간에서 디렉터리 생성 및 삭제](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [DB 인스턴스 디렉터리의 파일 목록 표시](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [DB 인스턴스 디렉터리의 파일 목록 읽기](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [Opatch 파일 액세스](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [Advisor 작업 관리](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [테이블스페이스 전송](rdsadmin_transport_util.md)

## 메인 데이터 스토리지 공간에서 디렉터리 생성 및 삭제
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

디렉터리를 생성하려면 Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.create_directory`를 사용합니다. 디렉터리를 최대 10,000개까지 만들어 메인 데이터 스토리지 공간에 저장할 수 있습니다. 디렉터리를 삭제하려면 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
```

DB 인스턴스의 마스터 사용자 이름은 새로운 디렉터리에서도 읽기/쓰기 권한이 있으며, 다른 사용자에게 액세스 권한을 부여할 수도 있습니다. `EXECUTE` 권한은 DB 인스턴스의 디렉터리에 사용할 수 없습니다. 디렉터리는 메인 데이터 스토리지 공간에 생성되어 일정 공간과 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)를 참조하세요.

## DB 인스턴스 디렉터리의 파일 목록 표시
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

디렉터리의 파일을 나열하려면 Amazon RDS 프로시저 `rdsadmin.rds_file_util.listdir`을 사용합니다. Oracle 복제본의 경우 이 프로시저가 지원되지 않습니다. `listdir` 프로시저에는 다음과 같은 파라미터가 있습니다.


****  

| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  예  |  목록을 표시할 디렉터리의 이름입니다.  | 

다음 예에서는 사용자 `rdsadmin`에게 디렉터리 `PRODUCT_DESCRIPTIONS`에 대한 읽기/쓰기 권한을 부여한 다음 이 디렉터리에 있는 파일을 나열합니다.

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

## DB 인스턴스 디렉터리의 파일 목록 읽기
<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(Bring Your Own Licence) 고객에 대한 서비스 요청을 개시하기 위해 Oracle Support는 해당 `lsinventory` 파일 및 Opatch 에서 생성된 `lsinventory_detail` 파일을 요청합니다.

관리형 서비스 환경을 제공하기 위해 Amazon RDS는 Opatch에 대한 shell 액세스를 제공하지 않습니다. 그 대신, BDUMP 디렉터리의 `lsinventory-dbv.txt`에는 현재 엔진 버전과 관련한 패치 정보가 포함되어 있습니다. 마이너 또는 메이저 업그레이드를 수행하면 Amazon RDS가 패치를 적용한 후 1 시간 이내에 `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*는 DB 버전의 전체 이름입니다. `lsinventory-dbv.txt` 파일은 모든 DB 버전에서 사용할 수 있습니다. 해당 `lsinventory_detail-dbv.txt`는 19.0.0.0, ru-2020-01.rur-2020-01.r1 이상 버전에서 사용할 수 있습니다.

예를 들어 DB 버전이 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
```

DB 엔진의 현재 버전과 일치하는 파일을 다운로드해야 합니다.

### 콘솔
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.console"></a>

**콘솔을 사용하여 인벤토리 파일을 다운로드하려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. 보고자 하는 로그 파일을 보유한 DB 인스턴스의 이름을 선택합니다.

1. **로그 및 이벤트** 탭을 선택합니다.

1. 아래로 스크롤하여 [**Logs**] 섹션을 찾습니다.

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 DB 버전으로 바꿉니다. 예를 들어, DB 버전은 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 DB 버전으로 바꿉니다. 예를 들어, DB 버전은 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;
```

## Advisor 작업 관리
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

Oracle Database에는 다양한 Advisor가 포함되어 있습니다. 각 Advisor는 자동화 및 수동 작업을 지원합니다. `rdsadmin.rdsadmin_util` 패키지의 프로시저를 사용하여 일부 Advisor 작업을 관리할 수 있습니다.

Advisor 작업 프로시저는 다음 엔진 버전에서 사용할 수 있습니다.
+ 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**
+ [Advisor 작업에 대한 파라미터 설정](#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)

### Advisor 작업에 대한 파라미터 설정
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

일부 Advisor 작업에 대한 파라미터를 설정하려면 Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.advisor_task_set_parameter`를 사용합니다. `advisor_task_set_parameter` 프로시저에는 다음과 같은 파라미터가 있습니다.


****  

| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  예  |  파라미터를 변경할 Advisor 작업의 이름입니다. 유효한 값은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html)  | 
|  `p_parameter`  |  varchar2  |  —  |  예  |  작업 파라미터의 이름입니다. Advisor 작업에 유요한 파라미터를 찾으려면 다음 쿼리를 실행합니다. *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>  | 

다음 PL/SQL 프로그램은 `ACCEPT_PLANS`에 대해 `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;
```

다음 PL/SQL 프로그램은 `EXECUTION_DAYS_TO_EXPIRE`에 대해 `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  |  —  |  예  |  비활성화할 Advisor 작업의 이름입니다. 유일한 유효 값은 `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 DB 인스턴스로 복사합니다. 물리적 수준에서 전송 가능한 테이블스페이스 기능은 소스 데이터 파일과 메타데이터 파일을 대상 인스턴스에 점진적으로 복사합니다. Amazon EFS 또는 Amazon S3를 사용하여 파일을 전송할 수 있습니다. 자세한 내용은 [Oracle 전송 가능한 테이블스페이스를 사용한 마이그레이션](oracle-migrating-tts.md) 단원을 참조하십시오.

**Topics**
+ [전송된 테이블스페이스를 DB 인스턴스로 가져오기](rdsadmin_transport_util_import_xtts_tablespaces.md)
+ [전송 가능한 테이블스페이스를 DB 인스턴스로 가져오기](rdsadmin_transport_util_import_xtts_metadata.md)
+ [테이블스페이스 가져오기 후 분리된 파일 나열](rdsadmin_transport_util_list_xtts_orphan_files.md)
+ [테이블스페이스 가져오기 후 분리된 파일 삭제](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md)

# 전송된 테이블스페이스를 DB 인스턴스로 가져오기
<a name="rdsadmin_transport_util_import_xtts_tablespaces"></a>

`rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` 프로시저를 사용하여 원본 DB 인스턴스에서 이전에 내보낸 테이블스페이스를 복원합니다. 전송 단계에서는 읽기 전용 테이블스페이스를 백업하고 Data Pump 메타데이터를 내보내고 이러한 파일을 대상 DB 인스턴스로 전송하고 테이블스페이스를 가져옵니다. 자세한 내용은 [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를 입력합니다. 플랫폼 목록을 찾으려면 `V$TRANSPORTABLE_PLATFORM`을 쿼리하세요. 기본 플랫폼은 little endian인 Linux x86 64비트입니다.  | 
|  `p_parallel`  |  `INTEGER`  |  `0`  |  아니요  |  병렬 처리의 정도입니다. 기본적으로 병렬 처리는 비활성화됩니다.  | 

## 예제
<a name="rdsadmin_transport_util_import_xtts_tablespaces-examples"></a>

다음 예에서는 *DATA\$1PUMP\$1DIR* 디렉터리에서 *TBS1*, *TBS2* 및 *TBS3* 테이블스페이스를 가져옵니다. 소스 플랫폼은 플랫폼 ID가 `6`인 AIX 기반 시스템(64비트)입니다. `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
```

# 전송 가능한 테이블스페이스를 DB 인스턴스로 가져오기
<a name="rdsadmin_transport_util_import_xtts_metadata"></a>

`rdsadmin.rdsadmin_transport_util.import_xtts_metadata` 프로시저를 사용하여 전송 가능한 테이블스페이스 메타데이터를 RDS for Oracle DB 인스턴스로 가져옵니다. 작업 중에 메타데이터 가져오기 상태가 `rdsadmin.rds_xtts_operation_info` 테이블에 표시됩니다. 자세한 내용은 [5단계: 대상 DB 인스턴스에 테이블스페이스 메타데이터 가져오기](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>

이 예시에서는 *DATA\$1PUMP\$1DIR*에 위치한 *xttdump.dmp* 파일에서 테이블스페이스 메타데이터를 가져옵니다.

```
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` 프로시저를 사용하여 테이블스페이스 가져오기 후 분리된 데이터 파일을 삭제합니다. 이 명령을 실행하면 `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` 이름 형식을 사용하는 로그 파일이 `BDUMP` 디렉터리에 생성됩니다. `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.
```