Mengkonfigurasi multi-source-replication untuk Amazon RDS untuk Milik Saya SQL - 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.

Mengkonfigurasi multi-source-replication untuk Amazon RDS untuk Milik Saya SQL

Dengan replikasi multi-sumber, Anda dapat menyiapkan Amazon RDS untuk instans SQL DB Saya sebagai replika yang menerima peristiwa log biner dari lebih dari satu RDS instans DB SQL sumber Saya. Replikasi multi-sumber didukung RDS untuk instans My SQL DB yang menjalankan versi mesin berikut:

  • 8.0.35 dan versi minor yang lebih tinggi

  • 5.7.44 dan versi minor yang lebih tinggi

Untuk informasi tentang replikasi SQL multi-sumber saya, lihat Replikasi SQLMulti-Sumber Saya di dokumentasi Saya. SQL SQLDokumentasi Saya berisi informasi terperinci tentang fitur ini, sementara topik ini menjelaskan cara mengonfigurasi dan mengelola saluran replikasi multi-sumber pada instans SQL DB Saya. RDS

Kasus penggunaan untuk replikasi multi-sumber

Kasus-kasus berikut adalah kandidat yang baik untuk menggunakan replikasi multi-sumber RDS untuk My: SQL

  • Aplikasi yang perlu menggabungkan atau menggabungkan beberapa pecahan pada instance DB terpisah menjadi satu pecahan.

  • Aplikasi yang perlu menghasilkan laporan dari data yang dikonsolidasikan dari berbagai sumber.

  • Persyaratan untuk membuat cadangan data jangka panjang terkonsolidasi yang didistribusikan di antara beberapa instans My RDS SQL DB.

Prasyarat untuk replikasi multi-sumber

Sebelum Anda mengonfigurasi replikasi multi-sumber, selesaikan prasyarat berikut.

  • Pastikan bahwa setiap sumber RDS untuk instans My SQL DB memiliki backup otomatis yang diaktifkan. Mengaktifkan pencadangan otomatis memungkinkan pencatatan biner. Untuk mempelajari cara mengaktifkan pencadangan otomatis, lihat. Mengaktifkan pencadangan otomatis

  • Untuk menghindari kesalahan replikasi, sebaiknya Anda memblokir operasi penulisan ke instans DB sumber. Anda dapat melakukannya dengan menyetel read-only parameter ke ON dalam grup parameter khusus yang dilampirkan ke instance RDS for My SQL source DB. Anda dapat menggunakan AWS Management Console atau AWS CLI untuk membuat grup parameter kustom baru atau untuk memodifikasi yang sudah ada. Untuk informasi selengkapnya, silakan lihat Membuat grup parameter DB di Amazon RDS Amazon dan Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

  • Untuk setiap instans DB sumber, tambahkan alamat IP instans ke grup keamanan Amazon virtual private cloud (VPC) untuk instans DB multi-sumber. Untuk mengidentifikasi alamat IP dari instans DB sumber, Anda dapat menjalankan perintahdig RDS Endpoint. Jalankan perintah dari EC2 instans Amazon VPC sama dengan instans DB multi-sumber tujuan.

  • Untuk setiap instans DB sumber, gunakan klien untuk terhubung ke instans DB dan buat pengguna database dengan hak istimewa yang diperlukan untuk replikasi, seperti pada contoh berikut.

    CREATE USER 'repl_user' IDENTIFIED BY 'password'; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user';

Mengonfigurasi saluran replikasi multi-sumber RDS untuk instans DB Saya SQL

Mengkonfigurasi saluran replikasi multi-sumber mirip dengan mengkonfigurasi replikasi sumber tunggal. Untuk replikasi multi-sumber, pertama-tama Anda mengaktifkan logging biner pada instance sumber. Kemudian, Anda mengimpor data dari sumber ke replika multi-sumber. Kemudian, Anda memulai replikasi dari setiap sumber dengan menggunakan koordinat log biner atau dengan menggunakan GTID penentuan posisi otomatis.

