Mengimpor data ke basis data Amazon RDS MariaDB atau MySQL dengan lebih sedikit waktu henti - 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.

Mengimpor data ke basis data Amazon RDS MariaDB atau MySQL dengan lebih sedikit waktu henti

Dalam beberapa kasus, mungkin Anda harus mengimpor data dari basis data MariaDB atau MySQL eksternal yang mendukung aplikasi live ke instans DB MariaDB, instans DB MySQL, atau klaster DB Multi-AZ MySQL. Gunakan prosedur berikut untuk meminimalkan dampak terhadap ketersediaan aplikasi. Prosedur ini juga dapat berguna jika Anda menggunakan basis data yang sangat besar. Dengan menggunakan prosedur ini, Anda dapat mengurangi biaya impor dengan mengurangi jumlah data yang dilewatkan di seluruh jaringan AWS.

Dalam prosedur ini, Anda dapat mentransfer salinan data basis data Anda ke instans Amazon EC2 dan mengimpor data ke basis data Amazon RDS baru. Anda kemudian menggunakan replikasi untuk membawa database Amazon RDS up-to-date dengan instans eksternal langsung Anda, sebelum mengarahkan aplikasi Anda ke database Amazon RDS. Lakukan konfigurasi pada replikasi MariaDB berdasarkan pengidentifikasi transaksi global (GTID) jika instans eksternalnya adalah MariaDB 10.0.24 atau yang lebih tinggi dan instans targetnya adalah RDS for MariaDB. Jika tidak, lakukan konfigurasi pada replikasi berdasarkan koordinat log biner. Kami menyarankan replikasi berbasis GTID jika basis data eksternal Anda mendukungnya karena replikasi berbasis GTID adalah metode yang lebih andal. Untuk informasi selengkapnya, lihat Global transaction ID dalam dokumentasi MariaDB.

catatan

Jika Anda ingin mengimpor data ke instans DB MySQL dan skenario Anda mendukungnya, sebaiknya pindahkan data ke dan dari Amazon RDS dengan menggunakan file cadangan dan Amazon S3. Untuk informasi selengkapnya, lihat Memulihkan cadangan ke instans DB MySQL.

Impor basis data MySQL eksternal ke basis data MySQL di RDS
catatan

Kami tidak menyarankan Anda untuk menggunakan prosedur ini dengan basis data MySQL sumber dari versi MySQL sebelum versi 5.5 karena ada potensi masalah replikasi. Untuk informasi selengkapnya, lihat Replication compatibility between MySQL versions dalam dokumentasi MySQL.

Membuat salinan basis data yang sudah ada

Langkah pertama dalam proses memigrasikan jumlah data yang besar ke basis data RDS for MariaDB atau RDS for MySQL dengan waktu henti minimal adalah membuat salinan data sumber.

Membuat cadangan basis data MySQL

Anda dapat menggunakan utilitas mysqldump untuk membuat cadangan basis data dalam format SQL atau delimited-text. Kami sarankan Anda melakukan uji coba dengan setiap format dalam lingkungan non-produksi untuk melihat metode mana yang dapat meminimalkan jumlah waktu untuk menjalankan mysqldump.

Kami juga sarankan Anda menimbang performa mysqldump dibandingkan dengan manfaat yang ditawarkan dengan menggunakan format delimited-text untuk pemuatan. Pencadangan yang menggunakan format delimited-text akan menciptakan sebuah file teks yang dipisahkan oleh tab untuk setiap tabel yang disalin ke lokasi lain. Untuk mengurangi jumlah waktu yang dibutuhkan untuk mengimpor basis data Anda, Anda dapat memuat file tersebut secara paralel menggunakan perintah LOAD DATA LOCAL INFILE. Untuk informasi selengkapnya tentang memilih format mysqldump dan kemudian memuat data, lihat Using mysqldump for backups di dalam dokumentasi MySQL.

Sebelum memulai operasi pencadangan, pastikan Anda mengatur opsi replikasi pada basis data MariaDB atau MySQL yang Anda salin ke Amazon RDS. Opsi replikasi mencakup pengaktifan pencatatan log biner dan pengaturan ID server yang unik. Pengaturan opsi ini menyebabkan server Anda mulai mencatat log transaksi basis data dan menyiapkannya menjadi sebuah instans replikasi sumber di lain waktu dalam proses ini.

