Kami sedang menjajaki migrasi Oracle Database dari instans EC2 ke RDS layanan terkelola. Dalam empat artikel pertama, “Memigrasikan Database Oracle dari AWS EC2 ke AWS RDS, Bagian 1,” kami membuat instans database di EC2 dan RDS. Di artikel kedua, “Memigrasikan Database Oracle dari AWS EC2 ke AWS RDS, Bagian 2,” kami membuat pengguna IAM untuk migrasi database dan juga membuat tabel database untuk bermigrasi. Hanya di artikel kedua, kami membuat instance replikasi dan titik akhir replikasi. Di artikel ketiga, “Memigrasikan Oracle Database dari AWS EC2 ke AWS RDS, Bagian 3,” kami membuat tugas migrasi untuk memigrasikan perubahan yang ada. Dalam artikel lanjutan ini, kami akan memigrasikan perubahan yang sedang berlangsung ke data. Artikel ini memiliki bagian berikut:
- Membuat dan Menjalankan Tugas Replikasi untuk Memigrasikan Perubahan yang Sedang Berjalan
- Menambahkan Pencatatan Tambahan
- Menambahkan Tabel ke Instance Database Oracle di EC2
- Menambahkan Data Tabel
- Menjelajahi Tabel Database yang Direplikasi
- Melepas dan Memuat Ulang Data
- Menghentikan dan Memulai Tugas
- Menghapus Basis Data
- Kesimpulan
Membuat dan Menjalankan Tugas Replikasi untuk Memigrasikan Perubahan yang Sedang Berjalan
Di sub-bagian berikut, kami akan membuat tugas untuk mereplikasi perubahan yang sedang berlangsung. Untuk mendemonstrasikan replikasi yang sedang berlangsung, pertama-tama kita akan memulai tugas dan kemudian membuat tabel dan menambahkan data. Jatuhkan tabel DVOHRA.WLSLOG , seperti yang ditunjukkan pada Gambar 1; kita akan membuat tabel yang sama untuk mendemonstrasikan replikasi yang sedang berlangsung.
Gambar 1: Menjatuhkan Tabel DVOHRA.WLSLOG
Menambahkan Pencatatan Tambahan
Layanan Migrasi Basis Data mengharuskan logging tambahan diaktifkan untuk mengaktifkan change data capture (CDC) yang digunakan untuk mereplikasi perubahan yang sedang berlangsung. Pencatatan tambahan adalah proses menyimpan informasi tentang baris data mana dalam tabel yang telah diubah. Pencatatan tambahan menambahkan data kolom tambahan atau ekstra dalam file log ulang setiap kali pembaruan pada tabel dilakukan. Kolom yang telah diubah dicatat sebagai data tambahan dalam file log redo bersama dengan kunci pengenal, yang bisa berupa kunci utama atau indeks unik. Jika tabel tidak memiliki kunci utama atau indeks unik, semua kolom skalar dicatat dalam file redo log untuk mengidentifikasi baris data secara unik, yang dapat membuat file redo log berukuran besar. Oracle Database mendukung jenis logging tambahan berikut:
- Pencatatan Tambahan Minimum: Hanya jumlah minimal data yang diperlukan oleh LogMiner untuk perubahan DML yang dicatat dalam file log ulang.
- Logging Kunci Identifikasi Tingkat Basis Data: Berbagai jenis logging kunci identifikasi tingkat basis data didukung—ALL, PRIMARY KEY, UNIQUE, dan FOREIGN KEY. Dengan level ALL, semua kolom (kecuali LOB, Long, dan ADT) dicatat dalam file redo log. Untuk PRIMARY KEY, hanya kolom kunci utama yang disimpan dalam file log redo ketika baris yang berisi kunci utama diperbarui; tidak diperlukan bahwa kolom kunci utama diperbarui. Jenis FOREIGN KEY hanya menyimpan kunci asing dari satu baris dalam file log redo ketika salah satu file log merah diperbarui. Jenis UNIQUE hanya menyimpan kolom dalam kunci komposit unik atau indeks bitmap ketika kolom apa pun dalam kunci komposit unik atau indeks bitmap telah berubah.
- Logging Tambahan Tingkat Tabel: Menentukan pada tingkat tabel kolom mana yang disimpan dalam file redo log. Pencatatan kunci identifikasi tingkat tabel mendukung tingkat yang sama dengan logging kunci identifikasi tingkat basis data; SEMUA, KUNCI UTAMA, UNIK, dan KUNCI ASING. Pada tingkat tabel, grup log tambahan yang ditentukan pengguna juga didukung, yang memungkinkan pengguna menentukan kolom mana yang akan dicatat sebagai tambahan. Grup log tambahan yang ditentukan pengguna mungkin bersyarat atau tidak bersyarat.
Untuk replikasi yang sedang berlangsung, kita perlu menyetel logging tambahan minimal dan logging tambahan tingkat tabel untuk SEMUA kolom.
Di SQL*Plus, jalankan pernyataan berikut untuk menyetel logging tambahan minimal:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Outputnya adalah sebagai berikut:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; Database altered.
Untuk menemukan status logging tambahan minimal, jalankan pernyataan berikut. Dan, jika output memiliki nilai kolom SUPPLEME sebagai YA, logging tambahan minimal diaktifkan.
SQL> SELECT supplemental_log_data_min FROM v$database; SUPPLEME -------- YES
Mengatur logging tambahan minimal dan output status verifikasi ditunjukkan pada Gambar 2.
Gambar 2: Mengatur dan Memverifikasi Logging Tambahan Minimal
Kami juga akan mengatur logging kunci identifikasi tingkat tabel saat kami menambahkan tabel dan data tabel untuk mendemonstrasikan replikasi yang sedang berlangsung setelah tugas dimulai. Jika kami menambahkan tabel dan data tabel sebelum membuat dan memulai tugas, kami tidak akan dapat mendemonstrasikan replikasi yang sedang berlangsung.
Untuk membuat tugas untuk replikasi yang sedang berlangsung, klik Buat tugas , seperti yang ditunjukkan pada Gambar 3.
Gambar 3: Tugas>Buat tugas
Di Buat tugas wizard, tentukan nama tugas dan deskripsi, dan pilih instance replikasi, titik akhir sumber, dan titik akhir target, seperti yang ditunjukkan pada Gambar 4. Pilih Jenis migrasi sebagai Migrasikan data yang ada dan replika perubahan yang sedang berlangsung .
Gambar 4: Memilih Jenis Migrasi untuk Replikasi yang Sedang Berlangsung
Pesan yang ditunjukkan pada Gambar 5 menunjukkan bahwa pencatatan tambahan diperlukan untuk diaktifkan untuk replikasi yang sedang berlangsung. Pesan tersebut bukan untuk menunjukkan bahwa pencatatan tambahan belum diaktifkan, tetapi hanya sebagai pengingat. Kami telah mengaktifkan logging tambahan. Pilih kotak centang Mulai tugas saat membuat .
Gambar 5: Pesan tentang persyaratan logging tambahan untuk mereplikasi perubahan yang sedang berlangsung
Setelan Tugas sama seperti untuk memigrasikan data yang ada saja (lihat Gambar 6).
Gambar 6: Pengaturan Tugas
Untuk pemetaan Tabel, setidaknya satu aturan pemilihan diperlukan. Tambahkan aturan pemilihan untuk menyertakan semua tabel di DVOHRA tabel, seperti yang ditunjukkan pada Gambar 7.
Gambar 7: Menambahkan aturan pemilihan
Aturan pemilihan yang ditambahkan ditunjukkan pada Gambar 8.
Gambar 8: Aturan pemilihan
Klik Buat tugas untuk membuat tugas, seperti yang ditunjukkan pada Gambar 9.
Gambar 9: Buat tugas
Tugas baru ditambahkan dengan status sebagai Membuat , seperti yang ditunjukkan pada Gambar 10.
Gambar 10: Tugas ditambahkan dengan status Membuat
Ketika aturan pemilihan dan transformasi untuk semua data yang ada telah diterapkan dan data dimigrasikan, status tugas menjadi Pemuatan selesai, replikasi sedang berlangsung (lihat Gambar 11).
Gambar 11 Muat selesai, replikasi sedang berlangsung
Statistik tabel tab tidak mencantumkan tabel yang telah dimigrasikan atau direplikasi, seperti yang ditunjukkan pada Gambar 12.
Gambar 12: Statistik tabel
Untuk menjelajahi log CloudWatch, klik Log tab dan klik tautannya, seperti yang ditunjukkan pada Gambar 13.
Gambar 13: Log
Log CloudWatch ditampilkan, seperti yang ditunjukkan pada Gambar 14. Entri terakhir dalam log adalah tentang memulai replikasi. Tugas replikasi yang sedang berlangsung tidak berhenti setelah memuat data yang ada, jika ada, tetapi terus berjalan.
Gambar 14: Log CloudWatch
Menambahkan Tabel ke Instance Database Oracle di EC2
Selanjutnya, buat tabel dan tambahkan data tabel untuk mendemonstrasikan replikasi yang sedang berlangsung. Jalankan dua pernyataan berikut bersama-sama sehingga logging tambahan tingkat tabel disetel saat tabel dibuat. Ubah skrip untuk membuat skema berbeda.
CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255) PRIMARY KEY, category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255)); alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns;
Logging tambahan tingkat tabel disetel saat tabel dibuat.
SQL> CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255)); alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns; Table created. SQL> Table altered.
Outputnya ditampilkan dalam SQL*Plus pada Gambar 15.
Gambar 15: Membuat Tabel dan menyetel Pencatatan Tambahan
Sampai saat ini, kami hanya membuat tabel, dan tidak menambahkan data tabel apa pun. DDL untuk tabel dimigrasikan, seperti yang ditunjukkan oleh statistik Tabel pada Gambar 16.
Gambar 16: DDL untuk Tabel yang Dimigrasi
Menambahkan Data Tabel
Selanjutnya jalankan script SQL berikut untuk menambahkan data pada tabel yang dibuat. Ubah skrip untuk membuat skema berbeda.
SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type, servername,code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT', 'Notice','WebLogicServer','AdminServer','BEA-000365','Server state changed to STANDBY'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to STARTING'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to ADMIN'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RESUMING'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000361','Started WebLogic AdminServer'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RUNNING'); 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created.
Selanjutnya, jalankan pernyataan Komit.
SQL> COMMIT; Commit complete.
Menjelajahi Tabel Database yang Direplikasi
Statistik Tabel mencantumkan Sisipan sebagai jumlah baris data yang ditambahkan, seperti yang ditunjukkan pada Gambar 17.
Gambar 17: Daftar statistik tabel 6 Sisipan
Tugas terus berjalan setelah mereplikasi perubahan yang sedang berlangsung. Tambahkan baris data lainnya.
SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type, servername,code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT', 'Notice','WebLogicServer','AdminServer','BEA-000360','Server started in RUNNING mode'); 1 row created. SQL> COMMIT; Commit complete. SQL>
Klik Segarkan data dari server, seperti yang ditunjukkan pada Gambar 18.
Gambar 18: Refresh data dari server
Jumlah total statistik Sisipan dalam Tabel menjadi 7, seperti yang ditunjukkan pada Gambar 19.
Gambar 19: Statistik tabel dengan Sisipan sebagai 7
Melepas dan Memuat Ulang Data
Untuk melepaskan dan memuat ulang data tabel, klik Lepaskan dan muat ulang data tabel , seperti yang ditunjukkan pada Gambar 20.
Gambar 20: Jatuhkan dan Muat Ulang Data Tabel
Klik Segarkan data dari server (lihat Gambar 21).
Gambar 21: Refresh data dari server
Ikon dan Negara kolom untuk tabel menunjukkan bahwa tabel sedang dimuat ulang, seperti yang ditunjukkan pada Gambar 22.
Gambar 22: Tabel sedang dimuat ulang
Saat pemuatan ulang tabel selesai, kolom Status tabel menjadi Tabel selesai , seperti yang ditunjukkan pada Gambar 23. Setelah memuat ulang data tabel, Baris Muat Penuh menampilkan nilai 7 dan Sisipan adalah 0 karena pemuatan ulang bukanlah replikasi yang sedang berlangsung, tetapi pemuatan penuh.
Gambar 23: Pemuatan Ulang Tabel selesai
Karena data tabel dijatuhkan dan dimuat ulang dan data tabel sumber tidak berubah, log CloudWatch menyertakan pesan “Beberapa perubahan dari database sumber tidak berdampak saat diterapkan ke database target.”, seperti yang ditunjukkan pada Gambar 24.
Gambar 24: Beberapa perubahan dari database sumber tidak berdampak saat diterapkan ke database target
Saat memuat ulang DVOHRA.wlslog tabel telah selesai, pesan “Pemuatan selesai untuk tabel DVOHRA.wlslog. 7 baris diterima” akan ditampilkan, seperti yang ditunjukkan pada Gambar 25.
Gambar 25: Pesan log CloudWatch untuk Pemuatan telah selesai
Menghentikan dan Memulai Tugas
Jenis tugas yang mencakup replikasi yang sedang berlangsung tidak berhenti dengan sendirinya kecuali terjadi kesalahan. Untuk menghentikan tugas, klik Berhenti (lihat Gambar 26).
Gambar 26: Menghentikan Tugas
Di Hentikan Tugas dialog, klik Berhenti , seperti yang ditunjukkan pada Gambar 27.
Gambar 27: Dialog Konfirmasi untuk menghentikan tugas
Status tugas menjadi Berhenti , seperti yang ditunjukkan pada Gambar 28.
Gambar 28: Menghentikan tugas
Saat tugas berhenti, statusnya menjadi Berhenti , seperti yang ditunjukkan pada Gambar 29.
Gambar 29: Tugas Dihentikan
Untuk memulai tugas yang dihentikan, klik Mulai/Lanjutkan , seperti yang ditunjukkan pada Gambar 30.
Gambar 30: Memulai atau Melanjutkan Tugas
Di Mulai tugas dialog, klik Mulai untuk memulai tugas dari titik berhenti (lihat Gambar 31). Opsi lainnya adalah memulai kembali tugas.
Gambar 31: Memulai Tugas setelah berhenti
Status tugas menjadi Mulai , seperti yang ditunjukkan pada Gambar 32.
Gambar 32: Memulai tugas
Ketika migrasi data yang ada telah selesai, tugas terus berjalan dengan Status sebagai Pemuatan selesai, replikasi sedang berlangsung , seperti yang ditunjukkan pada Gambar 33.
Gambar 33: Muat selesai, replikasi sedang berlangsung
Menghapus Basis Data
Instans DB RDS dapat dihapus dengan Instance Actions>Delete memerintah. Database Oracle pada instans EC2 dapat dihentikan dengan Actions>Instance State>Stop , seperti yang ditunjukkan pada Gambar 34.
Gambar 34: Menghentikan Instans EC2
Kesimpulan
Dalam empat artikel, kami membahas migrasi Oracle Database dari AWS EC2 ke AWS RDS.