Come posso risolvere i problemi relativi all'integrazione di Amazon RDS per Oracle con Amazon S3?
Desidero risolvere i problemi relativi all'integrazione di Amazon Relational Database Service (Amazon RDS) per Oracle con Amazon Simple Storage Service (Amazon S3).
Breve descrizione
Prima di trasferire file tra un'istanza database Amazon RDS per Oracle e un bucket Amazon S3, verifica i seguenti requisiti:
- L'istanza database e il bucket S3 si trovano nella stessa Regione AWS.
- Il ruolo AWS Identity and Access Management (AWS IAM) per l'istanza database ha l'accesso richiesto al bucket S3.
- L'istanza database è associata a un gruppo di opzioni e include l'opzione S3_INTEGRATION.
- I file vengono caricati solo dall'oggetto directory Oracle.
Nota: questa directory potrebbe essere una directory creata dall'utente o una directory DATA_PUMP_DIR. - Se utilizzi una directory creata dall'utente, assicurati che l'utente che esegue il caricamento e il download abbia le autorizzazioni necessarie per la directory.
- Se copi dati all'interno di sottodirectory, specifica esplicitamente il nome della sottodirectory quando utilizzi i pacchetti rdsadmin.
Nota: non puoi copiare le sottodirectory che utilizzano l'opzione S3_INTEGRATION. Puoi utilizzare solo l'opzione S3_INTEGRATION per copiare file tra una directory logica Oracle come DATA_PUMP_DIR e Amazon S3.
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Verifica che il ruolo IAM per l'istanza database abbia le autorizzazioni per il bucket S3
Completa i seguenti passaggi:
-
Apri la console Amazon Aurora e RDS.
-
Nel pannello di navigazione, scegli Database.
-
Seleziona l'istanza database che desideri controllare.
-
Scegli la scheda Connettività e sicurezza.
-
Scorri verso il basso fino alla sezione Gestisci ruoli IAM e controlla se disponi di un ruolo IAM Attivo che include le seguenti autorizzazioni minime:
S3:ListBucket
S3:PutObject
S3:GetObject
Puoi anche eseguire il comando describe-db-instances:aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[AssociatedRoles[*]]'Nota: sostituisci example-db-instance con la tua istanza database.
-
Se il ruolo IAM esiste ma non ha le autorizzazioni minime necessarie, aggiornalo per includerle.
Se non disponi di un ruolo IAM con le autorizzazioni richieste, completa i seguenti passaggi:
- Crea una policy IAM con le autorizzazioni necessarie per trasferire i file.
Nota: assicurati di aggiungere le autorizzazioni a livello di bucket ai bucket e le autorizzazioni a livello di oggetto agli oggetti quando crei la policy IAM. - Crea un ruolo IAM per l'istanza database Amazon RDS per Oracle e collega la policy al ruolo.
- Associa il ruolo IAM all'istanza database Amazon RDS per Oracle.
Se il problema con le autorizzazioni del bucket persiste, utilizza il seguente esempio di policy per concedere al ruolo IAM l'accesso completo al bucket S3:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::example-bucket/*", "arn:aws:s3:::example-bucket" ] } ] }
Importante: concedi l'accesso completo al bucket S3 solo per verificare se la configurazione errata delle autorizzazioni IAM ha causato il problema. Dopo aver risolto il problema, riporta le autorizzazioni personalizzate allo stato precedente.
Per caricare file in una cartella specifica in Amazon S3, utilizza il parametro p_s3_prefix nella procedura rdsadmin.rdsadmin_s3_tasks.upload_to_s3. Assicurati di avere le autorizzazioni necessarie prima di caricare i file.
Ad esempio, per caricare file nella cartella example-folder del bucket S3 example-bucket, collega la seguente policy IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::example-bucket/example-folder/*" ] } ] }
Verifica di avere un gruppo di opzioni collegato all'istanza database RDS
Completa i seguenti passaggi:
-
Apri la console Aurora e RDS.
-
Nel pannello di navigazione, scegli Database.
-
Scegli l'istanza database che desideri controllare.
-
Scegli la scheda Configurazione e prendi nota del parametro Gruppi di opzioni.
-
Per verificare se il gruppo di opzioni è nello stato in-sync, esegui questo comando describe-db-instances:
aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[OptionGroupMemberships[*]]'Nota: sostituisci example-db-instance con la tua istanza database.
-
Intraprendi una delle seguenti azioni:
Se il gruppo di opzioni non è nello stato in-sync, scegli la scheda Log ed eventi, quindi consulta la sezione Eventi recenti. Identifica il componente che impedisce al gruppo di opzioni di raggiungere lo stato in-sync e rimuovilo dal database.
-oppure-
Se il gruppo di opzioni è nello stato in-sync, controlla se l'opzione S3_INTEGRATION è inclusa nel gruppo di opzioni. Se l'opzione S3_INTEGRATION non è inclusa nel gruppo di opzioni, aggiungila.
Nota: se ricevi l'errore "ORA-00904: "RDSADMIN"."RDSADMIN_S3_TASKS"."UPLOAD_TO_S3": invalid identifier";", assicurati di aggiungere l'opzione S3_INTEGRATION all'istanza database.
Non si verificano tempi di inattività quando aggiungi l'opzione S3_INTEGRATION. Se intendi utilizzare l'opzione Applica immediatamente, assicurati che non vi siano azioni di manutenzione in sospeso. Se sono presenti azioni di manutenzione in sospeso, tali azioni vengono applicate con l'integrazione S3. Per ulteriori informazioni, consulta Manutenzione di un'istanza database.
Carica e scarica file
Non puoi accedere ai file di Amazon S3 direttamente nell'istanza database. Per accedere a questi file, devi copiarli in una directory dell'host Amazon RDS. Per caricare e scaricare file dall'istanza database in un bucket S3, completa i seguenti passaggi:
- Utilizza il comando expdp, l'API dbms_datapump in DATA_DUMP_DIR o la directory personalizzata per creare i file di esportazione in Amazon S3.
- Utilizza la procedura rdsadmin.rdsadmin_s3_tasks.upload_to_s3 per caricare file in S3.
- Utilizza la procedura rdsadmin. rdsadmin_s3_tasks.download_from_s3 per scaricare file dal bucket S3 nella cartella DATA_PUMP_DIR o in una directory creata dall'utente.
Quando esegui la procedura di caricamento o download del pacchetto rdsadmin, puoi visualizzare i log e monitorare lo stato del trasferimento dei file. Per visualizzarli, completa i seguenti passaggi:
-
Apri la console Aurora e RDS.
-
Nel pannello di navigazione, scegli Database.
-
Scegli l'istanza database che desideri visualizzare.
-
Scegli la scheda Log ed eventi.
-
Nella sezione Log, inserisci l'ID dell'attività restituito dalla procedura nel filtro di ricerca.
-
Seleziona il file ottenuto.
-
Scegli Guarda per visualizzare i log o Scarica per scaricarli.
-
Per leggere il file di log generato durante il processo di caricamento o download, esegui questa istruzione select:
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));Nota: sostituisci task-id con l'ID dell'attività restituito dalla procedura.
Informazioni correlate
- Argomenti
- Database
- Lingua
- Italiano
Video correlati

