Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Integrasi Amazon S3
Anda dapat mentransfer file antara instans RDS untuk Oracle DB dan bucket Amazon S3. Anda dapat menggunakan integrasi Amazon S3 dengan fitur Oracle Database seperti Oracle Data Pump. Misalnya, Anda dapat mengunduh file Data Pump dari Amazon S3 ke instans DB Oracle AndaRDS. Untuk informasi selengkapnya, lihat Mengimpor data ke Oracle di Amazon RDS.
catatan
Instans DB dan bucket Amazon S3 Anda harus berada di Wilayah AWS yang sama.
Topik
Mengkonfigurasi IAM izin RDS untuk integrasi Oracle dengan Amazon S3
RDSAgar Oracle dapat berintegrasi dengan Amazon S3, instans DB Anda harus memiliki akses ke bucket Amazon S3. Amazon yang VPC digunakan oleh instans DB Anda tidak perlu menyediakan akses ke titik akhir Amazon S3.
RDSuntuk Oracle mendukung transfer file antara instans DB dalam satu akun dan bucket Amazon S3 di akun yang berbeda. Langkah tambahan yang diperlukan akan disebutkan di bagian berikut.
Topik
Langkah 1: Buat IAM kebijakan untuk RDS peran Amazon Anda
Pada langkah ini, Anda membuat kebijakan AWS Identity and Access Management (IAM) dengan izin yang diperlukan untuk mentransfer file antara bucket Amazon S3 dan instans DB RDS Anda. Pada langkah ini, Anda dianggap telah membuat bucket S3.
Sebelum membuat kebijakan, catat potongan informasi berikut:
-
Nama Sumber Daya Amazon (ARN) untuk bucket Anda
-
AWS KMS Kunci ARN untuk Anda, jika bucket Anda menggunakan enkripsi SSE - KMS atau SSE -S3
catatan
Instans RDS untuk Oracle DB tidak dapat mengakses bucket Amazon S3 yang dienkripsi dengan -C. SSE
Untuk informasi selengkapnya, lihat Melindungi data menggunakan enkripsi sisi server dalam Panduan Pengguna Amazon Simple Storage Service.
Untuk membuat IAM kebijakan agar Amazon RDS dapat mengakses bucket Amazon S3
-
Buka Konsol IAM Manajemen
. -
Di bagian Manajemen akses, pilih Kebijakan.
-
Pilih Buat Kebijakan.
-
Pada tab Editor visual, pilih Pilih layanan, lalu pilih S3.
-
Untuk Tindakan, pilih Perluas semua, lalu pilih izin bucket dan izin objek yang diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon. RDS Sebagai contoh, lakukan hal berikut:
-
Perluas Daftar, lalu pilih ListBucket.
-
Perluas Baca, lalu pilih GetObject.
-
Perluas Tulis, lalu pilih PutObjectdan DeleteObject.
-
Perluas manajemen Izin, lalu pilih PutObjectAcl. Izin ini diperlukan jika Anda ingin mengunggah file ke bucket milik akun yang berbeda, dan akun ini memerlukan kontrol penuh terhadap konten bucket.
Izin objek adalah izin untuk operasi objek di Amazon S3. Izin ini harus diberikan untuk objek di dalam bucket, bukan untuk bucket itu sendiri. Untuk informasi selengkapnya, lihat Izin untuk operasi objek.
-
-
Pilih Sumber daya, lalu lakukan hal berikut:
-
Pilih Spesifik.
-
Untuk ember, pilih Tambah ARN. Masukkan ember AndaARN. Nama bucket terisi secara otomatis. Kemudian pilih Tambahkan.
-
Jika sumber daya objek ditampilkan, pilih Tambah ARN untuk menambahkan sumber daya secara manual atau pilih Apa saja.
catatan
Anda dapat menyetel Amazon Resource Name (ARN) ke ARN nilai yang lebih spesifik RDS agar Amazon hanya dapat mengakses file atau folder tertentu di bucket Amazon S3. Untuk informasi selengkapnya tentang cara penentuan kebijakan akses untuk Amazon S3, lihat Mengelola izin akses ke sumber daya Amazon S3 Anda.
-
-
(Opsional) Pilih Tambahkan izin tambahan untuk menambahkan sumber daya ke kebijakan. Sebagai contoh, lakukan hal berikut:
-
Jika bucket Anda dienkripsi dengan KMS kunci khusus, pilih KMSlayanannya.
-
Untuk Tindakan manual, pilih opsi berikut:
-
Enkripsi
-
ReEncrypt dari dan ReEncrypt ke
-
Dekripsi
-
DescribeKey
-
GenerateDataKey
-
-
Untuk Sumber daya, pilih Spesifik.
-
Untuk kunci, pilih Tambah ARN. Masukkan kunci kustom Anda sebagai sumber daya, lalu pilih Tambah. ARN
Untuk informasi selengkapnya, lihat Melindungi Data Menggunakan Enkripsi Sisi Server dengan KMS kunci yang Disimpan di AWS Key Management Service (SSE-KMS) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
-
Jika Anda ingin Amazon mengakses RDS untuk mengakses ember lain, tambahkan ARNs untuk ember ini. Jika mau, Anda juga dapat memberikan akses ke semua bucket dan objek di Amazon S3.
-
-
Pilih Berikutnya: Tag lalu Berikutnya: Tinjau.
-
Untuk Nama, masukkan nama untuk IAM kebijakan Anda, misalnya
rds-s3-integration-policy
. Anda menggunakan nama ini ketika Anda membuat IAM peran untuk dikaitkan dengan instans DB Anda. Anda juga dapat menambahkan nilai Deskripsi opsional. -
Pilih Buat kebijakan.
Buat kebijakan AWS Identity and Access Management (IAM) yang memberi Amazon RDS akses ke bucket Amazon S3. Setelah Anda membuat kebijakan, perhatikan kebijakan tersebut. ARN Anda membutuhkan ARN untuk langkah selanjutnya.
Sertakan tindakan yang sesuai dalam kebijakan berdasarkan jenis akses yang diperlukan:
-
GetObject
— Diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon. RDS -
ListBucket
— Diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon. RDS -
PutObject
— Diperlukan untuk mentransfer file dari Amazon RDS ke ember Amazon S3.
AWS CLI Perintah berikut membuat IAM kebijakan bernama
dengan opsi ini. Kebijakan ini memberikan akses ke bucket bernama rds-s3-integration-policy
.amzn-s3-demo-bucket
contoh
Untuk Linux, macOS, atau Unix:
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*
" ] } ] }'
Contoh berikut mencakup izin untuk KMS kunci kustom.
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*
", "arn:aws:kms:::your-kms-arn
" ] } ] }'
Untuk Windows:
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*
" ] } ] }'
Contoh berikut mencakup izin untuk KMS kunci kustom.
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*
", "arn:aws:kms:::your-kms-arn
" ] } ] }'
Langkah 2: (Opsional) Buat IAM kebijakan untuk bucket Amazon S3 Anda
Langkah ini hanya diperlukan dalam kondisi berikut:
-
Anda ingin mengunggah file ke bucket Amazon S3 dari satu akun (akun A) dan mengaksesnya dari akun lain (akun B).
-
Akun B memiliki bucket.
-
Akun B memerlukan kontrol penuh atas objek yang dimasukkan ke dalam bucket tersebut.
Jika kondisi sebelumnya tidak berlaku untuk Anda, lanjutkan ke Langkah 3: Buat IAM peran untuk instans DB Anda dan lampirkan kebijakan Anda.
Untuk membuat kebijakan bucket, pastikan Anda memiliki hal berikut:
-
ID akun untuk akun A
-
Nama pengguna untuk akun A
-
ARNNilai untuk bucket Amazon S3 di akun B
Untuk membuat atau mengedit kebijakan bucket
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di daftar Bucket, pilih nama bucket yang ingin Anda buatkan kebijakan bucket atau yang kebijakan bucket-nya ingin Anda edit.
-
Pilih Izin.
-
Di bagian Kebijakan bucket, pilih Edit. Opsi ini akan membuka halaman Edit kebijakan bucket.
-
Pada halaman Edit kebijakan bucket, jelajahi contoh Kebijakan di Panduan Pengguna Amazon S3, pilih Pembuat kebijakan untuk membuat kebijakan secara otomatis, atau edit bagian JSON Kebijakan.
Jika Anda memilih Policy Generator, AWS Policy Generator akan terbuka di jendela baru:
-
Di halaman Pembuat Kebijakan AWS , di bagian Pilih Jenis Kebijakan, pilih Kebijakan Bucket S3.
-
Tambahkan pernyataan dengan memasukkan informasi di bidang yang tersedia, lalu pilih Tambahkan Pernyataan. Ulangi langkah ini sesuai jumlah pernyataan yang ingin Anda tambahkan. Untuk informasi selengkapnya tentang bidang ini, lihat referensi elemen IAM JSON kebijakan di Panduan IAM Pengguna.
catatan
Untuk kenyamanan, halaman kebijakan Edit bucket menampilkan Bucket ARN (Nama Sumber Daya Amazon) bucket saat ini di atas bidang teks Kebijakan. Anda dapat menyalin ini ARN untuk digunakan dalam pernyataan di halaman AWS Policy Generator.
-
Setelah Anda selesai menambahkan pernyataan, pilih Buat Kebijakan.
-
Salin teks kebijakan yang dihasilkan, pilih Tutup, dan kembali ke halaman Edit kebijakan bucket di konsol Amazon S3.
-
-
Di kotak Kebijakan, edit kebijakan yang ada atau tempel kebijakan bucket dari Pembuat kebijakan. Pastikan peringatan keamanan, kesalahan, peringatan umum, dan saran telah ditangani sebelum menyimpan kebijakan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-A-ID
:account-A-user
" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] } -
Pilih Simpan perubahan, yang akan membawa Anda kembali ke halaman Izin Bucket.
Langkah 3: Buat IAM peran untuk instans DB Anda dan lampirkan kebijakan Anda
Langkah ini mengasumsikan bahwa Anda telah membuat IAM kebijakan diLangkah 1: Buat IAM kebijakan untuk RDS peran Amazon Anda. Pada langkah ini, Anda membuat peran untuk instans Oracle DB Anda RDS dan kemudian melampirkan kebijakan Anda ke peran tersebut.
Untuk membuat IAM peran agar Amazon RDS dapat mengakses bucket Amazon S3
-
Buka Konsol IAM Manajemen
. -
Di panel navigasi, pilih Peran.
-
Pilih Buat peran.
-
Pilih Layanan AWS .
-
Untuk kasus Penggunaan untuk AWS layanan lain:, pilih RDSdan kemudian RDS— Tambahkan Peran ke Database. Lalu pilih Berikutnya.
-
Untuk Penelusuran di bawah Kebijakan Izin, masukkan nama IAM kebijakan yang Anda buatLangkah 1: Buat IAM kebijakan untuk RDS peran Amazon Anda, lalu pilih kebijakan saat muncul dalam daftar. Lalu pilih Berikutnya.
-
Untuk nama Peran, masukkan nama untuk IAM peran Anda, misalnya,
rds-s3-integration-role
. Anda juga dapat menambahkan nilai Deskripsi opsional. -
Pilih Buat peran.
Untuk membuat peran dan melampirkan kebijakan ke peran ini
-
Buat IAM peran yang RDS dapat diambil Amazon atas nama Anda untuk mengakses bucket Amazon S3 Anda.
Sebaiknya gunakan kunci konteks kondisi global
aws:SourceArn
danaws:SourceAccount
dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari masalah confused deputy.Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai
aws:SourceArn
berisi ID akun. Dalam hal ini, nilaiaws:SourceAccount
dan akun dalam nilaiaws:SourceArn
harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.-
Gunakan
aws:SourceArn
jika Anda menginginkan akses lintas layanan untuk satu sumber daya. -
Gunakan
aws:SourceAccount
jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.
Dalam hubungan kepercayaan, pastikan untuk menggunakan kunci konteks kondisi
aws:SourceArn
global dengan Nama Sumber Daya Amazon (ARN) lengkap dari sumber daya yang mengakses peran.AWS CLI Perintah berikut menciptakan peran yang dinamai
untuk tujuan ini.rds-s3-integration-role
contoh
Untuk Linux, macOS, atau Unix:
aws iam create-role \ --role-name
rds-s3-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'Untuk Windows:
aws iam create-role ^ --role-name
rds-s3-integration-role
^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin kepada IAM pengguna di Panduan IAM Pengguna.
-
-
Setelah peran dibuat, perhatikan ARN perannya. Anda membutuhkan ARN untuk langkah selanjutnya.
-
Lampirkan kebijakan yang Anda buat ke peran yang Anda buat.
AWS CLI Perintah berikut melampirkan kebijakan ke peran bernama
.rds-s3-integration-role
contoh
Untuk Linux, macOS, atau Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Untuk Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role
Ganti
dengan kebijakan ARN yang Anda catat di langkah sebelumnya.your-policy-arn
Langkah 4: Kaitkan IAM peran Anda dengan RDS instans DB Oracle
Langkah terakhir dalam mengonfigurasi izin untuk integrasi Amazon S3 adalah mengaitkan peran IAM Anda dengan instans DB Anda. Perhatikan persyaratan berikut:
-
Anda harus memiliki akses ke IAM peran dengan kebijakan izin Amazon S3 yang diperlukan yang dilampirkan padanya.
-
Anda hanya dapat mengaitkan satu IAM peran dengan instans DB Oracle Anda RDS pada satu waktu.
-
Instans DB Anda harus dalam status Tersedia.
Untuk mengaitkan IAM peran Anda dengan RDS instans Oracle DB
Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. -
Pilih Basis data dari panel navigasi.
-
Pilih nama RDS instans Oracle DB untuk menampilkan detailnya.
-
Pada tab Konektivitas & Keamanan, gulir ke bawah ke bagian Kelola IAM peran di bagian bawah halaman.
-
Untuk Tambahkan IAM peran ke instance ini, pilih peran yang Anda buatLangkah 3: Buat IAM peran untuk instans DB Anda dan lampirkan kebijakan Anda.
-
Untuk Fitur, pilih S3_ INTEGRATION.
-
Pilih Tambahkan peran.
AWS CLI Perintah berikut menambahkan peran ke instance Oracle DB bernama
.mydbinstance
contoh
Untuk Linux, macOS, atau Unix:
aws rds add-role-to-db-instance \ --db-instance-identifier
mydbinstance
\ --feature-name S3_INTEGRATION \ --role-arnyour-role-arn
Untuk Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Ganti
dengan peran ARN yang Anda catat di langkah sebelumnya. your-role-arn
S3_INTEGRATION
harus ditentukan untuk --feature-name
opsi.
Menambahkan opsi integrasi Amazon S3
Untuk mengintegrasikan Amazon RDS untuk Oracle dengan Amazon S3, instans DB Anda harus dikaitkan dengan grup opsi yang menyertakan S3_INTEGRATION
opsi.
Untuk mengonfigurasi grup opsi untuk integrasi Amazon S3
-
Buat grup opsi baru atau identifikasi grup opsi yang ada yang dapat ditambahi opsi
S3_INTEGRATION
.Untuk informasi tentang pembuatan grup opsi, lihat Membuat grup opsi.
-
Tambahkan opsi
S3_INTEGRATION
ke kelompok opsi.Untuk informasi tentang penambahan opsi ke grup opsi, lihat Menambahkan opsi ke grup opsi.
-
Buat instans Oracle DB baru RDS dan kaitkan grup opsi dengannya, atau modifikasi instance RDS untuk Oracle DB untuk mengaitkan grup opsi dengannya.
Untuk informasi tentang membuat instans DB, lihat Membuat instans DB Amazon RDS.
Untuk informasi tentang modifikasi instans DB, lihat Memodifikasi instans DB Amazon RDS.
Untuk mengonfigurasi grup opsi untuk integrasi Amazon S3
-
Buat grup opsi baru atau identifikasi grup opsi yang ada yang dapat ditambahi opsi
S3_INTEGRATION
.Untuk informasi tentang pembuatan grup opsi, lihat Membuat grup opsi.
-
Tambahkan opsi
S3_INTEGRATION
ke grup opsi.Misalnya, AWS CLI perintah berikut menambahkan
S3_INTEGRATION
opsi ke grup opsi bernamamyoptiongroup
.contoh
Untuk Linux, macOS, atau Unix:
aws rds add-option-to-option-group \ --option-group-name
myoptiongroup
\ --options OptionName=S3_INTEGRATION,OptionVersion=1.0Untuk Windows:
aws rds add-option-to-option-group ^ --option-group-name
myoptiongroup
^ --options OptionName=S3_INTEGRATION,OptionVersion=1.0 -
Buat instans Oracle DB baru RDS dan kaitkan grup opsi dengannya, atau modifikasi instance RDS untuk Oracle DB untuk mengaitkan grup opsi dengannya.
Untuk informasi tentang pembuatan instans DB, lihat Membuat instans DB Amazon RDS.
Untuk informasi tentang memodifikasi instans RDS untuk Oracle DB, lihat. Memodifikasi instans DB Amazon RDS
Mentransfer file antara Amazon RDS untuk Oracle dan bucket Amazon S3
Untuk mentransfer file antara instans RDS untuk Oracle DB dan bucket Amazon S3, Anda dapat menggunakan paket AmazonRDS. rdsadmin_s3_tasks
Anda dapat mengompres file GZIP saat mengunggahnya, dan mendekompresnya saat mengunduh.
Topik
Persyaratan dan batasan transfer file
Sebelum mentransfer file antara instans DB Anda dan bucket Amazon S3, perhatikan hal-hal berikut:
-
Paket
rdsadmin_s3_tasks
mentransfer file yang berada di dalam satu direktori. Anda tidak dapat menyertakan subdirektori dalam transfer. -
Ukuran objek maksimum dalam bucket Amazon S3 adalah 5 TB.
-
Tugas yang dibuat oleh
rdsadmin_s3_tasks
dijalankan secara asinkron. -
Anda dapat mengunggah file dari direktori Data Pump, seperti
DATA_PUMP_DIR
, atau direktori lain yang dibuat oleh pengguna. Anda tidak dapat mengunggah file dari direktori yang digunakan oleh proses latar belakang Oracle, seperti direktoriadump
,bdump
, atautrace
. -
Batas pengunduhan adalah 2.000 file per panggilan prosedur untuk
download_from_s3
. Jika Anda perlu mengunduh lebih dari 2.000 file dari Amazon S3, bagi unduhan menjadi beberapa tindakan terpisah, dengan tidak lebih dari 2.000 file per panggilan prosedur. -
Jika terdapat file dengan nama yang sama di folder unduhan Anda,
download_from_s3
tidak akan memproses pengunduhan. Untuk menghapus file dari direktori unduhan, gunakan SQL prosedur PL/ UTL_FILE. FREMOVE.
Mengunggah file dari instans Oracle DB Anda RDS ke bucket Amazon S3
Untuk mengunggah file dari instans DB Anda ke bucket Amazon S3, gunakan prosedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3
. Misalnya, Anda dapat mengunggah file cadangan Oracle Recovery Manager (RMAN) atau file Oracle Data Pump. Untuk informasi selengkapnya tentang penggunaan objek, lihat Panduan Pengguna Amazon Simple Storage Service. Untuk informasi selengkapnya tentang melakukan RMAN backup, lihat. Melakukan tugas RMAN umum untuk instans DB Oracle
Prosedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3
memiliki parameter berikut.
Nama parameter | Jenis data | Default | Wajib | Deskripsi |
---|---|---|---|---|
|
VARCHAR2 |
– |
wajib |
Nama bucket Amazon S3 tempat file diunggah. |
|
VARCHAR2 |
– |
wajib |
Nama objek direktori Oracle asal file yang akan diunggah. Direktori dapat berupa objek direktori yang dibuat pengguna atau direktori Data Pump, seperti catatanAnda hanya dapat mengunggah file dari direktori yang ditentukan. Anda tidak dapat mengunggah file di subdirektori dalam direktori yang ditentukan. |
|
VARCHAR2 |
– |
wajib |
Awalan nama file Amazon S3 tempat file diunggah. Awalan kosong mengunggah semua file ke tingkat teratas di bucket Amazon S3 yang ditentukan dan tidak menambahkan awalan pada nama file. Misalnya, jika prefiksnya adalah |
|
VARCHAR2 |
– |
wajib |
Prefiks nama file yang harus sama dengan nama file yang akan diunggah. Prefiks kosong akan mengunggah semua file dalam direktori yang ditentukan. |
|
NUMBER |
|
opsional |
Tingkat GZIP kompresi. Nilai yang valid berkisar dari
|
|
VARCHAR2 |
– |
opsional |
Pengaturan kontrol akses untuk bucket. Satu-satunya nilai yang valid adalah null atau |
Nilai yang dikembalikan untuk prosedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3
adalah ID tugas.
Contoh berikut mengunggah semua file dalam
direktori ke bucket Amazon S3 bernama DATA_PUMP_DIR
amzn-s3-demo-bucket
. File tidak dikompresi.
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;
Contoh berikut mengunggah semua file dengan prefiks
dalam direktori db
ke bucket Amazon S3 bernama DATA_PUMP_DIR
. Amazon RDS menerapkan tingkat GZIP kompresi tertinggi ke 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;
Contoh berikut mengunggah semua file di
direktori ke bucket Amazon S3 bernama DATA_PUMP_DIR
. File tersebut diunggah ke folder amzn-s3-demo-bucket
dbfiles
. Dalam contoh ini, tingkat GZIP kompresi adalah 1
, yang merupakan tingkat kompresi tercepat.
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;
Contoh berikut mengunggah semua file di direktori
ke bucket Amazon S3 bernama DATA_PUMP_DIR
. File tersebut diunggah ke folder amzn-s3-demo-bucket
dbfiles
dan ora
ditambahkan ke awal setiap nama file. Tidak ada kompresi yang diterapkan.
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;
Contoh berikut ini mengasumsikan bahwa perintah dijalankan di akun A, tetapi akun B memerlukan kontrol penuh atas konten bucket. Perintah rdsadmin_s3_tasks.upload_to_s3
mentransfer semua file dalam direktori
ke bucket bernama DATA_PUMP_DIR
. Kontrol akses diatur ke s3bucketOwnedByAccountB
FULL_CONTROL
agar akun B dapat mengakses file di bucket. Tingkat GZIP kompresi adalah 6
, yang menyeimbangkan kecepatan dan ukuran 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;
Di setiap contoh, pernyataan SELECT
mengembalikan ID tugas dalam jenis data VARCHAR2
.
Anda dapat melihat hasilnya dengan menampilkan file keluaran tugas.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Ganti
dengan ID tugas yang dikembalikan oleh prosedur.task-id
catatan
Tugas dijalankan secara asinkron.
Mengunduh file dari bucket Amazon S3 ke instans DB Oracle
Untuk mengunduh file dari bucket Amazon S3 ke instance RDS for Oracle, gunakan prosedur Amazon. RDS rdsadmin.rdsadmin_s3_tasks.download_from_s3
Prosedur download_from_s3
memiliki parameter berikut.
Nama parameter | Jenis data | Default | Wajib | Deskripsi |
---|---|---|---|---|
|
VARCHAR2 |
– |
Diperlukan |
Nama bucket Amazon S3 asal unduhan file. |
|
VARCHAR2 |
– |
Diperlukan |
Nama objek direktori Oracle untuk menyimpan unduhan file. Direktori dapat berupa objek direktori yang dibuat pengguna atau direktori Data Pump, seperti |
|
VARCHAR2 |
FALSE |
Opsional |
Tanda yang menentukan apakah tugas akan memunculkan kesalahan jika tidak ada objek di bucket Amazon S3 yang cocok dengan prefiks. Jika parameter ini tidak disetel atau disetel ke FALSE (default), tugas akan mencetak pesan bahwa tidak ada objek yang ditemukan, tetapi tidak memunculkan pengecualian atau gagal. Jika parameter iniTRUE, tugas menimbulkan pengecualian dan gagal. Contoh spesifikasi prefiks yang dapat menggagalkan uji kecocokan adalah spasi pada prefiks, seperti pada |
|
VARCHAR2 |
– |
Diperlukan |
Prefiks nama file yang harus sama dengan nama file yang akan diunduh. Prefiks kosong akan mengunduh semua file tingkat atas dalam bucket Amazon S3 yang ditentukan, tetapi tidak akan mengunduh file di folder di dalam bucket. Prosedur ini mengunduh objek Amazon S3 hanya dari folder tingkat pertama yang cocok dengan prefiks. Struktur direktori bersarang yang cocok dengan prefiks yang ditentukan tidak akan diunduh. Sebagai contoh, misal bucket Amazon S3 memiliki struktur folder Sebaliknya, jika Anda menggunakan prefiks |
|
VARCHAR2 |
– |
Opsional |
Format dekompresi. Nilai yang valid untuk tanpa dekompresi adalah |
Nilai yang dikembalikan untuk prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3
adalah ID tugas.
Contoh berikut mengunduh semua file di bucket Amazon S3 bernama
ke direktori amzn-s3-demo-bucket
. File tidak dikompresi, jadi tidak ada dekompresi yang diterapkan.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;
Contoh berikut mengunduh semua file dengan prefiks
di bucket Amazon S3 bernama db
ke direktori amzn-s3-demo-bucket
. File dikompresi denganGZIP, sehingga dekompresi diterapkan. Parameter DATA_PUMP_DIR
p_error_on_zero_downloads
mengaktifkan pemeriksaan kesalahan prefiks, jadi jika prefiks tidak cocok dengan file di dalam bucket, tugas akan memunculkan pengecualian dan gagal.
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;
Contoh berikut mengunduh semua file dalam folder
di bucket Amazon S3 bernama myfolder/
ke direktori amzn-s3-demo-bucket
. Gunakan parameter DATA_PUMP_DIR
p_s3_prefix
untuk menentukan folder Amazon S3. File yang diunggah dikompresi denganGZIP, tetapi tidak didekompresi selama pengunduhan.
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;
Contoh berikut mengunduh file
di bucket Amazon S3 bernama mydumpfile.dmp
ke direktori amzn-s3-demo-bucket
. Tidak ada dekompresi yang diterapkan.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;
Di setiap contoh, pernyataan SELECT
mengembalikan ID tugas dalam jenis data VARCHAR2
.
Anda dapat melihat hasilnya dengan menampilkan file keluaran tugas.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Ganti
dengan ID tugas yang dikembalikan oleh prosedur.task-id
catatan
Tugas dijalankan secara asinkron.
Anda dapat menggunakan prosedur UTL_FILE.FREMOVE
Oracle untuk menghapus file dari direktori. Untuk informasi lebih lanjut, lihat FREMOVEprosedur
Memantau status transfer file
Tugas transfer file mempublikasikan RDS peristiwa Amazon ketika mereka mulai dan ketika mereka selesai. Pesan peristiwa berisi ID tugas untuk transfer file. Untuk informasi tentang cara melihat peristiwa, lihat Melihat RDS acara Amazon.
Anda dapat melihat status tugas yang sedang berlangsung di file bdump. File bdump terletak di direktori /rdsdbdata/log/trace
. Setiap nama file bdump memiliki format berikut.
dbtask-
task-id
.log
Ganti
dengan ID tugas yang ingin Anda pantau.task-id
catatan
Tugas dijalankan secara asinkron.
Anda dapat menggunakan prosedur tersimpan rdsadmin.rds_file_util.read_text_file
untuk melihat konten file bdump. Misalnya, kueri berikut mengembalikan konten file bdump
.dbtask-1234567890123-1234.log
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','
dbtask-1234567890123-1234.log
'));
Contoh berikut menunjukkan file log untuk transfer yang gagal.
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.
Pemecahan masalah integrasi Amazon S3
Untuk tips pemecahan masalah, lihat artikel AWS re:Post Bagaimana cara memecahkan masalah saat saya mengintegrasikan Amazon untuk RDS Oracle dengan Amazon
Menghapus opsi integrasi Amazon S3
Anda dapat menghapus opsi integrasi Amazon S3 dari instans DB.
Untuk menghapus opsi integrasi Amazon S3 dari instans DB, lakukan salah satu hal berikut:
-
Untuk menghapus opsi integrasi Amazon S3 dari beberapa instans DB, hapus opsi
S3_INTEGRATION
dari grup opsi tempat instans DB berada. Perubahan ini memengaruhi semua instans DB yang menggunakan grup opsi tersebut. Untuk informasi selengkapnya, lihat Menghapus opsi dari grup opsi. -
Untuk menghapus opsi integrasi Amazon S3 dari satu instans DB, modifikasi instans DB dan tentukan grup opsi lain yang tidak menyertakan opsi
S3_INTEGRATION
. Anda dapat menentukan grup opsi default (kosong) atau grup opsi kustom lain. Untuk informasi selengkapnya, lihat Memodifikasi instans DB Amazon RDS.