Blog AWS Indonesia

Menggunakan AWS Storage Gateway untuk menyimpan backup database Oracle di Amazon S3

Pelanggan yang menggunakan database Oracle biasanya menggunakan utilitas bawaan Oracle seperti Data Pump dan RMAN untuk mem-backup database dan skema guna memenuhi kebutuhan perlindungan data, pemulihan bencana (Disaster Recovery), dan persyaratan kebijakan. Backup yang dibuat umumnya disimpan di NFS Share. Namun, karena skalabilitas yang terbatas dan biaya penyimpanan yang lebih tinggi di lingkungan on-premise, backup sering dihapus setelah batas periode penyimpanan tertentu, sehingga tidak dapat memenuhi tujuan utamanya dalam menyimpan dan memulihkan data.

Periode retensi yang terbatas dapat dihindari dengan melakukan backup database langsung ke Amazon S3 menggunakan AWS Storage Gateway, sehingga mengurangi biaya dan ruang penyimpanan di lokasi pelanggan, dan mendapatkan manfaat yang signifikan dalam hal skalabilitas, daya tahan, dan pengurangan biaya.

AWS Storage Gateway adalah layanan penyimpanan cloud hybrid dengan biaya yang efektif dan menyediakan storage di cloud yang hampir tidak terbatas untuk lingkungan on-premise.

Pelanggan menggunakan AWS Storage Gateway karena tiga alasan utama:

  1. Untuk memindahkan backup dan arsip ke penyimpanan cloud.
  2. Untuk mengurangi penyimpanan pada on-premise dengan menggunakan file sharing yang didukung cloud.
  3. Untuk memberikan akses latensi rendah ke data yang berada di AWS dari aplikasi on-premise.

Dalam artikel ini, saya menjelaskan metode untuk melakukan backup database Oracle dari on-premise atau Amazon EC2 ke Amazon S3 menggunakan AWS Storage Gateway.

Panduan Solusi

Backup database Oracle menggunakan utilitas RMAN atau Data Pump dapat disimpan langsung ke Amazon S3 menggunakan Storage Gateway dengan menyelesaikan langkah-langkah berikut:

  1. Buat Amazon S3 File Gateway menggunakan AWS Storage Gateway.
  2. Buat NFS file share dan mapping ke S3 bucket.
  3. Mount NFS file share pada host database.
  4. Backup Oracle database.
  5. Restore database Oracle.

Persyaratan

Untuk panduan ini, persyaratan berikut diperlukan:

  1. Akun AWS
  2. Sebuah bucket S3 di mana Anda ingin menyimpan backup
  3. Instance database Oracle yang berjalan di lingkungan on-premise atau Amazon EC2

Halaman ini mencantumkan langkah-langkah yang telah diuji di EC2, namun konfigurasi yang sama juga dapat digunakan pada database on-premise.

1. Membuat Amazon S3 File Gateway menggunakan AWS Storage Gateway

Dengan Amazon S3 File Gateway, Anda dapat menyimpan dan mengambil objek di S3 dengan cache lokal untuk akses dengan latensi rendah ke data yang paling sering digunakan. Buatlah Amazon S3 File Gateway menggunakan petunjuk yang disediakan dalam dokumentasi ini.

Jika Anda membuat gateway Anda di lingkungan on-premise, Anda akan men-deploy perangkat keras (hardware appliance) atau mendownload dan men-deploy gateway VM, kemudian mengaktifkan gateway tersebut. Jika Anda membuat gateway Anda pada instance Amazon EC2, Anda perlu menjalankan Amazon Machine Image (AMI) yang berisi image gateway VM, lalu mengaktifkan gateway tersebut.

Amazon S3 File Gateway menyimpan data secara lokal dalam cache dan menguploadnya ke S3 di background. Data cache lokal memberikan akses dengan latensi rendah ke data yang sering digunakan. Ukuran cache dapat diatur sesuai dengan ukuran file backup terbesar hingga 64 TB.

2. Membuat NFS file share dan menghubungkannya ke bucket S3

Ikuti petunjuk ini untuk membuat NFS file share yang terhubung ke bucket S3 dimana tempat backup akan disimpan.

Untuk mencapai latensi rendah, disarankan menggunakan bucket S3 di region AWS terdekat dengan lokasi di mana S3 File Gateway diinstal.

Dalam pembuatan NFS file share, Anda harus menentukan S3 storage class; dokumentasi tentang pembuatan NFS file share ini mencantumkan storage class yang dapat Anda pilih pada langkah nomor 11. Untuk backup Oracle, memilih S3 Standard storage class memberi Anda kemampuan untuk dengan cepat mengakses file backup tanpa biaya tambahan.

Gunakan S3 Lifecycle policy untuk memigrasikan backup ke storage class yang lebih rendah guna menghemat data audit yang jarang diakses. Bucket S3 yang digunakan dalam contoh ini adalah oracle-export-test, seperti yang terlihat pada screenshot berikut.

