Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memigrasikan Oracle Database dari AWS EC2 ke AWS RDS, Bagian 4

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melarikan diri dari karakter kontrol di Oracle XDB

  2. Subquery Oracle tidak melihat variabel dari blok luar 2 level ke atas

  3. Permintaan untuk menemukan pemindaian tabel lengkap di Oracle

  4. 2 Cara Menggabungkan String dan Angka di Oracle

  5. Membuat Pemicu Urutan Oracle