Untuk mengonfigurasi instans RDS for My SQL DB sebagai replika multi-sumber dari dua atau lebih RDS untuk instans My SQL DB, lakukan langkah-langkah berikut.

Langkah 1: Impor data dari instans DB sumber ke replika multi-sumber

Lakukan langkah-langkah berikut pada setiap instans DB sumber.

Sebelum Anda mengimpor data dari sumber ke replika multi-sumber, tentukan file log biner saat ini dan posisikan dengan menjalankan perintah. SHOW MASTER STATUS Catat detail ini untuk digunakan pada langkah berikutnya. Dalam contoh output ini, file adalah mysql-bin-changelog.000031 dan posisinya adalah107.

File Position ----------------------------------- mysql-bin-changelog.000031 107 -----------------------------------

Sekarang salin database dari instance DB sumber ke replika multi-sumber dengan menggunakanmysqldump, seperti pada contoh berikut.

mysqldump --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u RDS_user_name \ -p RDS_password \ --host=RDS Endpoint | mysql \ --host=RDS Endpoint \ --port=3306 \ -u RDS_user_name \ -p RDS_password

Setelah menyalin database, Anda dapat mengatur parameter read-only ke instans OFF DB sumber.

Langkah 2: Mulai replikasi dari instans DB sumber ke replika multi-sumber

Untuk setiap instans DB sumber, gunakan kredensi pengguna master untuk terhubung ke instance, dan jalankan dua prosedur tersimpan berikut. Prosedur tersimpan ini mengonfigurasi replikasi pada saluran dan memulai replikasi. Contoh ini menggunakan nama file binlog dan posisi dari output contoh pada langkah sebelumnya.