catatan

Gunakan opsi --single-transaction dengan mysqldump karena opsi ini mencadangkan status konsisten basis data. Untuk memastikan file dump valid, jangan menjalankan pernyataan bahasa definisi data (DDL) saat mysqldump sedang berjalan. Anda dapat menjadwalkan jadwal pemeliharaan untuk operasi ini.

Jangan sertakan skema berikut dalam file dump: sys, performance_schema, dan information_schema. Utilitas mysqldump mengecualikan skema ini secara default.

Untuk memigrasikan pengguna dan hak istimewa, pertimbangkan untuk menggunakan alat yang menghasilkan bahasa kontrol data (DCL) untuk membuatnya kembali, seperti utilitas. pt-show-grants

Mengatur opsi replikasi

  1. Edit file my.cnf (file ini biasanya ada di bawah /etc).

    sudo vi /etc/my.cnf

    Tambahkan opsi log_bin dan server_id ke bagian [mysqld]. Opsi log_bin menyediakan sebuah pengidentifikasi nama file untuk file log biner. Opsi server_id menyediakan pengidentifikasi unik untuk server dalam hubungan sumber-replika.

    Contoh berikut menunjukkan bagian [mysqld] yang diperbarui dari sebuah file my.cnf.

    [mysqld] log-bin=mysql-bin server-id=1

    Untuk informasi selengkapnya, lihat dokumentasi MySQL.

  2. Untuk replikasi dengan klaster DB Multi-AZ, atur ENFORCE_GTID_CONSISTENCY dan parameter GTID_MODE ke ON.

    mysql> SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
    mysql> SET @@GLOBAL.GTID_MODE = ON;

    Pengaturan ini tidak diperlukan untuk replikasi dengan instans DB.

  3. Mulai ulang layanan mysql.

    sudo service mysqld restart

Membuat salinan cadangan basis data yang sudah ada

  1. Buat cadangan data Anda menggunakan utilitas mysqldump, dengan menentukan format SQL atau delimited-text.

    Tentukan --master-data=2 untuk membuat file cadangan yang dapat digunakan untuk memulai replikasi antar server. Untuk informasi selengkapnya, lihat dokumentasi mysqldump.

    Untuk meningkatkan performa dan memastikan integritas data, gunakan opsi --order-by-primary dan --single-transaction mysqldump.

    Untuk menghindari penyertaan basis data sistem MySQL di dalam cadangan, jangan gunakan opsi --all-databases dengan mysqldump. Untuk informasi selengkapnya, lihat Creating a data snapshot using mysqldump dalam dokumentasi MySQL.

    Gunakan chmod sesuai kebutuhan untuk memastikan bahwa direktori tempat file cadangan diciptakan dapat ditulis.

    penting

    Pada Windows, jalankan jendela perintah sebagai administrator.

    • Untuk membuat output SQL, gunakan perintah berikut.

      Untuk Linux, macOS, atau Unix:

      sudo mysqldump \ --databases database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -p password
      catatan

      Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

      Untuk Windows:

      mysqldump ^ --databases database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u local_user ^ -p password
      catatan

      Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

    • Untuk membuat output delimited-text, gunakan perintah berikut.

      Untuk Linux, macOS, atau Unix:

      sudo mysqldump \ --tab=target_directory \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -p password

      Untuk Windows:

      mysqldump ^ --tab=target_directory ^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^ database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -p password
      catatan

      Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

      Pastikan Anda membuat prosedur, pemicu, fungsi, atau peristiwa tersimpan apa pun secara manual di dalam basis data Amazon RDS Anda. Jika Anda memiliki objek-objek tersebut di dalam basis data yang Anda salin, jangan sertakan saat Anda menjalankan mysqldump. Untuk melakukannya, sertakan argumen berikut dengan perintah mysqldump Anda: --routines=0 --triggers=0 --events=0.

      Saat menggunakan format delimited-text, muncul komentar CHANGE MASTER TO saat Anda menjalankan mysqldump. Komentar ini berisi nama dan posisi file log master. Jika instans eksternalnya bukan MariaDB versi 10.0.24 atau yang lebih tinggi, catat nilai untuk MASTER_LOG_FILE dan MASTER_LOG_POS. Anda memerlukan nilai-nilai ini saat menyiapkan replikasi.

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

      Jika Anda menggunakan format SQL, Anda dapat memperoleh nama dan posisi file log master pada komentar CHANGE MASTER TO tersebut di dalam file cadangan. Jika instans eksternalnya adalah MariaDB versi 10.0.24 atau yang lebih tinggi, Anda dapat memperoleh GTID pada langkah berikutnya.

  2. Jika instans eksternal yang Anda gunakan adalah MariaDB versi 10.0.24 atau yang lebih tinggi, Anda dapat menggunakan replikasi berbasis GTID. Jalankan SHOW MASTER STATUS pada instans MariaDB eksternal untuk mendapatkan nama dan posisi file log biner, lalu konversi ke GTID dengan menjalankan BINLOG_GTID_POS pada instans MariaDB eksternal.

    SELECT BINLOG_GTID_POS('binary log file name', binary log file position);

    Catat GTID yang ditampilkan; Anda membutuhkannya untuk mengonfigurasi replikasi.

  3. Kompres data yang disalin untuk mengurangi jumlah sumber daya jaringan yang dibutuhkan untuk menyalin data Anda ke basis data Amazon RDS. Catat ukuran file cadangan. Anda memerlukan informasi ini saat menentukan seberapa besar instans Amazon EC2 yang harus dibuat. Setelah selesai, kompres file cadangan menggunakan GZIP atau utilitas kompresi pilihan Anda.

    • Untuk mengompresi output SQL, gunakan perintah berikut.

      gzip backup.sql
    • Untuk mengompresi output delimited-text, gunakan perintah berikut.

      tar -zcvf backup.tar.gz target_directory

