Integrasi Amazon S3 - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Integrasi Amazon S3

Anda bisa mentransfer file di antara instans DB RDS for Oracle dan bucket Amazon S3. Anda dapat menggunakan integrasi Amazon S3 dengan fitur Oracle Database seperti Oracle Data Pump. Sebagai contoh, Anda dapat mengunduh file Data Pump dari Amazon S3 ke instans DB RDS for Oracle. 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.

Mengonfigurasi izin IAM untuk integrasi RDS for Oracle dengan Amazon S3

Agar RDS for Oracle dapat diintegrasikan dengan Amazon S3, instans DB Anda harus memiliki akses ke bucket Amazon S3. Amazon VPC yang digunakan oleh instans DB Anda tidak perlu memberikan akses ke titik akhir Amazon S3.

RDS untuk 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.

Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS 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 RDS DB Anda. Pada langkah ini, Anda dianggap telah membuat bucket S3.

Sebelum membuat kebijakan, catat potongan informasi berikut:

  • Amazon Resource Name (ARN) untuk bucket Anda

  • ARN untuk AWS KMS kunci Anda, jika bucket Anda menggunakan enkripsi SSE-KMS atau SSE-S3

    catatan

    Instans DB RDS for Oracle tidak dapat mengakses bucket Amazon S3 yang dienkripsi dengan SSE-C.

Untuk informasi selengkapnya, lihat Melindungi data menggunakan enkripsi sisi server dalam Panduan Pengguna Amazon Simple Storage Service.

Untuk membuat kebijakan IAM untuk mengizinkan Amazon RDS mengakses bucket Amazon S3
  1. Buka Konsol Manajemen IAM.

  2. Di bagian Manajemen akses, pilih Kebijakan.

  3. Pilih Buat Kebijakan.

  4. Pada tab Editor visual, pilih Pilih layanan, lalu pilih S3.

  5. 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.

  6. Pilih Sumber daya, lalu lakukan hal berikut:

    1. Pilih Spesifik.

    2. Untuk bucket, pilih Tambah ARN. Masukkan ARN bucket. Nama bucket terisi secara otomatis. Kemudian pilih Tambahkan.

    3. Jika muncul sumber daya objek, pilih Tambah ARN untuk menambahkan sumber daya secara manual atau pilih Apa pun.

      catatan

      Anda dapat mengatur Amazon Resource Name (ARN) ke nilai ARN yang lebih spesifik agar Amazon RDS hanya dapat mengakses file atau folder tertentu dalam bucket Amazon S3. Untuk informasi selengkapnya tentang cara penentuan kebijakan akses untuk Amazon S3, lihat Mengelola izin akses ke sumber daya Amazon S3 Anda.

  7. (Opsional) Pilih Tambahkan izin tambahan untuk menambahkan sumber daya ke kebijakan. Sebagai contoh, lakukan hal berikut:

    1. Jika bucket Anda dienkripsi dengan kunci KMS kustom, pilih KMS untuk layanan.

    2. Untuk Tindakan manual, pilih opsi berikut:

      • Enkripsi

      • ReEncrypt dari dan ReEncrypt ke

      • Dekripsi

      • DescribeKey

      • GenerateDataKunci

    3. Untuk Sumber daya, pilih Spesifik.

    4. Untuk kunci, pilih Tambahkan ARN. Masukkan ARN kunci kustom Anda sebagai sumber daya, lalu pilih Tambahkan.

      Untuk informasi selengkapnya, lihat Melindungi Data Menggunakan Enkripsi Sisi Server dengan kunci KMS yang Disimpan di AWS Key Management Service (SSE-KMS) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

    5. Agar Amazon RDS dapat mengakses bucket lain, tambahkan ARN untuk bucket yang bersangkutan. Jika mau, Anda juga dapat memberikan akses ke semua bucket dan objek di Amazon S3.

  8. Pilih Berikutnya: Tag lalu Berikutnya: Tinjau.

  9. Untuk Nama, masukkan nama kebijakan IAM Anda, misalnya rds-s3-integration-policy. Anda menggunakan nama ini saat membuat peran IAM untuk dikaitkan dengan instans DB Anda. Anda juga dapat menambahkan nilai Deskripsi opsional.

  10. Pilih Buat kebijakan.

