AWS Database Migration Service (DMS) adalah layanan untuk memigrasi database ke AWS. Basis data target harus merupakan salah satu basis data yang didukung di AWS, seperti basis data yang dihosting Layanan Basis Data Relasional, DynamoDB, dan RedShift. Basis data sumber dapat berupa basis data di AWS atau basis data lokal atau basis data pada beberapa platform Cloud lainnya, seperti Oracle Cloud Platform. Basis data sumber tidak memiliki waktu henti selama migrasi.
Mengapa Migrasi Database?
Basis data mungkin perlu dimigrasikan karena beberapa alasan, seperti berikut ini:
- Migrasi heterogen ke mesin database yang berbeda. Misalnya database Oracle ke database MySQL. Migrasi heterogen mungkin diperlukan untuk memanfaatkan fitur dari database lain, seperti tipe database yang tidak didukung pada database sumber. Database komersial dapat dimigrasikan ke database open source. Basis data relasional dapat memperoleh manfaat dengan dimigrasikan ke basis data NoSQL.
- Migrasi homogen ke jenis mesin database yang sama, tetapi pada platform yang berbeda. Migrasi homogen dapat digunakan untuk membuat cadangan database. Database lokal dapat memperoleh manfaat dengan dimigrasikan ke platform Cloud.
- Replikasi data berkelanjutan ke basis data target yang berbeda untuk tujuan pengujian dan pengembangan, dan distribusi basis data regional.
- Basis data berbagai sumber dapat dimigrasikan ke satu database untuk konsolidasi.
Dalam dua artikel, kita akan membahas migrasi Database Oracle ke database MySQL dengan Layanan Migrasi Database. Artikel ini memiliki bagian berikut:
- Mengatur Lingkungan
- Membuat Pengguna IAM
- Membuat Kunci Enkripsi
- Membuat Instance Oracle dan MySQL DB di RDS
- Menyiapkan Oracle dan MySQL DB untuk DMS
- Kesimpulan
Mengatur Lingkungan
Satu-satunya prasyarat adalah akun AWS, yang dapat dibuat di tautan ini.
Membuat Pengguna IAM
Pengguna perlu mendapatkan izin dan peran IAM untuk mengakses DMS. Izin IAM tambahan diperlukan untuk mengakses layanan lain dari DMS; beberapa tindakan diperlukan dari layanan AWS lain seperti KMS, IAM, EC2, atau CloudWatch. Di bagian ini, kami akan membuat pengguna IAM dan melampirkan kebijakan untuk kumpulan izin yang diperlukan. Pilih layanan AWS IAM dan klik Tambahkan pengguna , seperti yang ditunjukkan pada Gambar 1.
Gambar 1: Tambahkan pengguna
Di Tambahkan pengguna , tentukan Nama pengguna (dvohra) dan pilih keduanya Jenis akses pilihan, seperti yang ditunjukkan pada Gambar 2.
Gambar 2: Mengonfigurasi Pengguna baru
Pilih Sandi khusus opsi untuk Kata Sandi Konsol, tentukan kata sandi khusus, dan klik Berikutnya, seperti yang ditunjukkan pada Gambar 3.
Gambar 3: Menentukan Kata Sandi
Di Izin , pilih Lampirkan kebijakan yang ada secara langsung opsi dan klik Buat kebijakan untuk membuat kebijakan untuk dilampirkan, seperti yang ditunjukkan pada Gambar 4.
Gambar 4: Tambahkan pengguna>Buat kebijakan
Di Buat Kebijakan , pilih Buat Kebijakan Anda Sendiri pilihan, seperti yang ditunjukkan pada Gambar 5.
Gambar 5: Buat Kebijakan Anda Sendiri
Dalam Tinjau Kebijakan , tentukan Nama Kebijakan (DMS) dan salin kebijakan berikut ke Dokumen Kebijakan .
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" } ] }
Klik Validasi Kebijakan dan, jika pesan Kebijakan ini valid dihasilkan (lihat Gambar 6), klik Buat Kebijakan , juga ditunjukkan pada Gambar 6.
Gambar 6: Buat Kebijakan
Di Buat pengguna wizard, pilih DMS yang baru dibuat kebijakan dan klik Berikutnya, seperti yang ditunjukkan pada Gambar 7.
Gambar 7: Memilih Kebijakan untuk dilampirkan ke Pengguna
Dalam Tinjauan, klik Buat pengguna , seperti yang ditunjukkan pada Gambar 8.
Gambar 8: Tinjau>Buat pengguna
Pengguna baru akan dibuat, seperti yang ditunjukkan pada Gambar 9.
Gambar 9: Pengguna baru telah dibuat
Pengguna baru ditambahkan ke IAM Console>Pengguna , seperti yang ditunjukkan pada Gambar 10.
Gambar 10: Pengguna IAM
Setelah membuat pengguna baru, kita perlu masuk sebagai pengguna baru untuk membuat migrasi DMS. Tautan masuk Konsol untuk masuk karena pengguna baru diperoleh dari Kredensial Keamanan untuk pengguna baru (lihat Gambar 11).
Gambar 11 Tautan masuk konsol
Setelah membuat pengguna IAM untuk DMS, keluar sebagai pengguna root, seperti yang ditunjukkan pada Gambar 12.
Gambar 12: Keluar sebagai Pengguna root
Buka URL login di browser, tentukan Nama pengguna dan kata sandi, dan klik Masuk, seperti yang ditunjukkan pada Gambar 13.
Gambar 13: Masuk sebagai Pengguna IAM baru
Membuat Kunci Enkripsi
Pastikan Anda masuk sebagai pengguna IAM yang dibuat di bagian sebelumnya. Kita perlu membuat kunci enkripsi yang akan digunakan sebagai kunci Master saat membuat migrasi DMS. Enkripsi harus dibuat saat masuk sebagai pengguna IAM baru dan bukan sebagai pengguna root. Pilih Kunci enkripsi di konsol IAM dan klik Buat kunci , seperti yang ditunjukkan pada Gambar 14.
Gambar 14: Buat kunci
Di Buat Alias dan Deskripsi , tentukan Alias (dms ) dan klik Langkah Berikutnya, seperti yang ditunjukkan pada Gambar 15.
Gambar 15: Menentukan Alias
Di Tambahkan Tag, klik Langkah Berikutnya karena tag tidak diperlukan. Di Key Administrators, pilih pengguna IAM yang ditambahkan sebagai administrator (lihat Gambar 16). Pilih Penghapusan Kunci sebagai Izinkan administrator kunci untuk menghapus kunci ini, dan klik Langkah Berikutnya.
Gambar 16: Administrator Kunci
Di Tentukan Izin Penggunaan Kunci, pilih pengguna dan peran IAM yang dapat menggunakan kunci enkripsi; pilih pengguna IAM baru dan dms-vpc-role , seperti yang ditunjukkan pada Gambar 17. Klik Langkah Berikutnya.
Gambar 17: Menentukan Izin Penggunaan Kunci
Dalam Kebijakan Kunci Pratinjau, klik Selesai, seperti yang ditunjukkan pada Gambar 18.
Gambar 18: Pratinjau Kebijakan Kunci
Kunci enkripsi baru akan dibuat, seperti yang ditunjukkan pada Gambar 19.
Gambar 19: Kunci enkripsi dibuat
Membuat Instance Oracle dan MySQL DB di RDS
Karena kita akan menggunakan instans DB Oracle dan MySQL RDS sebagai sumber dan target, masing-masing, untuk migrasi DMS, buat dua instans RDS, satu untuk database Oracle SE dan yang lainnya untuk MySQL. Saat membuat instans RDS di Configure Advanced Settings, pilih Network &Security untuk membuat VPC baru, buat Grup Subnet DB baru, dan buat grup keamanan baru, seperti yang ditunjukkan pada Gambar 20 untuk Oracle DB. Jika akun AWS memiliki batas jumlah maksimum VPC, hapus beberapa VPC yang tidak digunakan sebelum membuat instans RDS.
Gambar 20: Mengonfigurasi Pengaturan Lanjut
Instance RDS untuk Oracle dan MySQL ditunjukkan pada Gambar 21.
Gambar 21: Instans DB RDS
Grup keamanan yang dibuat secara otomatis tidak memiliki aturan Masuk/Keluar yang diperlukan, yang perlu diubah. Klik tautan untuk Grup Keamanan di Konsol RDS, seperti yang ditunjukkan untuk DB MySQL pada Gambar 22.
Gambar 22: Grup Keamanan
Klik Edit untuk grup keamanan Masuk, seperti yang ditunjukkan pada Gambar 23.
Gambar 23: Grup Keamanan>Edit
Pada Edit inbound rules, pilih Type as All traffic, Protocol as All, Port Range as 0-65535, Source as Anywhere, dan klik Save, seperti yang ditunjukkan pada Gambar 24.
Gambar 24: Edit aturan masuk
Aturan Masuk yang dimodifikasi ditunjukkan pada Gambar 25.
Gambar 25: Aturan Masuk yang dimodifikasi
Aturan Keluar mengizinkan semua lalu lintas secara default (lihat Gambar 26).
Gambar 26: Aturan Keluar
Grup keamanan default yang dibuat untuk Oracle DB di RDS juga tidak mengizinkan semua lalu lintas, seperti yang ditunjukkan pada Gambar 27.
Gambar 27: Grup Keamanan untuk Oracle DB di RDS
Ubah grup keamanan Masuk untuk Oracle DB pada RDS dengan tombol Edit, mirip dengan memodifikasi aturan Masuk Grup Keamanan Database MySQL, untuk mengizinkan semua lalu lintas, seperti yang ditunjukkan pada Gambar 28.
Gambar 28: Grup Keamanan untuk Oracle DB di RDS
Catat Nama Pengguna Utama dan Kata Sandi Utama yang dikonfigurasi untuk setiap instans DB saat membuat instans, seperti yang ditunjukkan untuk DB MySQL pada Gambar 29. Juga, saat membuat DB MySQL pada RDS, tidak ada pengaturan konfigurasi (Nama Database , Pengidentifikasi Instans DB, Nama Pengguna Utama, Kata Sandi Utama) harus berupa kata-kata khusus MySQL, seperti “MYSQL”.
Gambar 29: Nama Pengguna Utama dan Kata Sandi Utama
Menyiapkan Oracle dan MySQL DB untuk DMS
Untuk menggunakan Oracle DB dan MySQL DB pada RDS sebagai sumber dan target DMS, kita perlu mengonfigurasi beberapa pengaturan pada instans DB. Hubungkan ke instans Oracle dan MySQL DB di shell baris perintah untuk mengonfigurasi pengaturan. Untuk terhubung ke instans DB RDS di shell baris perintah, kita perlu mendapatkan Endpoint untuk instans RDS. Titik Akhir untuk Oracle DB pada RDS ditunjukkan di Konsol RDS pada Gambar 30.
Gambar 30: Titik akhir untuk Oracle DB di RDS
Hubungkan ke instans Oracle DB dengan sqlplus berikut ini perintah, di mana HOST, SID,PORT bisa berbeda untuk pengguna yang berbeda; nilai HOST diperoleh dengan menghapus akhiran port dari Endpoint.
sqlplus [email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=orcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.com)(PORT=1521)) (CONNECT_DATA=(SID=ORCL)))
Antarmuka baris perintah SQL*Plus terhubung ke Oracle DB di RDS (lihat Gambar 31).
Gambar 31: SQL*Plus CLI terhubung ke Oracle DB
Aktifkan logging tambahan tingkat database untuk DMS.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
Prosedur PL/SQL selesai, seperti yang ditunjukkan pada Gambar 32.
Gambar 32: Mengaktifkan Pencatatan Tambahan Tingkat Basis Data
Juga, aktifkan PRIMARY KEY masuk di tingkat basis data.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging ('ADD','PRIMARY KEY');
KUNCI UTAMA logging diaktifkan, seperti yang ditunjukkan pada Gambar 33.
Gambar 33: Mengaktifkan Pencatatan KUNCI UTAMA
Konfigurasikan pengarsipan redo log untuk instans Oracle DB di RDS.
exec rdsadmin.rdsadmin_util.set_configuration ('archivelog retention hours',24);
Pengarsipan akan dikonfigurasi, seperti yang ditunjukkan pada Gambar 34.
Gambar 34: Mengonfigurasi Pengarsipan
Saat memigrasi database, tabel dan data tabel juga dimigrasikan. Buat tabel database wlslog dalam database Oracle.
CREATE TABLE wlslog(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255)); INSERT INTO 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 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 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 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 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 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'); INSERT INTO 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');
Untuk menambahkan logging tambahan untuk tabel tanpa PRIMARY KEY logging, atau jika PRIMARY KEY logging di tingkat database tidak diatur, ubah tabel untuk menambahkan logging tambahan.
alter table wlslog add supplemental log data (ALL) columns;
Pencatatan log tambahan juga dapat diaktifkan di CREATE TABLE pernyataan.
CREATE TABLE wlslog(time_stamp VARCHAR2(255) PRIMARY KEY, category VARCHAR2(255),type VARCHAR2(255), servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255), supplemental log data(ALL) columns);
Output dari dua perintah sebelumnya ditunjukkan pada Gambar 35.
Gambar 35: Menambahkan Pencatatan Tambahan ke Tabel yang sudah dibuat atau ke Tabel baru
Selanjutnya, siapkan instans DB MySQL di RDS untuk migrasi DMS. Untuk terhubung ke MySQL DB, dapatkan Endpoint (lihat Gambar 36.
Gambar 36: Titik akhir untuk DB MySQL Di RDS
Host diperoleh dengan menghapus port suffix dari Endpoint. Menggunakan MySQL CLI, sambungkan ke MySQL dari baris perintah.
mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com -P 3306 -u dvohra -p
MySQL CLI terhubung ke instance MySQL DB di RDS, seperti yang ditunjukkan pada Gambar 37.
Gambar 37: Menghubungkan ke MySQL dari MySQL CLI
Selanjutnya, buat dan berikan hak baca dan tulis untuk database MySQL kepada pengguna DMS (dvohra).
CREATE USER '<user acct>'@'%' IDENTIFIED BY <user password>';??? Remove as user dvohra already exists GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON myschema.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
Mengganti akun pengguna sebagai dvohra, output dari beberapa perintah ditunjukkan pada Gambar 38.
Gambar 38: Memberikan Akses Database MySQL ke Pengguna DMS
Kesimpulan
Dalam artikel ini, kami memperkenalkan migrasi Database Oracle di RDS ke database MySQL di RDS menggunakan layanan AWS Database Migration. Pada artikel ini, kita membahas pengaturan database sumber dan target. Dalam artikel berikutnya, kita akan membuat dan menjalankan migrasi.