Buat sebuah instans Amazon EC2 dan salin basis data terkompresi

Penyalinan file cadangan basis data terkompresi ke sebuah instans Amazon EC2 membutuhkan lebih sedikit sumber daya jaringan dibandingkan dengan melakukan penyalinan langsung data tidak terkompresi antar instans basis data. Setelah data Anda berada di Amazon EC2, Anda dapat menyalinnya dari sana langsung ke basis data MariaDB atau MySQL Anda. Agar Anda dapat menghemat biaya sumber daya jaringan, instans Amazon EC2 Anda harus berada di AWS Wilayah yang sama dengan instans Amazon RDS DB Anda. Memiliki instans Amazon EC2 di AWS Wilayah yang sama dengan database Amazon RDS Anda juga mengurangi latensi jaringan selama impor.

Salin cadangan basis data ke instans EC2

Membuat instans Amazon EC2 dan menyalin data Anda

  1. Di Wilayah AWS tempat Anda berencana untuk membuat database RDS, buat virtual private cloud (VPC), grup keamanan VPC, dan subnet VPC. Pastikan aturan masuk untuk grup keamanan VPC Anda mengizinkan alamat IP yang dibutuhkan agar aplikasi Anda dapat terhubung ke AWS. Anda dapat menentukan rentang alamat IP (misalnya, 203.0.113.0/24), atau grup keamanan VPC lainnya. Anda dapat menggunakan Konsol Manajemen Amazon VPC untuk membuat dan mengelola VPC, subnet, dan grup keamanan. Untuk informasi selengkapnya, lihat Mulai menggunakan Amazon VPC dalam Panduan Memulai Amazon Virtual Private Cloud.

  2. Buka Konsol Manajemen Amazon EC2 dan pilih AWS Wilayah yang berisi instans Amazon EC2 dan database Amazon RDS Anda. Luncurkan sebuah instans Amazon EC2 menggunakan VPC, subnet, dan grup keamanan yang Anda buat pada Langkah 1. Pastikan Anda memilih tipe instans dengan penyimpanan yang cukup untuk file cadangan basis data Anda saat tidak terkompresi. Untuk detail tentang instans Amazon EC2 lihat Mulai menggunakan instans Linux Amazon EC2 dalam Panduan Pengguna Amazon Elastic Compute Cloud untuk Linux.

  3. Untuk terhubung ke basis data Amazon RDS Anda dari instans Amazon EC2 Anda, edit grup keamanan VPC Anda. Tambahkan aturan masuk yang menentukan alamat IP privat instans EC2 Anda. Anda dapat menemukan alamat IP pribadi pada tab Detail dari panel Instans dalam jendela konsol EC2. Untuk mengedit grup keamanan VPC dan menambahkan aturan masuk, pilih Grup Keamanan dalam panel navigasi konsol EC2, pilih grup keamanan Anda, lalu tambahkan aturan masuk untuk MySQL atau Aurora yang menentukan alamat IP privat instans EC2 Anda. Untuk mempelajari cara menambahkan aturan ke sebuah grup keamanan VPC, lihat Menambahkan dan menghapus aturan di dalam Panduan Pengguna Amazon VPC.

  4. Salin file cadangan basis data terkompresi Anda dari sistem lokal ke instans Amazon EC2 Anda. Gunakan chmod sesuai kebutuhan untuk memastikan Anda memiliki izin menulis pada direktori target instans Amazon EC2. Anda dapat menggunakan scp atau klien Secure Shell (SSH) untuk menyalin file. Berikut adalah contohnya.

    scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
    penting

    Pastikan untuk menyalin data sensitif menggunakan protokol transfer jaringan yang aman.

  5. Hubungkan ke instans Amazon EC2 Anda dan instal pembaruan terkini dan alat klien MySQL dengan menggunakan perintah berikut.

    sudo yum update -y sudo yum install mysql -y

    Untuk informasi selengkapnya, lihat Membuat koneksi ke instans Anda dalam Panduan Pengguna Amazon Elastic Compute Cloud untuk Linux.

    penting

    Contoh ini menginstal klien MySQL pada Amazon Machine Image (AMI) untuk distribusi Linux Amazon. Untuk menginstal klien MySQL pada distribusi yang berbeda, seperti Linux Ubuntu atau Red Hat Enterprise, contoh ini tidak berlaku. Untuk informasi tentang penginstalan MySQL, lihat Installing and Upgrading MySQL dalam dokumentasi MySQL.

  6. Saat terhubung ke instans Amazon EC2, dekompresi file cadangan basis data Anda. Berikut ini adalah beberapa contohnya.

    • Untuk mendekompresi output SQL, gunakan perintah berikut.

      gzip backup.sql.gz -d
    • Untuk mendekompresi output delimited-text, gunakan perintah berikut:

      tar xzvf backup.tar.gz

