AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Comment puis-je résoudre les problèmes rencontrés lors de l'intégration d'Amazon RDS pour Oracle à Amazon S3 ?
Je souhaite résoudre des problèmes lorsque j’intègre Amazon Relational Database Service (Amazon RDS) pour Oracle à Amazon Simple Storage Service (Amazon S3).
Brève description
Avant de transférer des fichiers entre une instance de base de données Amazon RDS pour Oracle et un compartiment Amazon S3, vérifiez les exigences suivantes :
- L'instance de base de données et le compartiment S3 doivent se trouver dans la même région AWS.
- Le rôle Gestion des identités et des accès AWS (AWS IAM) pour l'instance de base de données dispose de l'accès requis au compartiment S3.
- L'instance de base de données doit être associée à un groupe d'options qui inclut l'option S3_INTEGRATION.
- Vous chargez uniquement des fichiers à partir de l'objet de répertoire Oracle.
Remarque : Ce répertoire peut être un répertoire créé par l'utilisateur ou un répertoire DATA_PUMP_DIR. - Si vous utilisez un répertoire créé par l'utilisateur, assurez-vous que l'utilisateur qui effectue le chargement et le téléchargement dispose des autorisations requises sur le répertoire.
- Si vous copiez des données vers des sous-répertoires, spécifiez le nom du sous-répertoire de manière explicite lorsque vous utilisez les packages rdsadmin.
Remarque : Vous ne pouvez pas utiliser l'option S3_INTEGRATION pour copier des sous-répertoires. Vous ne pouvez utiliser l'option S3_INTEGRATION que pour copier des fichiers entre un répertoire logique Oracle tel que DATA_PUMP_DIR et Amazon S3.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Vérifier que le rôle IAM pour l'instance de base de données est autorisé à accéder au compartiment S3
Procédez comme suit :
-
Ouvrez la console Amazon Aurora et RDS.
-
Dans le volet de navigation, sélectionnez Bases de données.
-
Sélectionnez l'instance de base de données que vous souhaitez vérifier.
-
Choisissez l'onglet Connectivité et sécurité.
-
Faites défiler la page jusqu'à la section Gérer les rôles IAM et vérifiez si vous disposez d'un rôle IAM actif qui inclut les autorisations minimales suivantes :
**S3:ListBucket
S3:PutObject
**S3:GetObject
Vous pouvez également exécuter la commande describe-db-instances :aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[AssociatedRoles[*]]'Remarque : Remplacez example-db-instance par votre instance de base de données.
-
Si le rôle IAM existe mais ne possède pas d’autorisations minimales, mettez-le à jour pour inclure ces autorisations.
Si vous ne possédez pas de rôle IAM doté des autorisations requises, procédez comme suit :
- Créez une politique IAM avec les autorisations requises pour transférer les fichiers.
Remarque : Assurez-vous d'ajouter des autorisations au niveau du compartiment aux compartiments et des autorisations au niveau de l'objet aux objets lorsque vous créez la politique IAM. - Créez un rôle IAM pour votre instance de base de données Amazon RDS pour Oracle et associez votre politique au rôle.
- Associez votre rôle IAM à votre instance de base de données Amazon RDS pour Oracle.
Si le problème lié aux autorisations du compartiment persiste, utilisez l'exemple de politique suivant pour accorder au rôle IAM un accès complet au compartiment S3 :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::example-bucket/*", "arn:aws:s3:::example-bucket" ] } ] }
Important : N'accordez un accès complet au compartiment S3 que pour vérifier si la configuration incorrecte des autorisations IAM est à l'origine du problème. Une fois le problème résolu, rétablissez les autorisations personnalisées à leur état antérieur.
Pour télécharger des fichiers dans un dossier spécifique de Amazon S3, utilisez le paramètre p_s3_prefix dans la procédure rdsadmin.rdsadmin_s3_tasks.upload_to_s3. Vérifiez que vous disposez bien des autorisations nécessaires avant de télécharger les fichiers.
Par exemple, pour télécharger des fichiers dans le dossier example-folder du compartiment S3 example-bucket, vous devez attacher la politique IAM suivante :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::example-bucket/example-folder/*" ] } ] }
Vérifier qu'un groupe d'options est attaché à votre instance de base de données RDS
Procédez comme suit :
-
Ouvrez la console Aurora et RDS.
-
Dans le volet de navigation, sélectionnez Bases de données.
-
Choisissez l'instance de base de données que vous souhaitez vérifier.
-
Choisissez l'onglet Configuration et prenez note du paramètre Groupes d'options.
-
Pour vérifier si ce groupe d'options est à l’état synchronisé, exécutez la commande describe-db-instances suivante :
aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[OptionGroupMemberships[*]]'Remarque : Remplacez example-db-instance par votre instance de base de données.
-
Procédez de l’une des manières suivantes :
Si le groupe d'options n'est pas à l'état synchronisé, choisissez l'onglet Journaux et événements et consultez la section Événements récents. Identifiez le composant qui empêche le groupe d'options d'être synchronisé, puis supprimez-le de la base de données.
-ou-
Si le groupe d'options est à l’état synchronisé, vérifiez si l'option S3_INTEGRATION est comprise dans le groupe d'options. Si l'option S3_INTEGRATION n'est pas comprise dans le groupe d'options, ajoutez l’option d’intégration S3.
Remarque : Si vous recevez l’erreur « ORA-00904: "RDSADMIN"."RDSADMIN_S3_TASKS"."UPLOAD_TO_S3": invalid identifier"; », assurez-vous d'ajouter l'option S3_INTEGRATION à votre instance de base de données.
Aucune durée d’indisponibilité n’est observée lorsque vous ajoutez l'option S3_INTEGRATION. Si vous envisagez d’utiliser l'option Appliquer immédiatement, assurez-vous d'abord qu'aucune opération de maintenance n'est en attente. Si des actions de maintenance sont en attente, elles s'appliquent à l'intégration S3. Pour en savoir plus, consultez la section Maintenance d'une instance de base de données.
Charger et télécharger des fichiers
Les fichiers Amazon S3 ne sont pas directement accessibles depuis l'instance de base de données. Pour accéder à ces fichiers, vous devez les copier vers un répertoire de l'hôte Amazon RDS. Pour charger ou télécharger des fichiers depuis l'instance de base de données vers un compartiment S3, procédez comme suit :
- Utilisez la commande expdp, l'API dbms_datapump dans DATA_DUMP_DIR ou le répertoire personnalisé pour créer les fichiers d'exportation vers Amazon S3.
- Utilisez la procédure rdsadmin.rdsadmin_s3_tasks.upload_to_s3 pour charger vos fichiers dans S3.
- Utilisez la procédure rdsadmin. rdsadmin_s3_tasks.download_from_s3 pour télécharger des fichiers depuis le compartiment S3 vers le dossier DATA_PUMP_DIR ou tout autre répertoire créé par l'utilisateur.
Lorsque vous exécutez la procédure de chargement ou de téléchargement du package rdsadmin, consultez les journaux et surveillez l'état du transfert de fichiers. Pour consulter ces journaux, procédez comme suit :
-
Ouvrez la console Aurora et RDS.
-
Dans le volet de navigation, sélectionnez Bases de données.
-
Choisissez l'instance de base de données que vous souhaitez vérifier.
-
Choisissez l'onglet Journaux et événements.
-
Dans la section Journaux, entrez l'ID de tâche des procédures dans le filtre de recherche.
-
Sélectionnez le fichier renvoyé.
-
Choisissez Surveiller pour consulter les journaux ou choisissez Télécharger pour télécharger les journaux.
-
Pour lire le fichier journal généré pendant le processus de chargement ou de téléchargement, vous pouvez également exécuter l’instruction de sélection suivante :
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));Remarque : Remplacez task-id par l'ID de tâche renvoyé par la procédure.
Informations connexes
- Sujets
- Database
- Langue
- Français
Vidéos associées


Contenus pertinents
demandé il y a 3 ans
demandé il y a 2 ans
demandé il y a un an
demandé il y a 3 ans