Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasferimento di file tra Amazon RDS for Oracle e un bucket Amazon S3
Per trasferire file tra un'istanza DB RDS for Oracle e un bucket Amazon S3, puoi utilizzare il pacchetto Amazon. RDS rdsadmin_s3_tasks
Puoi comprimere i file con GZIP quando li carichi e decomprimerli durante il download.
Argomenti
Requisiti e limitazioni per il trasferimento di file
Prima di trasferire file tra l'istanza DB e un bucket Amazon S3, tieni presente quanto segue:
-
Il
rdsadmin_s3_tasks
pacchetto trasferisce i file che si trovano in un'unica directory. Non è possibile includere sottodirectory in un trasferimento. -
La dimensione massima dell'oggetto in un bucket Amazon S3 è di 5 TB.
-
Le attività create da vengono eseguite in modo
rdsadmin_s3_tasks
asincrono. -
È possibile caricare file dalla directory Data Pump, ad esempio
DATA_PUMP_DIR
, o da qualsiasi directory creata dall'utente. Non è possibile caricare file da una directory utilizzata dai processi in background di Oracle, ad esempio letrace
directoryadump
bdump
, o. -
Il limite di download è di 2000 file per procedura richiesta.
download_from_s3
Se devi scaricare più di 2000 file da Amazon S3, suddividi il processo di scaricamento in operazioni distinte contenenti non più di 2000 file per chiamata. -
Se esiste un file nella cartella di scaricamento e si tenta di scaricare un file con lo stesso nome,
download_from_s3
ignora lo scaricamento del file in questione. Per rimuovere un file dalla directory di download, utilizzare la SQL procedura PL/ UTL_FILE. FREMOVE.
Caricamento di file dalla tua istanza DB RDS per Oracle su un bucket Amazon S3
Per caricare i file da un'istanza database a un bucket Amazon S3, utilizza la procedura rdsadmin.rdsadmin_s3_tasks.upload_to_s3
. Ad esempio, puoi caricare file di backup di Oracle Recovery Manager (RMAN) o file Oracle Data Pump. Per informazioni sull'utilizzo di oggetti, consulta Guida per l'utente di Amazon Simple Storage Service. Per ulteriori informazioni sull'esecuzione RMAN dei backup, vedereEsecuzione di RMAN attività comuni per le istanze di database Oracle.
La procedura rdsadmin.rdsadmin_s3_tasks.upload_to_s3
include i seguenti parametri.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
VARCHAR2 |
– |
obbligatorio |
Il nome del bucket Amazon S3 in cui caricare i file. |
|
VARCHAR2 |
– |
obbligatorio |
Il nome dell'oggetto directory Oracle da cui caricare i file. La directory può essere un qualsiasi oggetto directory creato dall'utente o directory Data Pump, come NotaÈ possibile solo caricare i file dalla directory specificata. NOn è possibile caricare i file nelle sottodirectory nella directory specificata. |
|
VARCHAR2 |
– |
obbligatorio |
Un prefisso del nome file Amazon S3 con cui vengono caricati i file. Un prefisso vuoto carica tutti i file al livello superiore nel bucket Amazon S3 specificato e non aggiunge un prefisso ai nomi file. Ad esempio, se il prefisso è |
|
VARCHAR2 |
– |
obbligatorio |
Un prefisso nome file con cui i nomi file devono corrispondere per essere caricati. Un prefisso vuoto carica tutti i file nella directory specificata. |
|
NUMBER |
|
facoltativo |
Il livello di GZIP compressione. I valori validi sono compresi tra
|
|
VARCHAR2 |
– |
facoltativo |
L'impostazione di controllo degli accessi per il bucket. Gli unici valori validi sono null o |
Il valore restituito per la procedura rdsadmin.rdsadmin_s3_tasks.upload_to_s3
è un ID attività.
L'esempio seguente carica tutti i file nella
directory nel bucket Amazon S3 denominato DATA_PUMP_DIR
amzn-s3-demo-bucket
. I file non sono compressi.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_prefix => '', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
L'esempio seguente carica tutti i file con prefisso
nella directory db
nel bucket Amazon S3 denominato DATA_PUMP_DIR
. Amazon RDS applica il massimo livello di GZIP compressione ai file.amzn-s3-demo-bucket
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_prefix => 'db
', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
', p_compression_level =>9
) AS TASK_ID FROM DUAL;
L'esempio seguente carica tutti i file nella directory
nel bucket Amazon S3 denominato DATA_PUMP_DIR
. I file vengono caricati in una cartella amzn-s3-demo-bucket
dbfiles
. In questo esempio, il livello di GZIP compressione è 1
, che è il livello di compressione più veloce.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_prefix => '', p_s3_prefix => 'dbfiles/
', p_directory_name => 'DATA_PUMP_DIR
', p_compression_level =>1
) AS TASK_ID FROM DUAL;
L'esempio seguente carica tutti i file nella directory
nel bucket Amazon S3 denominato DATA_PUMP_DIR
. I file vengono caricati in una cartella amzn-s3-demo-bucket
dbfiles
e ora
viene aggiunto all'inizio di ogni nome file. Non viene applicata alcuna compressione.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_prefix => '', p_s3_prefix => 'dbfiles/ora
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
L'esempio seguente presuppone che il comando sia eseguito nell'account A, ma l'account B richiede il pieno controllo del contenuto del bucket. Il comando rdsadmin_s3_tasks.upload_to_s3
trasferisce tutti i file nella directory
al bucket denominato DATA_PUMP_DIR
. Il controllo degli accessi è impostato su s3bucketOwnedByAccountB
FULL_CONTROL
in modo che l'account B possa accedere ai file nel bucket. Il livello di GZIP compressione è 6
, che bilancia velocità e dimensione del file.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
s3bucketOwnedByAccountB
', p_prefix => '', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
', p_bucket_owner_full_control => 'FULL_CONTROL', p_compression_level =>6
) AS TASK_ID FROM DUAL;
In ogni esempio, l'istruzione SELECT
restituisce l'ID dell'attività in un tipo di dati VARCHAR2
.
È possibile visualizzare il risultato visualizzando il file di output dell'attività.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Replace (Sostituisci)
con l'ID dell'attività restituito dalla procedura.task-id
Nota
Le attività vengono eseguite in modo asincrono.
Download di file da un bucket Amazon S3 a un'istanza database Oracle
Per scaricare file da un bucket Amazon S3 su un'istanza RDS for Oracle, utilizza la procedura Amazon. RDS rdsadmin.rdsadmin_s3_tasks.download_from_s3
La procedura download_from_s3
include i seguenti parametri.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
VARCHAR2 |
– |
Richiesto |
Il nome del bucket Amazon S3 da cui scaricare i file. |
|
VARCHAR2 |
– |
Richiesto |
Il nome dell'oggetto directory Oracle su cui scaricare i file. La directory può essere un qualsiasi oggetto directory creato dall'utente o directory Data Pump, come |
|
VARCHAR2 |
FALSE |
Facoltativo |
Un flag che determina se l'attività genera un errore quando nessun oggetto nel bucket Amazon S3 corrisponde al prefisso. Se questo parametro non è impostato o impostato su FALSE (impostazione predefinita), l'operazione stampa un messaggio indicante che non è stato trovato alcun oggetto, ma non genera alcuna eccezione o fallisce. Se questo parametro è impostatoTRUE, l'operazione genera un'eccezione e ha esito negativo. Esempi di specifiche dei prefissi che possono non riuscire nei test di corrispondenza sono gli spazi nei prefissi, come in |
|
VARCHAR2 |
– |
Richiesto |
Un prefisso nome file con cui i nomi file devono corrispondere per essere scaricati. Un prefisso vuoto scarica tutti i file di livello superiore nel bucket Amazon S3 specificato, ma non i file nelle cartelle nel bucket. La procedura scarica gli oggetti Amazon S3 solo dalla cartella di primo livello che corrisponde al prefisso. Le strutture directory nidificate corrispondenti al prefisso specificato non vengono scaricate. Ad esempio, si supponga che un bucket Amazon S3 abbia la struttura della cartella Se, invece, viene specificato il prefisso |
|
VARCHAR2 |
– |
Facoltativo |
Il formato di decompressione. I valori validi sono |
Il valore restituito per la procedura rdsadmin.rdsadmin_s3_tasks.download_from_s3
è un ID attività.
L'esempio seguente scarica tutti i file nel bucket Amazon S3 denominato
nella directory amzn-s3-demo-bucket
. I file non sono compressi, quindi non viene applicata alcuna decompressione.DATA_PUMP_DIR
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
L'esempio seguente scarica tutti i file con prefisso
nel bucket Amazon S3 denominato db
nella directory amzn-s3-demo-bucket
. I file vengono compressi conGZIP, quindi viene applicata la decompressione. Il parametro DATA_PUMP_DIR
p_error_on_zero_downloads
attiva il controllo degli errori dei prefissi, quindi se il prefisso non corrisponde a nessun file nel bucket, l'attività genera un'eccezione e non riesce.
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_s3_prefix => 'db
', p_directory_name => 'DATA_PUMP_DIR
', p_decompression_format => 'GZIP
', p_error_on_zero_downloads => 'TRUE
') AS TASK_ID FROM DUAL;
L'esempio seguente scarica tutti i file nella cartella
nel bucket Amazon S3 denominato myfolder/
nella directory amzn-s3-demo-bucket
. Utilizzare il parametro DATA_PUMP_DIR
p_s3_prefix
per specificare la cartella Amazon S3. I file caricati vengono compressi conGZIP, ma non vengono decompressi durante il download.
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_s3_prefix => 'myfolder/
', p_directory_name => 'DATA_PUMP_DIR
', p_decompression_format => 'NONE
') AS TASK_ID FROM DUAL;
L'esempio seguente scarica il file
nel bucket Amazon S3 denominato mydumpfile.dmp
nella directory amzn-s3-demo-bucket
. Non viene applicata alcuna decompressione.DATA_PUMP_DIR
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
amzn-s3-demo-bucket
', p_s3_prefix => 'mydumpfile.dmp
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
In ogni esempio, l'istruzione SELECT
restituisce l'ID dell'attività in un tipo di dati VARCHAR2
.
È possibile visualizzare il risultato visualizzando il file di output dell'attività.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Replace (Sostituisci)
con l'ID dell'attività restituito dalla procedura.task-id
Nota
Le attività vengono eseguite in modo asincrono.
Per rimuovere i file da una directory, è possibile utilizzare la procedura Oracle UTL_FILE.FREMOVE
. Per ulteriori informazioni, vedere FREMOVEla procedura
Monitoraggio dello stato di un file transfer
Le attività di trasferimento di file pubblicano RDS gli eventi Amazon all'inizio e al termine. Il messaggio dell'evento contiene l'ID dell'attività per il trasferimento file. Per informazioni sulla visualizzazione degli eventi, consultare Visualizzazione degli RDS eventi Amazon.
È possibile visualizzare lo stato di un'attività in corso in un file bdump. I file bdump si trovano nella directory /rdsdbdata/log/trace
. Il nome del file bdump ha il formato che segue.
dbtask-
task-id
.log
Sostituire
con l'ID dell'attività da monitorare.task-id
Nota
Le attività vengono eseguite in modo asincrono.
Puoi usare la procedura memorizzata in rdsadmin.rds_file_util.read_text_file
per visualizzare i contenuti dei file bdump. Ad esempio, la query seguente restituisce i contenuti del file bdump
.dbtask-1234567890123-1234.log
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','
dbtask-1234567890123-1234.log
'));
L'esempio seguente mostra il file di log di un trasferimento non riuscito.
TASK_ID -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1234567890123-1234 TEXT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2023-04-17 18:21:33.993 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datapump/A123B4CDEF567890G1234567890H1234/sample.dmp to Amazon S3 with bucket name
amzn-s3-demo-bucket
and key sample.dmp. 2023-04-17 18:21:34.188 UTC [ERROR] RDS doesn't have permission to write to Amazon S3 bucket nameamzn-s3-demo-bucket
and key sample.dmp. 2023-04-17 18:21:34.189 UTC [INFO ] The task failed.