Buat basis data MySQL atau MariaDB dan impor data dari instans Amazon EC2 Anda

Dengan membuat instance MariaDB, instans MySQL DB, atau kluster DB MySQL Multi-AZ di Wilayah yang AWS sama dengan instans Amazon EC2 Anda, Anda dapat mengimpor file cadangan database dari EC2 lebih cepat daripada melalui internet.

Impor cadangan dari instans EC2 ke basis data MySQL

Untuk membuat basis data MariaDB atau MySQL dan mengimpor data Anda

  1. Tentukan kelas instans DB dan jumlah ruang penyimpanan yang dibutuhkan untuk mendukung perkiraan beban kerja untuk basis data Amazon RDS ini. Sebagai bagian dari proses ini, putuskan berapa ruang dan kapasitas pemrosesan yang memadai untuk prosedur pemuatan data Anda. Putuskan juga apa yang diperlukan untuk menangani beban kerja produksi. Anda dapat memperkirakan ini berdasarkan ukuran dan sumber daya dari basis data MariaDB atau MySQL sumber. Untuk informasi selengkapnya, lihat Kelas instans DB .

  2. Buat instans DB atau cluster DB multi-AZ di AWS Wilayah yang berisi instans Amazon EC2 Anda.

    Untuk membuat klaster DB Multi-AZ MySQL, ikuti petunjuk di Membuat klaster DB Multi-AZ.

    Untuk membuat instans DB MariaDB atau MySQL, ikuti petunjuk di Membuat instans DB Amazon RDS dan gunakan pedoman berikut ini:

    • Tentukan versi mesin DB yang kompatibel dengan instans DB sumber Anda, seperti berikut:

      • Jika instans sumber Anda adalah MySQL 5.5.x, instans DB Amazon RDS harus MySQL.

      • Jika instans sumber Anda adalah MySQL 5.6.x atau 5.7.x, instans DB Amazon RDS harus MySQL atau MariaDB.

      • Jika instans sumber Anda adalah MySQL 8.0.x, instans DB Amazon RDS harus MySQL 8.0.x.

      • Jika instans sumber Anda adalah MariaDB 5.5 atau yang lebih tinggi, instans DB Amazon RDS harus MariaDB.

    • Tentukan cloud privat virtual (VPC) dan grup keamanan VPC yang sama untuk instans Amazon EC2 Anda. Pendekatan ini memastikan bahwa instans Amazon EC2 dan instans Amazon RDS Anda terlihat oleh satu sama lain pada jaringan. Pastikan instans DB Anda dapat diakses publik. Untuk mengatur replikasi dengan basis data sumber Anda yang akan dijelaskan nanti, instans DB Anda harus dapat diakses publik.

    • Jangan mengonfigurasikan lebih dari satu Zona Ketersediaan, retensi cadangan, atau replika baca sebelum Anda selesai mengimpor cadangan basis data. Setelah impor selesai, Anda dapat mengonfigurasi Multi-AZ dan retensi cadangan untuk instans produksi.

  3. Tinjau opsi konfigurasi default untuk basis data Amazon RDS. Jika grup parameter default untuk basis data tidak memiliki opsi konfigurasi yang Anda inginkan, temukan grup parameter lain atau buat grup parameter baru. Untuk informasi selengkapnya tentang pembuatan grup parameter, lihat Menggunakan grup parameter.

  4. Hubungkan ke basis data Amazon RDS baru sebagai pengguna master. Buat pengguna yang diperlukan untuk mendukung administrator, aplikasi, dan layanan yang harus mengakses instans. Nama host untuk basis data Amazon RDS adalah nilai Titik akhir untuk instans ini tanpa menyertakan nomor port. Contohnya adalah mysampledb.123456789012.us-west-2.rds.amazonaws.com. Anda dapat menemukan nilai titik akhir dalam detail basis data di Konsol Manajemen Amazon RDS.

  5. Hubungkan ke instans Amazon EC2 Anda. Untuk informasi selengkapnya, lihat Membuat koneksi ke instans Anda dalam Panduan Pengguna Amazon Elastic Compute Cloud untuk Linux.

  6. Hubungkan ke basis data Amazon RDS Anda sebagai sebuah host jarak jauh dari instans Amazon EC2 Anda menggunakan perintah mysql. Berikut adalah contohnya.

    mysql -h host_name -P 3306 -u db_master_user -p

    Nama host adalah titik akhir basis data Amazon RDS.

  7. Pada prompt mysql, jalankan perintah source dan berikan nama file dump basis data Anda untuk memuat data ke dalam instans DB Amazon RDS:

    • Untuk format SQL, gunakan perintah berikut.

      mysql> source backup.sql;
    • Untuk format delimited-text, pertama-tama buat basis data, jika ini bukan basis data default yang Anda buat saat mengatur basis data Amazon RDS.

      mysql> create database database_name; mysql> use database_name;

      Lalu buat tabel.

      mysql> source table1.sql mysql> source table2.sql etc...

      Lalu impor data.

      mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...

      Untuk meningkatkan performa, Anda dapat melakukan operasi ini secara paralel dari beberapa koneksi sehingga semua tabel Anda akan diciptakan dan kemudian dimuat secara bersamaan.

      catatan

      Jika Anda menggunakan opsi pemformatan data apa pun dengan mysqldump saat Anda pertama kali membuang tabel, pastikan untuk menggunakan opsi yang sama untuk memastikan interpretasi yang tepat dari konten file data. LOAD DATA LOCAL INFILE

  8. Jalankan SELECT kueri sederhana terhadap satu atau dua tabel dalam database yang diimpor untuk memverifikasi bahwa impor berhasil.