3. Mount NFS file share ke host database

Dengan menggunakan langkah-langkah yang dijelaskan dalam dokumentasi ini, mount NFS file share yang telah Anda buat di host database.

Anda dapat membuat mount point di server database dan menggunakan petunjuk yang terdapat dalam dokumentasi sebelumnya untuk memasang file share tersebut.

Untuk menguji backup dan restore database, saya telah memasang NFS share di host database seperti yang terlihat pada screenshot berikut.

4. Backup Oracle Database

Sekarang Anda dapat menggunakan NFS file share yang telah di-mount di server database untuk melakukan backup menggunakan Oracle Data Pump atau RMAN.

Backup menggunakan Oracle Data Pump

Direktori Oracle dibuat dengan mengarahkannya ke mount point baru, yang pada akhirnya terhubung dengan bucket S3.

Dalam posting ini, direktori ORACLE_S3_BACKUPS dibuat, seperti yang ditunjukkan dalam perintah berikut:

create directory ORACLE_S3_BACKUPS as '/exports_oracle';

Utilitas Data Pump digunakan untuk melakukan backup pada level skema dengan menggunakan perintah berikut:

expdp <username>/<password> schemas=<schema_name> dumpfile=<dumpfile_name> logfile=<logfile_name> directory=ORACLE_S3_BACKUPS

Screenshot berikut menunjukkan output dari perintah sebelumnya, dengan backup Data Pump yang berhasil diambil.

Masuk ke bucket Amazon S3 Anda dan pastikan bahwa backup telah diupload ke dalam bucket tersebut.

Backup menggunakan Oracle RMAN

Pada bagian ini, saya melakukan backup database menggunakan Oracle RMAN dan restore skema pada bagian berikutnya.

Anda dapat menggunakan utilitas Oracle RMAN untuk melakukan backup database Oracle. Untuk backup yang Anda simpan di Amazon S3, parameter db_recovery_file_dest harus diatur pada mapping database ke mount point NFS file share yang telah dibuat pada langkah sebelumnya. Untuk mengatur hard limit terhadap space yang digunakan, parameter db_recovery_file_dest_size harus didefinisikan untuk file yang dibuat di lokasi db_recovery_file_dest.

Informasi lebih lanjut tentang jenis-jenis backup yang dapat dilakukan menggunakan RMAN dapat ditemukan dalam dokumentasi tentang konsep dasar RMAN.

Sebagai langkah pertama, parameter db_recovery_file_dest diatur menunjuk ke NFS file share yang dipasang pada langkah sebelumnya, dan db_recovery_file_dest_size harus didefinisikan menggunakan perintah berikut.

alter system set db_recovery_file_dest='<nfs share mount point>' scope=both;
alter system set db_recovery_file_dest_size='<size limit for nfs share mount

Screenshot di bawah menunjukkan contoh output setelah pengaturan parameter db_recovery_file_dest dan db_recovery_file_dest_size.

Jalankan RMAN backup di database server menggunakan perintah berikut:

rman target / <<EOF
run {
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
BACKUP DATABASE PLUS ARCHIVELOG;
}
EOF

Masuk ke Amazon S3 Bucket dan pastikan bahwa backup telah tersedia di bucket tersebut. Saat Anda melakukan backup database Oracle dengan menggunakan RMAN atau Data Pump yang mengaktifkan pemrosesan paralel, Anda dapat menggunakan beberapa disk yang di-cache untuk meningkatkan performa dengan memanfaatkan paralelisme saat membuat Amazon S3 File Gateway. Ini lebih disarankan daripada menggunakan hanya satu disk saja.

Dokumentasi tentang konfigurasi penyimpanan lokal ini menjelaskan langkah-langkah untuk menambahkan volume Amazon EBS ke Amazon S3 File Gateway, sehingga memungkinkan penggunaan multi cache disk untuk meningkatkan performa.

Semua file backup diupload ke Amazon S3 di background saat Storage Gateway menulis file ke shares. Enkripsi Transport Layer Security melindungi data saat ditransmisikan, dan header Content-MD5 digunakan untuk menjaga integritas data.

Notifikasi Amazon CloudWatch dapat diatur menggunakan API NotifyWhenUploaded untuk memberi tahu saat pekerjaan backup selesai dan diupload ke S3. Untuk informasi lebih lanjut, lihat dokumentasi ini tentang mendapatkan pemberitahuan tentang operasi file.

Tergantung pada ukuran file backup dan bandwidth jaringan antara Amazon S3 File Gateway dan AWS, file backup dapat membutuh waktu untuk mentransfer dari cache lokal S3 File Gateway ke bucket S3. Misalnya, dengan koneksi jaringan dedicated 1-GB/s, dibutuhkan sekitar 10 menit untuk mengupload file backup sebesar 500 GB ke S3. Anda dapat menggunakan CloudWatch Metric untuk memantau trafik.