CALL mysql.rds_set_external_source_for_channel('mysourcehost.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0, 'channel_1'); CALL mysql.rds_start_replication_for_channel('channel_1');

Untuk informasi selengkapnya tentang menggunakan prosedur tersimpan ini dan lainnya untuk menyiapkan dan mengelola saluran replikasi Anda, lihatMengelola replikasi multi-sumber.

Menggunakan filter dengan replikasi multi-sumber

Anda dapat menggunakan filter replikasi untuk menentukan database dan tabel mana yang direplikasi dalam replika multi-sumber. Filter replikasi dapat menyertakan basis data dan tabel dalam replikasi atau mengecualikannya dari replikasi. Untuk informasi selengkapnya tentang filter replikasi, lihatMengkonfigurasi filter replikasi dengan My SQL.

Dengan replikasi multi-sumber, Anda dapat mengonfigurasi filter replikasi secara global atau di tingkat saluran. Pemfilteran tingkat saluran hanya tersedia dengan instans DB yang didukung yang menjalankan versi 8.0. Contoh berikut menunjukkan cara mengonfigurasi filter secara global atau di tingkat saluran.

Perhatikan persyaratan dan perilaku berikut dengan pemfilteran dalam replikasi multi-sumber:

  • Kutipan belakang (``) di sekitar nama saluran diperlukan.

  • Jika Anda mengubah filter replikasi dalam grup parameter, replika multi-sumber sql_thread untuk semua saluran dengan pembaruan akan dimulai ulang untuk menerapkan perubahan secara dinamis. Jika pembaruan melibatkan filter global, maka semua saluran replikasi dalam status berjalan dimulai ulang.

  • Semua filter global diterapkan sebelum filter khusus saluran apa pun.

  • Jika filter diterapkan secara global dan pada tingkat saluran, maka hanya filter tingkat saluran yang diterapkan. Misalnya, jika filternyareplicate_ignore_db="db1,`channel_22`:db2", maka replicate_ignore_db disetel ke db1 diterapkan ke semua saluran kecuali untukchannel_22, dan hanya channel_22 mengabaikan perubahan daridb2.

Contoh 1: Mengatur filter global

Dalam contoh berikut, temp_data database dikecualikan dari replikasi di setiap saluran.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-db,ParameterValue='temp_data',ApplyMethod=immediate"

Contoh 2: Mengatur filter tingkat saluran

Dalam contoh berikut, perubahan dari sample22 database hanya disertakan dalam saluranchannel_22. Demikian pula, perubahan dari sample99 database hanya disertakan dalam saluranchannel_99.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-do-db,ParameterValue='\`channel_22\`:sample22,\`channel_99\`:sample99',ApplyMethod=immediate"

Memantau saluran replikasi multi-sumber

Anda dapat memantau saluran individual dalam replika multi-sumber dengan menggunakan metode berikut:

  • Untuk memantau status semua saluran atau saluran tertentu, sambungkan ke replika multi-sumber dan jalankan perintah SHOW REPLICA STATUS atauSHOW REPLICA STATUS FOR CHANNEL 'channel_name'. Untuk informasi selengkapnya, lihat Memeriksa Status Replikasi di SQL Dokumentasi saya.

  • Untuk menerima pemberitahuan saat saluran replikasi dimulai, dihentikan, atau dihapus, gunakan pemberitahuan RDS acara. Untuk informasi selengkapnya, lihat Bekerja dengan pemberitahuan RDS acara Amazon.

  • Untuk memantau lag untuk saluran tertentu, periksa ReplicationChannelLag metrik untuk itu. Titik data untuk metrik ini memiliki jangka waktu 60 detik (1 menit) yang tersedia selama 15 hari. Untuk menemukan lag saluran replikasi untuk saluran, gunakan pengenal instance dan nama saluran replikasi. Untuk menerima pemberitahuan ketika lag ini melebihi ambang batas tertentu, Anda dapat mengatur CloudWatch alarm. Untuk informasi selengkapnya, lihat Memantau metrik RDSAmazon Amazon dengan Amazon CloudWatch.

Pertimbangan dan praktik terbaik untuk replikasi multi-sumber

Sebelum Anda menggunakan replikasi multi-sumber RDS untuk MySQL, tinjau pertimbangan dan praktik terbaik berikut:

  • Pastikan bahwa instans DB yang dikonfigurasi sebagai replika multi-sumber memiliki sumber daya yang cukup seperti throughput, memoriCPU, dan IOPS untuk menangani beban kerja dari beberapa instance sumber.

  • Pantau pemanfaatan sumber daya secara teratur pada replika multi-sumber Anda dan sesuaikan konfigurasi penyimpanan atau instans untuk menangani beban kerja tanpa membebani sumber daya.

  • Anda dapat mengonfigurasi replikasi multi-utas pada replika multi-sumber dengan mengatur variabel replica_parallel_workers sistem ke nilai yang lebih besar dari. 0 Dalam hal ini, jumlah utas yang dialokasikan untuk setiap saluran adalah nilai variabel ini, ditambah satu utas koordinator untuk mengelola utas applier.

  • Konfigurasikan filter replikasi dengan tepat untuk menghindari konflik. Untuk mereplikasi seluruh database ke database lain pada replika, Anda dapat menggunakan opsi. --replicate-rewrite-db Misalnya, Anda dapat mereplikasi semua tabel dalam database A ke database B pada contoh replika. Pendekatan ini dapat membantu ketika semua instance sumber menggunakan konvensi penamaan skema yang sama. Untuk informasi tentang --replicate-rewrite-db opsi, lihat Opsi Server Replika dan Variabel dalam SQL dokumentasi Saya.

  • Untuk menghindari kesalahan replikasi, hindari menulis ke replika. Kami menyarankan Anda mengaktifkan read_only parameter pada replika multi-sumber untuk memblokir operasi penulisan. Melakukannya membantu menghilangkan masalah replikasi yang disebabkan oleh operasi penulisan yang bertentangan.

  • Untuk meningkatkan kinerja operasi baca seperti pengurutan dan gabungan beban tinggi yang dijalankan pada replika multi-sumber, pertimbangkan untuk menggunakan Bacaan yang Dioptimalkan. RDS Fitur ini dapat membantu dengan kueri yang bergantung pada tabel sementara besar atau mengurutkan file. Untuk informasi selengkapnya, lihat Meningkatkan performa kueri RDS for MySQL dengan Amazon RDS Optimized Reads.

  • Untuk meminimalkan kelambatan replikasi dan meningkatkan kinerja replika multi-sumber, pertimbangkan untuk mengaktifkan penulisan yang dioptimalkan. Untuk informasi selengkapnya, lihat Meningkatkan performa penulisan dengan RDS Optimized Writes for MySQL.

  • Lakukan operasi manajemen (seperti mengubah konfigurasi) pada satu saluran pada satu waktu, dan hindari melakukan perubahan pada beberapa saluran dari beberapa koneksi. Praktik-praktik ini dapat menyebabkan konflik dalam operasi replikasi. Misalnya, mengeksekusi rds_skip_repl_error_for_channel dan rds_start_replication_for_channel prosedur secara bersamaan dari beberapa koneksi dapat menyebabkan melewatkan peristiwa pada saluran yang berbeda dari yang dimaksudkan.

  • Anda dapat mengaktifkan pencadangan pada instans replikasi multi-sumber dan mengekspor data dari instans tersebut ke bucket Amazon S3 untuk menyimpannya untuk tujuan jangka panjang. Namun, penting juga untuk mengonfigurasi cadangan dengan retensi yang sesuai pada instance sumber individual. Untuk informasi tentang mengekspor data snapshot ke Amazon S3, lihat. Mengekspor data snapshot DB ke Amazon S3 untuk Amazon RDS

  • Untuk mendistribusikan beban kerja baca pada replika multi-sumber, Anda dapat membuat replika baca dari replika multi-sumber. Anda dapat menemukan replika baca ini secara berbeda Wilayah AWS berdasarkan persyaratan aplikasi Anda. Untuk informasi selengkapnya tentang replika baca, lihat Bekerja dengan replika SQL baca saya.

Batasan untuk replikasi multi-sumber untuk My RDS SQL

Batasan berikut berlaku untuk replikasi multi-sumber di RDS for My: SQL

  • Saat ini, RDS untuk SQL dukungan Saya mengonfigurasi maksimum 15 saluran untuk replika multi-sumber.

  • Instance replika baca tidak dapat dikonfigurasi sebagai replika multi-sumber.

  • Untuk mengonfigurasi replikasi multi-sumber RDS untuk My SQL running engine versi 5.7, Performance Schema harus diaktifkan pada instance replika. Mengaktifkan Skema Kinerja adalah opsional RDS untuk My SQL running engine versi 8.0.

  • Untuk RDS untuk My SQL running engine versi 5.7, filter replikasi berlaku untuk semua saluran replikasi. Untuk RDS untuk My SQL running engine versi 8.0, Anda dapat mengonfigurasi filter yang berlaku untuk semua saluran replikasi atau saluran individual.

  • Memulihkan RDS snapshot atau melakukan Point-in-time-Restore (PITR) tidak memulihkan konfigurasi saluran replika multi-sumber.

  • Saat Anda membuat replika baca dari replika multi-sumber, itu hanya mereplikasi data dari instance multi-sumber. Itu tidak mengembalikan konfigurasi saluran apa pun.

  • Saya SQL tidak mendukung pengaturan jumlah pekerja paralel yang berbeda untuk setiap saluran. Setiap saluran mendapatkan jumlah pekerja paralel yang sama berdasarkan replica_parallel_workers nilainya.

Batasan tambahan berikut berlaku jika target replikasi multi-sumber Anda adalah cluster DB multi-AZ:

  • Saluran harus dikonfigurasi RDS untuk sumber SQL instans Saya sebelum penulisan apa pun ke instance itu terjadi.

  • Setiap sumber RDS untuk SQL instans Saya harus mengaktifkan replikasi GTID berbasis.

  • Peristiwa failover pada cluster DB menghapus konfigurasi replikasi multi-sumber. Memulihkan konfigurasi itu membutuhkan pengulangan langkah-langkah konfigurasi.