Jika Anda tidak lagi memerlukan instans Amazon EC2 yang digunakan dalam prosedur ini, hentikan instans EC2 untuk mengurangi penggunaan sumber daya Anda. AWS Untuk mengakhiri sebuah instans EC2, lihat Mengakhiri instans di Panduan Pengguna Amazon EC2.

Replikasi antara basis data eksternal Anda dan basis data Amazon RDS baru

Basis data sumber Anda kemungkinan diperbarui pada saat menyalin dan mentransfer data ke basis data MariaDB atau MySQL. Dengan demikian, Anda dapat menggunakan replikasi untuk membawa database yang disalin up-to-date dengan database sumber.

Lakukan replikasi data dari basis data MySQL eksternal ke basis data di RDS

Izin yang dibutuhkan untuk memulai replikasi pada basis data Amazon RDS dibatasi dan tidak tersedia untuk pengguna master Amazon RDS Anda. Karena itu, pastikan gunakan perintah Amazon RDS atau perintah mysql.rds_set_external_master_gtid untuk mengonfigurasi replikasi, dan perintah mysql.rds_start_replication untuk memulai replikasi antara basis data live Anda dan basis data Amazon RDS Anda.

Memulai replikasi

Sebelumnya, Anda sudah mengaktifkan pencatatan log biner dan mengatur ID server unik untuk basis data sumber Anda. Sekarang Anda dapat mengatur basis data Amazon RDS Anda sebagai replika dengan basis data live Anda sebagai instans replikasi sumber.

  1. Di Konsol Manajemen Amazon RDS, tambahkan alamat IP server yang meng-host basis data sumber ke grup keamanan VPC untuk basis data Amazon RDS. Untuk informasi selengkapnya tentang cara memodifikasi grup keamanan VPC, lihat Grup keamanan untuk VPC Anda dalam Panduan Pengguna Amazon Virtual Private Cloud.

    Anda juga mungkin harus mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP basis data Amazon RDS Anda agar klaster DB ini dapat berkomunikasi dengan instans sumber Anda. Untuk menemukan alamat IP basis data Amazon RDS, gunakan perintah host.

    host rds_db_endpoint

    Nama host adalah nama DNS dari titik akhir basis data Amazon RDS, misalnya, myinstance.123456789012.us-east-1.rds.amazonaws.com. Anda dapat menemukan nilai titik akhir dalam detail instans di Konsol Manajemen Amazon RDS.

  2. Menggunakan klien pilihan Anda, hubungkan ke instans sumber dan buat pengguna untuk digunakan untuk replikasi. Akun ini digunakan hanya untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Berikut adalah contohnya.

    MySQL 5.5, 5.6, dan 5.7

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
    catatan

    Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  3. Untuk instans sumber, berikan hak istimewa REPLICATION CLIENT dan REPLICATION SLAVE kepada pengguna replikasi Anda. Misalnya, untuk memberikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE pada semua basis data untuk pengguna 'repl_user' bagi domain Anda, jalankan perintah berikut.

    MySQL 5.5, 5.6, dan 5.7

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
    catatan

    Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  4. Jika Anda menggunakan format SQL untuk menciptakan file cadangan dan instans eksternalnya bukan MariaDB 10.0.24 atau yang lebih tinggi, lihat konten dari file tersebut.

    cat backup.sql

    File tersebut menyertakan sebuah komentar CHANGE MASTER TO yang berisi nama dan posisi file log master. Komentar ini disertakan dalam file cadangan saat Anda menggunakan opsi --master-data dengan mysqldump. Catat nilai untuk MASTER_LOG_FILE dan MASTER_LOG_POS.

    -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

    Jika Anda menggunakan format delimited-text untuk membuat file cadangan dan instans eksternalnya bukan MariaDB 10.0.24 atau yang lebih tinggi, Anda seharusnya sudah memiliki koordinat log biner dari langkah 1 pada prosedur “Membuat salinan cadangan basis data yang sudah ada” dalam topik ini.

    Jika instans eksternalnya adalah MariaDB 10.0.24 atau yang lebih tinggi, Anda seharusnya sudah memiliki GTID untuk memulai replikasi dari langkah 2 pada prosedur “Membuat salinan cadangan basis data yang sudah ada” dalam topik ini.

  5. Jadikan basis data Amazon RDS sebagai replika. Jika instans eksternalnya bukan MariaDB 10.0.24 atau yang lebih tinggi, hubungkan basis data Amazon RDS sebagai pengguna master dan identifikasi basis data sumber sebagai instans replikasi sumber dengan menggunakan perintah . Gunakan nama file log master dan posisi log master yang Anda tentukan dalam langkah sebelumnya jika Anda memiliki sebuah file cadangan format SQL. Atau gunakan nama dan posisi yang Anda tentukan saat membuat file cadangan jika Anda menggunakan format delimited-text. Berikut adalah contohnya.

    CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
    catatan

    Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

    Jika instans eksternalnya adalah MariaDB 10.0.24 atau yang lebih tinggi, hubungkan basis data Amazon RDS sebagai pengguna master dan identifikasi basis data sumber sebagai instans replikasi sumber dengan menggunakan perintah mysql.rds_set_external_master_gtid. Gunakan GTID yang Anda tentukan pada langkah 2 dalam prosedur “Membuat salinan cadangan basis data yang sudah ada” dalam topik ini. Berikut adalah contohnya.

    CALL mysql.rds_set_external_master_gtid ('source_server_ip_address', 3306, 'ReplicationUser', 'password', 'GTID', 0);

    source_server_ip_address adalah alamat IP instans replikasi sumber. Alamat DNS privat EC2 saat ini tidak didukung.

    catatan

    Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  6. Pada basis data Amazon RDS, terbitkan perintah mysql.rds_start_replication untuk memulai replikasi.

    CALL mysql.rds_start_replication;
  7. Pada database Amazon RDS, jalankan perintah SHOW REPLICA STATUS untuk menentukan kapan replika up-to-date dengan instance replikasi sumber. Hasil perintah SHOW REPLICA STATUS mencakup bidang Seconds_Behind_Master. Ketika Seconds_Behind_Master bidang mengembalikan 0, maka replika adalah up-to-date dengan contoh replikasi sumber.

    catatan

    Versi MySQL sebelumnya menggunakan SHOW SLAVE STATUS, bukan SHOW REPLICA STATUS. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan SHOW SLAVE STATUS.

    Untuk instans DB MariaDB 10.5, 10.6, atau 10.11, jalankan prosedur mysql.rds_replica_status, bukan perintah MySQL.

  8. Setelah database Amazon RDS up-to-date, aktifkan backup otomatis sehingga Anda dapat memulihkan database tersebut jika diperlukan. Anda dapat mengaktifkan atau memodifikasi pencadangan otomatis untuk basis data Amazon RDS Anda menggunakan Konsol Manajemen Amazon RDS. Untuk informasi selengkapnya, lihat Pengantar cadangan.

