

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exécution des tâches diverses pour les instances de base de données Oracle
<a name="Appendix.Oracle.CommonDBATasks.Misc"></a>

Vous trouverez ci-dessous des informations sur la façon d'effectuer diverses tâches DBA sur vos instances de base de données Amazon RDS exécutant Oracle. Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés. 

**Topics**
+ [Création et suppression de répertoires dans l'espace de stockage de données principal](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [Établissement de la liste des fichiers situés dans un répertoire d'instance de base de données](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [Lecture de fichiers dans un répertoire d'instance de base de données](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [Accès aux fichiers Opatch](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [Gestion des tâches de conseiller](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [Transport des espaces de table](rdsadmin_transport_util.md)

## Création et suppression de répertoires dans l'espace de stockage de données principal
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

Pour créer des répertoires, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.create_directory`. Vous pouvez créer jusqu'à 10 000 répertoires, tous situés dans votre espace principal de stockage des données. Pour supprimer des répertoires, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.drop_directory`.

Les procédures `create_directory` et `drop_directory` ont le paramètre requis suivant. 


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_directory_name` | VARCHAR2 | — | Oui | Nom du répertoire. | 

L'exemple suivant crée un répertoire nommé `PRODUCT_DESCRIPTIONS`. 

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

Le dictionnaire de données stocke le nom du répertoire en majuscules. Vous pouvez lister les répertoires en interrogeant `DBA_DIRECTORIES`. Le système choisit le nom du chemin réel de l'hôte automatiquement. L’exemple suivant récupère le chemin du répertoire nommé `PRODUCT_DESCRIPTIONS` : 

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

Le nom d'utilisateur maître de l'instance de base de données possède des privilèges de lecture et d'écriture dans le nouveau répertoire et peut accorder l'accès à d'autres utilisateurs. Les privilèges `EXECUTE` ne sont pas disponibles pour les répertoires sur une instance de base de données. Les répertoires sont créés dans votre espace de stockage de données principal et consommeront de l'espace et de la I/O bande passante. 

L'exemple suivant supprime le répertoire nommé `PRODUCT_DESCRIPTIONS`. 

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

**Note**  
Vous pouvez également supprimer un répertoire à l'aide de la commande SQL Oracle `DROP DIRECTORY`. 

La suppression d'un répertoire ne supprime pas son contenu. Étant donné que la procédure `rdsadmin.rdsadmin_util.create_directory` peut réutiliser les noms de chemin, les fichiers figurant dans les répertoires supprimés peuvent apparaître dans un répertoire nouvellement créé. Avant de supprimer un répertoire, nous vous recommandons d'utiliser `UTL_FILE.FREMOVE` pour supprimer les fichiers du répertoire. Pour plus d’informations, consultez [FREMOVE Procedure](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) dans la documentation Oracle.

## Établissement de la liste des fichiers situés dans un répertoire d'instance de base de données
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

Pour lister les fichiers contenus dans un répertoire, utilisez la procédure Amazon RDS `rdsadmin.rds_file_util.listdir`. Cette procédure n’est pas prise en charge sur un réplica Oracle. La procédure `listdir` possède les paramètres suivants. 


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_directory` | varchar2 | — | Oui | Nom du répertoire à lister. | 

L'exemple suivant accorde des read/write privilèges sur le répertoire `PRODUCT_DESCRIPTIONS` à l'utilisateur`rdsadmin`, puis répertorie les fichiers de ce répertoire. 

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

## Lecture de fichiers dans un répertoire d'instance de base de données
<a name="Appendix.Oracle.CommonDBATasks.ReadingFiles"></a>

Pour lire un fichier texte, utilisez la procédure Amazon RDS `rdsadmin.rds_file_util.read_text_file`. La procédure `read_text_file` possède les paramètres suivants. 


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_directory` | varchar2 | — | Oui | Nom du répertoire qui contient le fichier. | 
| `p_filename` | varchar2 | — | Oui | Nom du fichier à lire. | 

L'exemple suivant lit le fichier `rice.txt` dans le répertoire `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;
/
```

L'exemple suivant lit le fichier `rice.txt` figurant dans le répertoire `PRODUCT_DESCRIPTIONS`. 

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

## Accès aux fichiers Opatch
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files"></a>

Opatch est un utilitaire Oracle qui permet l'application et la restauration de correctifs sur le logiciel Oracle. Le mécanisme Oracle qui permet de déterminer les correctifs ayant été appliqués à une base de données est la commande `opatch lsinventory`. Pour ouvrir des demandes de service pour les clients Bring Your Own Licence (BYOL), le support Oracle demande le fichier `lsinventory` et parfois le fichier `lsinventory_detail` généré par Opatch.

Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell à Opatch. En lieu et place, le `lsinventory-{{dbv}}.txt` dans le répertoire BDUMP contient les informations de correctif relatives à la version actuelle de votre moteur. Lorsque vous effectuez une mise à niveau mineure ou majeure, Amazon RDS met à jour `lsinventory-{{dbv}}.txt` dans l'heure suivant l'application du correctif. Pour vérifier les correctifs appliqués, consultez `lsinventory-{{dbv}}.txt`. Cette action revient à exécuter la commande `opatch lsinventory`.

**Note**  
Les exemples de cette section supposent que le répertoire BDUMP est nommé `BDUMP`. Sur un réplica en lecture, le nom du répertoire BDUMP est différent. Pour savoir comment obtenir le nom BDUMP en interrogeant `V$DATABASE.DB_UNIQUE_NAME` sur un réplica en lecture, consultez [Liste de fichiers](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest).

Les fichiers d'inventaire utilisent la convention de dénomination Amazon RDS `lsinventory-{{dbv}}.txt` et `lsinventory_detail-{{dbv}}.txt` indiquent où se {{dbv}} trouve le nom complet de votre version de base de données. Le fichier `lsinventory-{{dbv}}.txt` est disponible sur toutes les versions de base de données. La `lsinventory_detail-{{dbv}}.txt` correspondante est disponible sur 19.0.0.0, ru-2020-01.rur-2020-01.r1 ou version ultérieure.

Par exemple, si votre version de base de données est 19.0.0.0.ru-2021-07.rur-2021-07.r1, vos fichiers d'inventaire portent les noms suivants.

```
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
```

Assurez-vous de télécharger les fichiers qui correspondent à la version actuelle de votre moteur de base de données.

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

**Pour télécharger un fichier d'inventaire à l'aide de la console**

1. Ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans la panneau de navigation, choisissez **Databases (Bases de données)**.

1. Choisissez le nom de l’instance de base de données qui contient le fichier journal que vous voulez consulter.

1. Choisissez l’onglet **Logs & events** (Journaux et événements).

1. Faites défiler jusqu'à la section **Journaux**.

1. Dans la section **Logs (Journaux)** recherchez `lsinventory`.

1. Sélectionnez le fichier auquel vous souhaitez accéder, puis choisissez **Download (Télécharger)**.

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

Pour lire le fichier `lsinventory-{{dbv}}.txt` dans un client SQL, vous pouvez utiliser une instruction `SELECT`. Pour cette technique, utilisez l'une des fonctions `rdsadmin` suivantes : `rdsadmin.rds_file_util.read_text_file` ou `rdsadmin.tracefile_listing`.

Dans l'exemple de requête suivant, remplacez-le {{dbv}} par votre version de base de données Oracle. Par exemple, la version de votre base de données peut être 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>

Pour lire le `lsinventory-{{dbv}}.txt` dans un client SQL, vous pouvez écrire un PL/SQL programme. Ce programme utilise `utl_file` pour lire le fichier et `dbms_output` pour l'imprimer. Ce sont des Oracle-supplied packages. 

Dans l'exemple de programme suivant, remplacez-le {{dbv}} par votre version de base de données Oracle. Par exemple, la version de votre base de données peut être 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;
/
```

Ou interrogez `rdsadmin.tracefile_listing` et spoulez la sortie vers un fichier. L'exemple suivant spoule la sortie vers `/tmp/tracefile.txt`.

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

## Gestion des tâches de conseiller
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

Oracle Database comprend un nombre de conseillers. Chaque conseiller prend en charge des tâches automatisées et manuelles. Vous pouvez utiliser des procédures dans le package `rdsadmin.rdsadmin_util` pour gérer certaines tâches de conseiller.

Les procédures de tâches de conseiller sont disponibles dans les versions suivantes du moteur :
+ Oracle Database 21c (21.0.0)
+ Version 19.0.0.0.ru-2021-01.rur-2021-01.r1 et versions ultérieures de Oracle Database 19c 

  Pour plus d’informations, consultez [Version 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) dans *Notes de mise à jour d’Amazon RDS for Oracle*.

**Topics**
+ [Définition des paramètres des tâches de conseiller](#Appendix.Oracle.CommonDBATasks.setting-task-parameters)
+ [Désactivation de AUTO\_STATS\_ADVISOR\_TASK](#Appendix.Oracle.CommonDBATasks.dropping-advisor-task)
+ [Re-enabling TASK\_AUTO\_STATS\_ADVISOR\_TASK](#Appendix.Oracle.CommonDBATasks.recreating-advisor-task)

### Définition des paramètres des tâches de conseiller
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

Pour définir les paramètres de certaines tâches de conseiller, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.advisor_task_set_parameter`. La procédure `advisor_task_set_parameter` possède les paramètres suivants.


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_task_name` | varchar2 | — | Oui | Nom de la tâche de conseiller dont vous voulez modifier les paramètres. Les valeurs suivantes sont valides :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html) | 
| `p_parameter` | varchar2 | — | Oui | Nom du paramètre de la tâche. Pour rechercher des paramètres valides d'une tâche de conseiller, exécutez la requête suivante. Remplacez {{p\_task\_name}} par une valeur valide `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 | — | Oui | Valeur d'un paramètre de la tâche. Pour rechercher des valeurs valides pour des paramètres de la tâche, exécutez la requête suivante. Remplacez {{p\_task\_name}} par une valeur valide `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> | 

Le PL/SQL programme suivant est défini `ACCEPT_PLANS` sur `FALSE` for`SYS_AUTO_SPM_EVOLVE_TASK`. La tâche automatisée SQL Plan Management vérifie les plans et génère un rapport de résultats, mais ne fait pas évoluer les plans automatiquement. Vous pouvez utiliser un rapport pour identifier de nouvelles lignes de base de SQL Plan et les accepter manuellement.

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

Le PL/SQL programme suivant est défini `EXECUTION_DAYS_TO_EXPIRE` sur `10` for`AUTO_STATS_ADVISOR_TASK`. La tâche prédéfinie `AUTO_STATS_ADVISOR_TASK` s'exécute dans la fenêtre de maintenance une fois par jour automatiquement. Dans l'exemple, la période de rétention pour l'exécution de la tâche est définie à 10 jours. 

```
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;
```

### Désactivation de AUTO\_STATS\_ADVISOR\_TASK
<a name="Appendix.Oracle.CommonDBATasks.dropping-advisor-task"></a>

Pour désactiver `AUTO_STATS_ADVISOR_TASK`, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.advisor_task_drop`. La procédure `advisor_task_drop` accepte les paramètres suivants.


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_task_name` | varchar2 | — | Oui | Nom de la tâche de conseiller qui doit être désactivée. La seule valeur valide est `AUTO_STATS_ADVISOR_TASK`. | 

La commande suivante désactive `AUTO_STATS_ADVISOR_TASK`.

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

Vous pouvez réactiver `AUTO_STATS_ADVISOR_TASK` en utilisant `rdsadmin.rdsadmin_util.dbms_stats_init`.

### Re-enabling TASK\_AUTO\_STATS\_ADVISOR\_TASK
<a name="Appendix.Oracle.CommonDBATasks.recreating-advisor-task"></a>

Pour réactiver `AUTO_STATS_ADVISOR_TASK`, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.dbms_stats_init`. La procédure `dbms_stats_init` n'accepte aucun paramètre.

La commande suivante réactive `AUTO_STATS_ADVISOR_TASK`.

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