5. Restore Database Oracle

Sekarang Anda dapat merestore database dari backup yang diambil menggunakan Oracle Data Pump atau RMAN dari NFS file share yang dipasang di server database.

Menggunakan Oracle Data Pump

Setelah backup selesai dengan sukses, restore dari backup dapat dilakukan pada instance database yang sama atau pada instance database terpisah dengan menggunakan utilitas impor Data Pump.

Untuk merestore backup yang sebelumnya diambil menggunakan Data Pump, Anda dapat menggunakan perintah berikut:

impdp <username>/<password> remap_schema=<schema_name>:<new_schema_name> 
dumpfile=<dumpfile_name> logfile=<logfile_name> directory=ORACLE_S3_BACKU

Berikut ini adalah screenshot yang menunjukkan contoh keluaran dari proses restore Data Pump yang berhasil.

Menggunakan Oracle RMAN

Dengan menggunakan restore RMAN, database dapat di-restore di server yang sama atau server yang berbeda. Backup RMAN juga dapat digunakan untuk skenario pemulihan bencana (DR) lintas region di AWS. Pada bagian ini, restore telah selesai dilakukan pada instance database yang sama dengan perintah berikut:

sqlplus / as sysdba<<EOF
startup mount
exit
EOF

rman target / <<EOF
run {
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
RESTORE DATABASE;
RECOVER DATABASE;
alter database open;
}
EOF

Dalam beberapa kasus, tergantung seberapa baru backup diambil dan ukuran file-nya, sebagian atau seluruh data file mungkin berada dalam cache Amazon S3 File Gateway. Sebagai praktik terbaik, Anda sebaiknya mengatur ukuran cache agar lebih besar dari ukuran backup terbesar Anda.

Pemulihan backup juga dapat dilakukan di Region yang berbeda pada instance database yang berbeda dengan salah satu dari dua metode berikut:

  1. Mengaktifkan Replikasi Lintas Region (Cross-Region Replication) pada bucket Amazon S3, yang akan mereplikasi file-file tersebut di Region lain, sehingga memungkinkan pemulihan backup di Region yang dituju.
  2. Dengan mengonfigurasi Amazon S3 File Gateway kedua di Region DR yang ditunjuk ke bucket asal seperti yang ditunjukkan dalam diagram berikut:

Saat mengembalikan data ke server di Region yang berbeda, waktu restore database mungkin akan lebih lama karena data tidak ada dalam cache lokal Amazon S3 File Gateway. Dalam hal ini, data harus dibaca dari S3. Waktu restore tergantung pada ukuran file dan bandwidth jaringan.

Penghapusan Resource

Ada biaya yang terkait dengan layanan-layanan dalam solusi ini, jadi pastikan untuk membersihkan contoh resource yang dibuat saat menjalankan implementasi referensi ini agar tidak ada biaya tambahan yang terjadi. Untuk informasi lebih lanjut tentang cara membersihkan sumber daya yang terkait dengan AWS Storage Gateway, silakan lihat dokumentasi ini.

Kesimpulan

Dalam artikel blog ini, saya menunjukkan bagaimana menggunakan AWS Storage Gateway, backup database Oracle dapat disimpan di S3 baik dari lingkungan on-premise maupun dari instance database Amazon EC2.

Backup database umumnya memiliki ukuran yang besar dan membutuhkan ruang disk yang banyak untuk penyimpanan data dalam jangka waktu yang lama. Karena biayanya yang tinggi dan keterbatasan skalabilitas, backup sering memiliki batas waktu retensi yang terbatas di lingkungan on-premise.

Dengan pendekatan yang dijelaskan dalam blog ini, Anda dapat mencapai solusi yang hemat biaya dengan penyimpanan yang hampir tak terbatas dan tahan lama untuk backup database Anda dengan retensi yang lebih lama dibandingkan dengan yang didukung di lingkungan on-premise. Metode ini juga memberi Anda fleksibilitas untuk menyimpan backup di berbagai wilayah dan menggunakannya dalam disaster recovery (DR).

Terima kasih telah membaca artikel blog ini tentang penggunaan AWS Storage Gateway untuk menyimpan backup database Oracle di Amazon S3. Jika Anda memiliki komentar atau pertanyaan, silakan tinggalkan di bagian komentar.

Artikel ini diterjemahkan dari artikel asli dengan judul “Using AWS Storage Gateway to store Oracle database backups in Amazon S3” yang ditulis oleh Saumya Mula, AWS.

Khairul Habib

Khairul Habib

Khairul Habib is Senior Solutions Architect at Amazon Web Service (AWS). He works with Digital Native customer to transform, and optimize their business in the cloud. Prior to AWS, he worked in various industry including banking, financial technology, and startup as developer.