Mengalihkan aplikasi live Anda ke instans Amazon RDS Anda

Setelah up-to-date database MariaDB atau MySQL dengan instance replikasi sumber, Anda sekarang dapat memperbarui aplikasi langsung Anda untuk menggunakan instans Amazon RDS.

Hentikan replikasi dan arahkan aplikasi live ke basis data di RDS

Mengalihkan aplikasi live Anda ke basis data MariaDB atau MySQL Anda dan menghentikan replikasi

  1. Untuk menambahkan grup keamanan VPC untuk basis data Amazon RDS, tambahkan alamat IP server yang meng-host aplikasi. Untuk informasi selengkapnya tentang cara memodifikasi grup keamanan VPC, lihat Grup keamanan untuk VPC Anda dalam Panduan Pengguna Amazon Virtual Private Cloud.

  2. Verifikasi bahwa Seconds_Behind_Master bidang dalam hasil perintah SHOW REPLICA STATUS adalah 0, yang menunjukkan bahwa replika up-to-date dengan contoh replikasi sumber.

    SHOW REPLICA STATUS;
    catatan

    Versi MySQL sebelumnya menggunakan SHOW SLAVE STATUS, bukan SHOW REPLICA STATUS. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan SHOW SLAVE STATUS.

    Untuk instans DB MariaDB 10.5, 10.6, atau 10.11, jalankan prosedur mysql.rds_replica_status, bukan perintah MySQL.

  3. Tutup semua koneksi ke sumber setelah transaksi selesai.

  4. Perbarui aplikasi Anda untuk menggunakan basis data Amazon RDS. Pembaruan ini biasanya melibatkan perubahan pengaturan koneksi untuk mengidentifikasi nama host dan port basis data Amazon RDS, akun pengguna dan kata sandi untuk terhubung, dan basis data yang digunakan.

  5. Hubungkan ke instans DB.

    Untuk klaster DB Multi-AZ, hubungkan ke instans DB penulis.

  6. Hentikan replikasi untuk instans Amazon RDS menggunakan perintah mysql.rds_stop_replication.

    CALL mysql.rds_stop_replication;
  7. Jalankan perintah mysql.rds_reset_external_master pada basis data Amazon RDS Anda untuk mereset konfigurasi replikasi sehingga instans ini tidak lagi diidentifikasi sebagai replika.

    CALL mysql.rds_reset_external_master;
  8. Aktifkan fitur Amazon RDS tambahan seperti dukungan Multi-AZ dan replika baca. Lihat informasi yang lebih lengkap di Mengonfigurasi dan mengelola deployment Multi-AZ dan Menggunakan replika baca instans DB.