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
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.
Rubriques
- Création et suppression de répertoires dans l'espace de stockage de données principal
- Établissement de la liste des fichiers situés dans un répertoire d'instance de base de données
- Lecture de fichiers dans un répertoire d'instance de base de données
- Accès aux fichiers Opatch
- Gestion des tâches de conseiller
- Transport des espaces de table
Création et suppression de répertoires dans l'espace de stockage de données principal
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 |
---|---|---|---|---|
|
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 principal de stockage des données et consomment de l'espace, ainsi que de la bande passante d'I/O.
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 de plus amples informations, veuillez consulter FREMOVE Procedure
Établissement de la liste des fichiers situés dans un répertoire d'instance de base de données
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 |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom du répertoire à lister. |
L'exemple suivant accorde des privilèges de lecture/écriture sur le répertoire PRODUCT_DESCRIPTIONS
à l'utilisateur rdsadmin
, puis répertorie les fichiers dans 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
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 |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom du répertoire qui contient le fichier. |
|
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
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-
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 dbv
.txtlsinventory-
dans l'heure suivant l'application du correctif. Pour vérifier les correctifs appliqués, consultez dbv
.txtlsinventory-
. Cette action revient à exécuter la commande dbv
.txtopatch 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, veuillez consulter Liste de fichiers.
Les fichiers d'inventaire utilisent la convention de dénomination Amazon RDS lsinventory-
et dbv
.txtlsinventory_detail-
, où dbv
.txtdbv
est le nom complet de votre version de base de données. Le fichier lsinventory-
est disponible sur toutes les versions de base de données. Le correspondant dbv
.txtlsinventory_detail-
est disponible sur 19.0.0.0, ru-2020-01.rur-2020-01.r1 ou version ultérieure.dbv
.txt
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.
Pour télécharger un fichier d'inventaire à l'aide de la console
Ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/
. -
Dans la panneau de navigation, choisissez Databases (Bases de données).
-
Choisissez le nom de l'instance de base de données qui contient le fichier journal que vous voulez consulter.
-
Choisissez l'onglet Logs & events (Journaux et événements).
-
Faites défiler jusqu'à la section Journaux.
-
Dans la section Logs (Journaux) recherchez
lsinventory
. -
Sélectionnez le fichier auquel vous souhaitez accéder, puis choisissez Download (Télécharger).
Pour lire le fichier lsinventory-
dans un client SQL, vous pouvez utiliser une instruction dbv
.txtSELECT
. 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 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'));
Pour lire le fichier lsinventory-
dans un client SQL, vous pouvez écrire un programme PL/SQL. Ce programme utilise dbv
.txtutl_file
pour lire le fichier et dbms_output
pour l'imprimer. Ce sont des packages fournis par Oracle.
Dans l'exemple de programme suivant, remplacez dbv
par la version de votre 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
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 dans Amazon RDS for Oracle Release Notes (Notes de mise à jour de Amazon RDS for Oracle).
Rubriques
Définition des paramètres des tâches de conseiller
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 |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de la tâche de conseiller dont vous voulez modifier les paramètres. Les valeurs suivantes sont valides :
|
|
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. Remplacer
|
|
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. Remplacer
|
Le programme PL/SQL suivant définit ACCEPT_PLANS
à FALSE
pour 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 programme PL/SQL suivant définit EXECUTION_DAYS_TO_EXPIRE
à 10
pour 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
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 |
---|---|---|---|---|
|
varchar2 |
— |
Oui |
Nom de la tâche de conseiller qui doit être désactivée. La seule valeur valide est |
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
.
Réactivation de AUTO_STATS_ADVISOR_TASK
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()