Buat kebijakan AWS Identity and Access Management (IAM) yang memberikan akses Amazon RDS ke bucket Amazon S3. Setelah membuat kebijakan, catat ARN-nya. ARN ini diperlukan pada langkah berikutnya.

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 bucket Amazon S3.

AWS CLI Perintah berikut membuat kebijakan IAM bernama rds-s3-integration-policy dengan opsi ini. Kebijakan ini memberikan akses ke bucket bernama DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }'

Contoh berikut mencakup izin untuk kunci KMS 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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }'

Contoh berikut mencakup izin untuk kunci KMS 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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:kms:::your-kms-arn" ] } ] }'

Langkah 2: (Opsional) Buat kebijakan IAM untuk bucket Amazon S3

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 peran IAM 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

  • Nilai ARN untuk bucket Amazon S3 di akun B

Untuk membuat atau mengedit kebijakan bucket
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di daftar Bucket, pilih nama bucket yang ingin Anda buatkan kebijakan bucket atau yang kebijakan bucket-nya ingin Anda edit.

  3. Pilih Izin.

  4. Di bagian Kebijakan bucket, pilih Edit. Opsi ini akan membuka halaman Edit kebijakan bucket.

  5. Di halaman Edit kebijakan bucket, jelajahi Contoh kebijakan dalam Panduan Pengguna Amazon S3, pilih Pembuat kebijakan untuk membuat kebijakan secara otomatis, atau edit JSON di bagian Kebijakan.

    Jika Anda memilih Policy Generator, AWS Policy Generator akan terbuka di jendela baru:

    1. Di halaman Pembuat Kebijakan AWS , di bagian Pilih Jenis Kebijakan, pilih Kebijakan Bucket S3.

    2. 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 kebijakan JSON IAM dalam Panduan Pengguna IAM.

      catatan

      Untuk memudahkan penggunaan, halaman Edit kebijakan bucket menampilkan ARN Bucket (Amazon Resource Name) bucket saat ini di atas bidang teks Kebijakan. Anda dapat menyalin ARN ini untuk digunakan dalam pernyataan di halaman Pembuat Kebijakan AWS .

    3. Setelah Anda selesai menambahkan pernyataan, pilih Buat Kebijakan.

    4. Salin teks kebijakan yang dihasilkan, pilih Tutup, dan kembali ke halaman Edit kebijakan bucket di konsol Amazon S3.

  6. 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:::DOC-EXAMPLE-DESTINATION-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/*" ] } ] }
  7. Pilih Simpan perubahan, yang akan membawa Anda kembali ke halaman Izin Bucket.

Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda

Pada langkah ini, Anda dianggap telah membuat kebijakan IAM di Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda. Pada langkah ini, Anda membuat peran untuk instans DB RDS for Oracle, kemudian melampirkan kebijakan Anda ke peran tersebut.

Untuk membuat peran IAM agar Amazon RDS dapat mengakses bucket Amazon S3
  1. Buka Konsol Manajemen IAM.

  2. Di panel navigasi, pilih Peran.

  3. Pilih Buat peran.

  4. Pilih Layanan AWS .

  5. Untuk kasus Penggunaan untuk AWS layanan lain:, pilih RDS dan kemudian RDS — Tambahkan Peran ke Database. Lalu pilih Selanjutnya.

  6. Untuk Cari di bagian Kebijakan izin, masukkan nama kebijakan IAM yang telah Anda buat di Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda, lalu pilih kebijakan tersebut saat muncul dalam daftar. Lalu pilih Selanjutnya.

  7. Untuk Nama peran, masukkan nama untuk peran IAM Anda, misalnya, rds-s3-integration-role. Anda juga dapat menambahkan nilai Deskripsi opsional.

  8. Pilih Buat peran.

Untuk membuat peran dan melampirkan kebijakan ke peran ini
  1. Buat peran IAM yang dapat digunakan oleh Amazon RDS atas nama Anda untuk mengakses bucket Amazon S3 Anda.

    Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws: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, nilai aws:SourceAccount dan akun dalam nilai aws: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 global aws:SourceArn dengan Amazon Resource Name (ARN) penuh pada sumber daya yang mengakses peran.

    AWS CLI Perintah berikut menciptakan peran yang dinamai rds-s3-integration-role untuk tujuan ini.

    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 ke pengguna IAM dalam Panduan Pengguna IAM.

  2. Setelah peran dibuat, catat ARN peran tersebut. ARN ini diperlukan pada langkah berikutnya.

  3. Lampirkan kebijakan yang Anda buat ke peran yang Anda buat.

    AWS CLI Perintah berikut melampirkan kebijakan ke peran bernamards-s3-integration-role.

    contoh

    Untuk Linux, macOS, atau Unix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    Untuk Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

    Ganti your-policy-arn dengan ARN kebijakan yang Anda catat di langkah sebelumnya.

Langkah 4: Kaitkan peran IAM Anda dengan instans DB RDS for Oracle

Langkah terakhir dalam mengonfigurasi izin untuk integrasi Amazon S3 adalah mengaitkan peran IAM Anda dengan instans DB. Perhatikan persyaratan berikut:

  • Anda harus memiliki akses ke peran IAM yang telah memiliki kebijakan izin Amazon S3 yang diperlukan.

  • Anda hanya dapat mengaitkan satu peran IAM dengan instans DB RDS for Oracle Anda dalam satu waktu.

  • Instans DB Anda harus dalam status Tersedia.

Untuk mengaitkan peran IAM Anda dengan instans DB RDS for Oracle
  1. Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Pilih Basis data dari panel navigasi.

  3. Pilih nama instans DB RDS for Oracle untuk menampilkan detailnya.

  4. Pada tab Konektivitas & keamanan, gulir ke Kelola peran IAM di bagian bawah halaman.

  5. Untuk Tambahkan peran IAM ke instans ini, pilih peran yang Anda buat di Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda.

  6. Untuk Fitur, pilih S3_INTEGRATION.

    Tambahkan peran S3_INTEGRATION
  7. Pilih Tambahkan peran.

AWS CLI Perintah berikut menambahkan peran ke instance Oracle DB bernamamydbinstance.

contoh

Untuk Linux, macOS, atau Unix:

aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

Untuk Windows:

aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

Ganti your-role-arn dengan peran ARN yang Anda catat di langkah sebelumnya. S3_INTEGRATION harus ditentukan untuk opsi --feature-name.

Menambahkan opsi integrasi Amazon S3

Untuk mengintegrasikan Amazon RDS for Oracle dengan Amazon S3, instans DB Anda harus dikaitkan dengan grup opsi yang menyertakan opsi S3_INTEGRATION.

Untuk mengonfigurasi grup opsi untuk integrasi Amazon S3
  1. 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.

  2. Tambahkan opsi S3_INTEGRATION ke kelompok opsi.

    Untuk informasi tentang penambahan opsi ke grup opsi, lihat Menambahkan opsi ke grup opsi.

  3. Buat instans DB RDS for Oracle yang baru dan kaitkan dengan grup opsi, atau modifikasi instans DB RDS for Oracle untuk dikaitkan dengan grup opsi.

    Untuk informasi tentang pembuatan 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
  1. 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.

  2. 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.0

    Untuk Windows:

    aws rds add-option-to-option-group ^ --option-group-name myoptiongroup ^ --options OptionName=S3_INTEGRATION,OptionVersion=1.0
  3. Buat instans DB RDS for Oracle yang baru dan kaitkan dengan grup opsi, atau modifikasi instans DB RDS for Oracle untuk dikaitkan dengan grup opsi.

    Untuk informasi tentang pembuatan instans DB, lihat Membuat instans DB Amazon RDS.

    Untuk informasi tentang modifikasi instans DB RDS for Oracle, lihat Memodifikasi instans DB Amazon RDS.

Mentransfer file antara Amazon RDS for Oracle dan bucket Amazon S3

Untuk mentransfer file antara instans DB RDS for Oracle dan bucket Amazon S3, Anda dapat menggunakan paket rdsadmin_s3_tasks Amazon RDS. Anda dapat mengompres file dengan GZIP saat mengunggahnya, dan membuka kompresinya saat mengunduh.

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 direktori adump, bdump, atau trace.

  • 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 prosedur PL/SQL UTL_FILE.FREMOVE.

Mengunggah file dari instans DB RDS for Oracle 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 proses pencadangan RMAN, 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

p_bucket_name

VARCHAR2

wajib

Nama bucket Amazon S3 tempat file diunggah.

p_directory_name

VARCHAR2

wajib

Nama objek direktori Oracle asal file yang akan diunggah. Direktori dapat berupa objek direktori yang dibuat pengguna atau direktori Data Pump, seperti DATA_PUMP_DIR. Anda tidak dapat mengunggah file dari direktori yang digunakan oleh proses latar belakang, seperti adump, bdump, dan trace.

catatan

Anda hanya dapat mengunggah file dari direktori yang ditentukan. Anda tidak dapat mengunggah file di subdirektori dalam direktori yang ditentukan.

p_s3_prefix

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 folder_1/oradb, file akan diunggah ke folder_1. Dalam hal ini, prefiks oradb ditambahkan ke setiap file.

p_prefix

VARCHAR2

wajib

Prefiks nama file yang harus sama dengan nama file yang akan diunggah. Prefiks kosong akan mengunggah semua file dalam direktori yang ditentukan.

p_compression_level

ANGKA

0

opsional

Tingkat kompresi GZIP. Nilai yang valid berkisar dari 0 sampai 9:

  • 0 – Tanpa kompresi

  • 1 – Kompresi tercepat

  • 9 – Kompresi tertinggi

p_bucket_owner_full_control

VARCHAR2

opsional

Pengaturan kontrol akses untuk bucket. Satu-satunya nilai yang valid adalah null atau FULL_CONTROL. Pengaturan ini diperlukan hanya jika Anda mengunggah file dari satu akun (akun A) ke dalam sebuah bucket milik akun yang berbeda (akun B), dan akun B memerlukan kontrol penuh atas file tersebut.

Nilai yang dikembalikan untuk prosedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3 adalah ID tugas.

Contoh berikut mengunggah semua file dalam DATA_PUMP_DIR direktori ke bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET. File tidak dikompresi.

SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => 'DOC-EXAMPLE-BUCKET', p_prefix => '', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

Contoh berikut mengunggah semua file dengan prefiks db dalam direktori DATA_PUMP_DIR ke bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET. Amazon RDS menerapkan tingkat kompresi GZIP tertinggi ke file.

SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => 'DOC-EXAMPLE-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 DATA_PUMP_DIR direktori ke bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET. File tersebut diunggah ke folder dbfiles. Dalam contoh ini, tingkat kompresi GZIP adalah 1, yang merupakan tingkat kompresi tercepat.

SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => 'DOC-EXAMPLE-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 DATA_PUMP_DIR ke bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET. File tersebut diunggah ke folder 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 => 'DOC-EXAMPLE-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 DATA_PUMP_DIR ke bucket bernama s3bucketOwnedByAccountB. Kontrol akses diatur ke FULL_CONTROL agar akun B dapat mengakses file di bucket. Tingkat kompresi GZIP 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 output tugas.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));

Ganti task-id dengan ID tugas yang dikembalikan oleh prosedur.

catatan

Tugas dijalankan secara asinkron.

Mengunduh file dari bucket Amazon S3 ke instans DB Oracle

Untuk mengunduh file dari bucket Amazon S3 ke instans RDS for Oracle, gunakan prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3 Amazon RDS.

Prosedur download_from_s3 memiliki parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_bucket_name

VARCHAR2

Wajib

Nama bucket Amazon S3 asal unduhan file.

p_directory_name

VARCHAR2

Wajib

Nama objek direktori Oracle untuk menyimpan unduhan file. Direktori dapat berupa objek direktori yang dibuat pengguna atau direktori Data Pump, seperti DATA_PUMP_DIR.

p_error_on_zero_downloads

VARCHAR2

SALAH

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 diatur atau diatur ke SALAH (default), tugas akan mencetak pesan bahwa objek tidak ditemukan, tetapi tidak memunculkan pengecualian atau gagal. Jika parameter ini BENAR, tugas akan memunculkan pengecualian dan gagal.

Contoh spesifikasi prefiks yang dapat menggagalkan uji kecocokan adalah spasi pada prefiks, seperti pada ' import/test9.log', dan ketidakcocokan huruf besar/kecil, seperti pada test9.log dan test9.LOG.

p_s3_prefix

VARCHAR2

Wajib

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 folder_1/folder_2/folder_3. Prefiks yang Anda gunakan adalah 'folder_1/folder_2/'. Dalam hal ini, hanya file di dalam folder_2 yang akan diunduh, bukan file di folder_1 atau folder_3.

Sebaliknya, jika Anda menggunakan prefiks 'folder_1/folder_2', semua file di folder_1 yang cocok dengan prefiks 'folder_2' akan diunduh, dan file di folder_2 tidak akan diunduh satu pun.

p_decompression_format

VARCHAR2

Opsional

Format dekompresi. Nilai yang valid untuk tanpa dekompresi adalah NONE, dan GZIP untuk dekompresi.

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 DOC-EXAMPLE-BUCKET ke direktori DATA_PUMP_DIR. File tidak dikompresi, jadi tidak ada dekompresi yang diterapkan.

SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'DOC-EXAMPLE-BUCKET', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

Contoh berikut mengunduh semua file dengan prefiks db di bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET ke direktori DATA_PUMP_DIR. File dikompresi dengan GZIP, sehingga dekompresi diterapkan. Parameter 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 => 'DOC-EXAMPLE-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 myfolder/ di bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET ke direktori DATA_PUMP_DIR. Gunakan parameter p_s3_prefix untuk menentukan folder Amazon S3. File yang diunggah akan dikompresi dengan GZIP, tetapi tidak didekompresi selama pengunduhan.

SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'DOC-EXAMPLE-BUCKET', p_s3_prefix => 'myfolder/', p_directory_name => 'DATA_PUMP_DIR', p_decompression_format => 'NONE') AS TASK_ID FROM DUAL;

Contoh berikut mengunduh file mydumpfile.dmp di bucket Amazon S3 bernama DOC-EXAMPLE-BUCKET ke direktori DATA_PUMP_DIR. Tidak ada dekompresi yang diterapkan.

SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'DOC-EXAMPLE-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 output tugas.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));

Ganti task-id dengan ID tugas yang dikembalikan oleh prosedur.

catatan

Tugas dijalankan secara asinkron.

Anda dapat menggunakan prosedur UTL_FILE.FREMOVE Oracle untuk menghapus file dari direktori. Untuk informasi selengkapnya, lihat FREMOVE procedure dalam dokumentasi Oracle.

Memantau status transfer file

Tugas transfer file menerbitkan peristiwa Amazon RDS saat dimulai dan selesai. Pesan peristiwa berisi ID tugas untuk transfer file. Untuk informasi tentang cara melihat peristiwa, lihat Melihat peristiwa Amazon RDS.

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 task-id dengan ID tugas yang ingin Anda pantau.

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 DOC-EXAMPLE-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 name DOC-EXAMPLE-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 RDS for Oracle dengan Amazon S3? .

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.