Cara menggunakan mysql reset replication

Fitur-fitur replikasi Aurora MySQL merupakan kunci untuk ketersediaan dan kinerja yang tinggi dari klaster Anda. Aurora mempermudah penciptaan atau pengukuran ulang klaster dengan penyediaan hingga 15 Aurora Replica.

Semua replika bekerja dari data acuan yang sama. Jika beberapa instans basis data dalam status offline, yang lain akan tetap tersedia untuk melanjutkan pemrosesan kueri atau mengambil alih sebagai penulis jika diperlukan. Aurora secara otomatis akan menyebarkan koneksi hanya-baca Anda ke beberapa instans basis data, yang akan membantu klaster Aurora untuk mendukung beban kerja yang intensif untuk kueri.

Setelah itu, Anda dapat menemukan informasi tentang cara kerja replikasi Aurora MySQL dan cara menyesuaikan pengaturan replikasi untuk ketersediaan dan kinerja terbaik.

Setelah itu, Anda dapat mempelajari fitur replikasi untuk klaster Aurora menggunakan replikasi satu-master. Klaster seperti ini merupakan default untuk Aurora. Untuk informasi selengkapnya tentang klaster multi-master Aurora, lihat Bekerja dengan klaster multi-master Aurora.

Topik

  • Menggunakan Aurora Replicas
  • Opsi replikasi untuk Amazon Aurora MySQL
  • Pertimbangan kinerja untuk replikasi Amazon Aurora MySQL
  • Patching zero-downtime (ZDR) untuk Amazon Aurora MySQL
  • Pemonitoran replikasi Amazon Aurora MySQL
  • Pereplikasian klaster DB Amazon Aurora MySQLWilayah AWS
  • Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi binlog)
  • Penggunaan replikasi berbasis GTID untukAmazon Aurora MySQL

Menggunakan Aurora Replicas

Replika Aurora adalah titik akhir terpisah dalam klaster DB Aurora, paling baik digunakan untuk operasi baca penskalaan dan meningkatkan ketersediaan. Hingga 15 Aurora Replicas dapat didistribusikan di seluruh Zona Ketersediaan yang meliputi klaster DB di seluruhWilayah AWS. Meskipun volume klaster DB terdiri dari beberapa salinan data untuk klaster DB, data dalam volume klaster direpresentasikan sebagai volume tunggal yang logis ke instans primer dan Aurora Replica dalam klaster DB tersebut. Untuk informasi selengkapnya tentang Aurora Replica, lihat Aurora Replicas.

Aurora Replica berfungsi dengan baik untuk penyekalaan baca karena didedikasikan sepenuhnya untuk membaca operasi pada volume klaster Anda. Operasi tulis dikelola oleh instans primer. Karena volume klaster dibagikan di antara semua instans dalam klaster DB Aurora MySQL Anda, pekerjaan tambahan untuk mereplikasi salinan data untuk setiap Aurora Replica tidak diperlukan. Sebaliknya, replika baca MySQL harus memutar ulang, pada utas tunggal, semua operasi tulis dari instans DB sumber daya ke penyimpanan data lokal replika tersebut. Pembatasan ini dapat memengaruhi kemampuan dari replika baca MySQL untuk mendukung volume lalu lintas baca yang besar.

Dengan Aurora MySQL, saat sebuah Aurora Replica dihapus, titik akhir instansnya akan segera dibuang, dan Aurora Replica akan dibuang dari titik akhir pembaca. Jika ada pernyataan yang dijalankan dari Aurora Replica yang sudah dihapus, ada tiga menit masa tenggang. Pernyataan yang ada dapat diselesaikan dengan baik selama masa tenggang. Setelah masa tenggang berakhir, Aurora Replica akan dimatikan dan dihapus.

Aurora Replica untuk Aurora MySQL selalu menggunakan tingkat isolasi transaksi default REPEATABLE READ untuk operasi pada tabel InnoDB. Anda dapat menggunakan perintah SET TRANSACTION ISOLATION LEVEL untuk mengubah tingkat transaksi yang berlaku untuk instans utama dari sebuah klaster DB Aurora MySQL saja. Pembatasan ini bertujuan untuk menghindari kunci tingkat pengguna pada Aurora Replica, dan memungkinkan penyekalaan Aurora Replica untuk mendukung ribuan koneksi pengguna aktif sambil tetap menjaga lag replika seminimal mungkin.

Pernyataan DDL yang berjalan pada instans primer dapat menginterupsi koneksi basis data pada Aurora Replica terkait. Jika koneksi Aurora Replica secara aktif menggunakan sebuah objek basis data, seperti tabel, dan objek tersebut dimodifikasi pada instans primer menggunakan pernyataan DDL, koneksi Aurora Replica dapat terinterupsi.

Wilayah China (Ningxia) tidak mendukung replika baca lintas WIlayah.

Opsi replikasi untuk Amazon Aurora MySQL

Anda dapat mengatur replikasi dengan opsi-opsi berikut:

  • Dua klaster DB Aurora MySQL berbedaWilayah AWS, dengan menciptakan sebuah replika baca lintas Wilayah dari sebuah klaster DB Aurora MySQL.

    Untuk informasi selengkapnya, lihat Pereplikasian klaster DB Amazon Aurora MySQLWilayah AWS.

  • Dua klaster DB Aurora MySQL dalam hal yang samaWilayah AWS, menggunakan replikasi log (binlog) MySQL.

    Untuk informasi selengkapnya, lihat Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi binlog).

  • Instans DB RDS for MySQL sebagai sumber dan klaster DB Aurora MySQL, dengan membuat replika baca Aurora dari instans DB RDS for MySQL.

    Anda dapat menggunakan pendekatan ini untuk membawa perubahan data yang ada dan yang sedang berlangsung ke Aurora MySQL selama migrasi ke Aurora. Untuk informasi selengkapnya, lihat Memigrasikan data dari instans DB MySQL ke klaster DB Amazon Aurora MySQL menggunakan snapshot DB.

    Anda juga dapat menggunakan pendekatan ini untuk meningkatkan skalabilitas kueri baca untuk data Anda. Caranya adalah dengan melakukan kueri pada data menggunakan satu instans DB atau lebih dalam sebuah klaster Aurora MySQL baca saja. Untuk informasi selengkapnya, lihat Penggunaan Amazon Aurora untuk mengukur pembacaan database MySQL Anda.

  • Klaster DB Aurora MySQL menjadi satuWilayah AWSdan hingga lima klaster DB Aurora MySQL baca saja Aurora di Wilayah yang berbeda, dengan menciptakan basis data global Aurora.

    Anda dapat menggunakan database global Aurora untuk mendukung aplikasi dengan jejak di seluruh dunia. Klaster DB Aurora MySQL utama memiliki instans Writer dan hingga 15 Aurora Replica. Klaster DB Aurora MySQL sekunder baca saja masing-masing dapat terdiri dari sebanyak 16 Aurora Replica. Untuk informasi selengkapnya, lihat Menggunakan Amazon Aurora global database.

Mem-boot ulang instans utama klaster DB Amazon Aurora juga secara otomatis mem-boot ulang Aurora Replica untuk klaster DB tersebut, untuk menetapkan kembali titik masuk yang menjamin konsistensi baca/tulis di seluruh klaster DB.

Pertimbangan kinerja untuk replikasi Amazon Aurora MySQL

Fitur berikut dapat membantu Anda menyesuaikan kinerja replikasi Aurora MySQL.

Mulai di Aurora MySQL 1.17.4, fitur kompresi log replika secara otomatis mengurangi bandwidth jaringan untuk pesan replikasi. Karena setiap pesan ditransmisikan ke semua Replika Aurora, manfaat yang diberikan lebih besar untuk klaster yang lebih besar. Fitur ini melibatkan beberapa overhead CPU pada node penulis untuk melakukan kompresi. Dengan demikian, fitur ini hanya tersedia pada kelas instans 8xlarge dan 16xlarge, yang memiliki kapasitas CPU yang tinggi. Fitur ini diaktifkan secara default pada kelas-kelas instans ini. Anda dapat mengontrol fitur ini dengan mematikan parameter aurora_enable_replica_log_compression. Misalnya, Anda dapat mematikan kompresi log replika untuk kelas instans yang lebih besar jika node penulis Anda berada sudah mendekati kapasitas maksimum CPU.

Mulai dari Aurora MySQL 1.17.4, fitur pemfilteran binlog secara otomatis akan mengurangi bandwidth jaringan untuk pesan replikasi. Karena Aurora Replica tidak menggunakan informasi binlog yang disertakan dalam pesan replikasi, data tersebut dihilangkan dari pesan yang dikirim ke node-node tersebut. Anda dapat mengontrol fitur ini dengan mengubah parameter aurora_enable_repl_bin_log_filtering. Parameter ini berada dalam kondisi menyala secara default. Karena optimisasi ini dimaksudkan supaya transparan, Anda dapat mematikan pengaturan ini hanya selama diagnosis atau pemecahan masalah untuk masalah yang terkait dengan replikasi. Misalnya, Anda dapat melakukannya untuk mencocokkan perilaku dari klaster Aurora MySQL lama yang tidak menyediakan fitur ini.

Patching zero-downtime (ZDR) untuk Amazon Aurora MySQL

Fitur mulai zero-downtime (ZDR) dapat mempertahankan beberapa atau semua koneksi aktif untuk instans DB selama beberapa jenis mulai ulang. ZDR berlaku untuk memulai ulang yang dilakukan Aurora secara otomatis untuk mengatasi kondisi kesalahan, misalnya saat replika mulai tertinggal terlalu jauh di belakang sumbernya.

Mekanisme ZDR beroperasi dengan dasar upaya terbaik. Versi Aurora MySQL, kelas instans, kondisi kesalahan, operasi SQL yang kompatibel, dan faktor lain yang menentukan penerapan ZDR dapat berubah sewaktu-waktu.

Di Aurora MySQL 1.* versi di mana ZDR tersedia, Anda mengaktifkan fitur ini dengan mengaktifkanaurora_enable_zdrparameter dalam grup parameter klaster klaster. ZDR untuk Aurora MySQL 2.* membutuhkan versi 2.10 dan lebih tinggi. ZDR tersedia di semua versi minor Aurora MySQL 3.*. Di Aurora MySQL versi 2 dan 3, mekanisme ZDR diaktifkan secara default dan Aurora tidak menggunakanaurora_enable_zdrparameter.

Aurora melaporkan di halaman Peristiwa terkait dengan mulai ulang zero-downtime. Aurora mencatat sebuah peristiwa ketika mencoba mulai ulang menggunakan mekanisme ZDR. Peristiwa ini menyatakan mengapa Aurora melakukan mulai ulang. Kemudian Aurora mencatat peristiwa lain ketika mulai ulang selesai. Peristiwa akhir ini melaporkan berapa lama proses mengambil, dan berapa banyak koneksi yang diawetkan atau dijatuhkan selama mulai ulang. Anda dapat berkonsultasi log kesalahan database untuk melihat rincian lebih lanjut tentang apa yang terjadi selama mulai ulang.

Meskipun koneksi tetap utuh setelah operasi ZDR yang sukses, beberapa variabel dan fitur diinisialisasi ulang. Jenis informasi berikut ini tidak dipertahankan melalui mulai ulang disebabkan oleh mulai ulang zero-downtime:

  • Variabel global. Aurora mengembalikan variabel sesi, tetapi tidak mengembalikan variabel global setelah mulai ulang.

  • Variabel status. Secara khusus, nilai uptime yang dilaporkan oleh status mesin diatur ulang.

  • LAST_INSERT_ID.

  • Status auto_increment dalam memori untuk tabel. Status kenaikan otomatis dalam memori diinisialisasi ulang. Untuk informasi lebih lanjut tentang nilai kenaikan otomatis, lihat Manual Referensi MySQL.

  • Informasi diagnostik dari tabel INFORMATION_SCHEMA dan PERFORMANCE_SCHEMA. Informasi diagnostik ini juga muncul dalam output perintah seperti SHOW PROFILE dan SHOW PROFILES.

Tabel berikut menunjukkan versi, peran instans, kelas instans, dan keadaan lain yang menentukan apakah Aurora dapat menggunakan mekanisme ZDR saat memulai ulang instans DB di klaster Anda.

Versi Aurora MySQL Apakah ZDR berlaku untuk penulis? Apakah ZDR berlaku untuk pembaca? Catatan

Aurora MySQL versi 1.*, 1.17.3 dan yang lebih rendah

Tidak

Tidak

ZDR tidak tersedia untuk versi ini.

Aurora MySQL versi 1.*, 1.17.4 dan yang lebih tinggi

Tidak

Ya

Dalam versi Aurora MySQL ini, ketentuan berikut berlaku untuk mekanisme ZDR:

  • Aurora tidak menggunakan mekanisme ZDR jika log biner diaktifkan untuk instans DB.

  • Aurora mengembalikan semua transaksi yang sedang berlangsung pada koneksi aktif. Aplikasi Anda harus mencoba lagi transaksi.

  • Aurora membatalkan koneksi apa pun yang menggunakan TLS/SSL, tabel sementara, kunci tabel, atau kunci pengguna.

Aurora MySQL versi 2.*, sebelum 2.10.0

Tidak

Tidak

ZDR tidak tersedia untuk versi ini. Parameter aurora_enable_zdr tidak tersedia di grup parameter klaster default untuk Aurora MySQL versi 2.

Aurora MySQL versi 2.*, 2.10.0, dan lebih tinggi

Ya

Ya

Mekanisme ZDR selalu diaktifkan.

Dalam versi Aurora MySQL ini, ketentuan berikut berlaku untuk mekanisme ZDR:

  • Aurora mengembalikan semua transaksi yang sedang berlangsung pada koneksi aktif. Aplikasi Anda harus mencoba lagi transaksi.

  • Aurora membatalkan koneksi apa pun yang menggunakan TLS/SSL, tabel sementara, kunci tabel, atau kunci pengguna.

Aurora MySQL versi 3. *

Ya

Ya

Mekanisme ZDR selalu diaktifkan.

Kondisi yang sama berlaku seperti di Aurora MySQL versi 2.10. ZDR berlaku untuk semua kelas contoh.

Pemonitoran replikasi Amazon Aurora MySQL

Penyekalaan baca dan ketersediaan yang tinggi tergantung dari waktu lag minimal. Anda dapat memonitor seberapa jauh sebuah Aurora Replica tertinggal di belakang instans primer dari klaster DB Aurora MySQL Anda dengan memonitor Amazon CloudWatch AuroraReplicaLagmetrik. Metrik AuroraReplicaLag direkam dalam setiap Aurora Replica.

Instans DB primer juga mencatatAuroraReplicaLagMaximumdanAuroraReplicaLagAmazon CloudWatch metrik. Metrik AuroraReplicaLagMaximum akan merekam jumlah maksimum lag antara instans DB primer dan setiap Aurora Replica dalam klaster DB. Metrik AuroraReplicaLag akan merekam jumlah minimum lag antara instans DB primer dan setiap Aurora Replica dalam klaster DB.

Jika Anda memerlukan nilai terbaru dari lag Aurora Replica, Anda dapat melakukan kueri pada tabel recrystallisations pada instans utama dalam klaster DB Aurora MySQL Anda dan memeriksa nilai dalam kolom Replica_lag_in_msec. Nilai kolom ini disediakan untuk Amazon CloudWatch sebagai nilai untukAuroraReplicaLagmetrik. Lag Aurora Replica juga direkam pada setiap Aurora Replica dalam tabel INFORMATION_SCHEMA.REPLICA_HOST_STATUS dalam klaster DB Aurora MySQL Anda.

Untuk informasi lebih lanjut tentang memantau instans RDS dan CloudWatch metrik, lihatMetrik pemantauan di klaster Amazon Aurora.

Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi binlog)

Karena Amazon Aurora MySQL kompatibel dengan MySQL, Anda dapat mengatur replikasi antara database MySQL dan klaster DB Amazon Aurora MySQL. Jenis replikasi ini menggunakan replikasi biner log MySQL, dan secara umum disebut sebagai replikasi binlog. Jika Anda menggunakan replikasi binlog dengan Aurora, sebaiknya database MySQL Anda menjalankan MySQL versi 5.5 atau yang lebih baru. Anda dapat mengatur replikasi jika klaster DB Aurora MySQL Anda merupakan sumber replikasi atau replika. Anda dapat mereplikasi dengan sebuah instans DB Amazon RDS , sebuah basis data MySQL eksternal pada Amazon RDS, atau klaster DB Aurora MySQL lainnya.

Anda tidak dapat menggunakan replikasi binlog ke atau dari jenis klaster Aurora tertentu. Secara khusus, replikasi binlog tidak tersedia untukAurora Serverless v1dan klaster multi-master. JikaSHOW MASTER STATUSdanSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) pernyataan mengembalikan tidak ada output, periksa bahwa cluster yang Anda gunakan adalah salah satu yang mendukung replikasi binlog.

Anda juga dapat mereplikasi dengan sebuah instans DB RDS for MySQL atau klaster DB Aurora MySQL di klaster DB lainnyaWilayah AWS. Saat Anda melakukan replikasiWilayah AWS, pastikan klaster DB dan instans DB Anda dapat diakses oleh publik. Jika cluster Aurora MySQL DB berada di subnet pribadi di VPC Anda, gunakan VPC peering antaraWilayah AWS. Untuk informasi selengkapnya, lihat DBgugusdalam VPC yang diakses oleh instans EC2 dalam VPC yang berbeda.

Jika Anda ingin mengonfigurasi replikasi antara sebuah klaster DB Aurora MySQL dan sebuah klaster DB Aurora MySQL di wilayah lainnya, Anda dapat menciptakan sebuah klaster DB Aurora MySQL sebagai sebuah replika baca di wilayah lainnyaWilayah AWSdari klaster DB sumber. Untuk informasi selengkapnya, lihat Pereplikasian klaster DB Amazon Aurora MySQLWilayah AWS.

Dengan Aurora MySQL 2.04 dan yang lebih tinggi, Anda dapat mereplikasi antara Aurora MySQL dan sebuah sumber atau target eksternal yang menggunakan pengidentifikasi transaksi global (GTID) untuk replikasi. Pastikan parameter terkait GTID dalam klaster DB Aurora MySQL tersebut memiliki pengaturan yang kompatibel dengan status GTID dari basis data eksternal. Untuk mempelajari cara melakukannya, lihat Penggunaan replikasi berbasis GTID untukAmazon Aurora MySQL. Di Aurora MySQL versi 3.01 dan yang lebih tinggi, Anda dapat memilih cara menetapkan GTID ke transaksi yang direplikasi dari sumber yang tidak menggunakan GTID. Untuk informasi tentang prosedur tersimpan yang mengontrol pengaturan itu, lihatmysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versi 3 dan lebih tinggi).

Saat Anda mereplikasi antara Aurora MySQL dan MySQL, pastikan Anda hanya menggunakan tabel InnoDB. Jika Anda memiliki tabel MyISAM yang ingin Anda replikasi, Anda dapat mengonversinya menjadi InnoDB sebelum mengatur replikasi dengan perintah berikut.

alter table <schema>.<table_name> engine=innodb, algorithm=copy;

Pengaturan replikasi MySQL dengan Aurora MySQL melibatkan langkah-langkah berikut, yang dibahas secara terperinci dalam topik ini:

1. Aktifkan log biner pada sumber replikasi

2. Simpan log biner pada sumber replikasi hingga tidak diperlukan lagi

3. Ciptakan sebuah snapshot dari sumber replikasi Anda

4. Muat snapshot ke dalam target replika Anda

5. Buat pengguna replikasi pada sumber replikasi Anda

6. Aktifkan replikasi pada target replika Anda

7. Monitor replika Anda

Pengaturan replikasi dengan MySQL atau klaster DB Aurora lainnya

Untuk mengatur replikasi Aurora dengan MySQL, lakukan langkah-langkah berikut.

1. Aktifkan log biner pada sumber replikasi

Temukan petunjuk tentang cara mengaktifkan log biner pada sumber replikasi untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora

Untuk mengaktifkan log biner pada sebuah klaster DB Aurora MySQL

Atur parameter binlog_format ke ROW, STATEMENT, atau MIXED. Disarankan untuk menggunakan MIXED, kecuali jika Anda membutuhkan sebuah format binlog tertentu. Parameter binlog_format adalah parameter tingkat klaster yang berada dalam grup parameter klaster default. Jika Anda mengubahbinlog_formatparameter dariOFFke nilai lain, maka Anda perlu mem-boot ulang klaster DB Aurora Anda agar perubahan dapat diterapkan.

Untuk informasi lebih lanjut, lihat Parameter klaster DB dan instans DB Amazon Aurora dan Bekerja dengan grup parameter.

RDS for MySQL

Untuk mengaktifkan log biner pada sebuah instans DB Amazon RDS

Anda tidak dapat mengaktifkan log biner secara langsung pada sebuah instans DB Amazon RDS, tetapi Anda dapat mengaktifkannya dengan melakukan salah satu hal berikut ini:

  • Aktifkan backup otomatis untuk instans DB. Anda dapat mengaktifkan backup otomatis saat Anda menciptakan sebuah instans DB, atau Anda dapat mengaktifkan backup dengan memodifikasi instans DB yang sudah ada. Untuk informasi selengkapnya, lihat Penciptaan sebuah instans DB dalam Panduan Pengguna Amazon RDS.

  • Ciptakan sebuah replika baca untuk instans DB. Untuk informasi selengkapnya, lihat Cara menggunakan replika baca dalam Panduan Pengguna Amazon RDS.

MySQL (eksternal)

Untuk mengatur replikasi terenkripsi

Untuk mereplikasi data dengan aman dengan Aurora MySQL versi 5.6, Anda dapat menggunakan replikasi terenkripsi.

Saat ini, replikasi terenkripsi dengan sebuah database MySQL eksternal hanya didukung untuk Aurora MySQL versi 5.6.

catatan

Jika Anda tidak perlu menggunakan replikasi terenkripsi, Anda dapat melewati langkah-langkah ini.

Berikut ini adalah prasyarat untuk menggunakan replikasi terenkripsi:

  • Secure Sockets Layer (SSL) harus diaktifkan pada database sumber MySQL eksternal.

  • Kunci klien dan sertifikat klien harus disiapkan untuk klaster DB Aurora MySQL.

Selama replikasi terenkripsi, klaster DB Aurora MySQL berperan sebagai klien untuk server database MySQL. Sertifikat dan kunci untuk klien Aurora MySQL ada di dalam file dengan format .pem.

  1. Pastikan bahwa Anda siap untuk replikasi terenkripsi:

    • Jika Anda tidak mengaktifkan SSL di database sumber MySQL eksternal dan tidak menyiapkan kunci klien dan sertifikat klien, aktifkan SSL di server database MySQL dan buat kunci klien dan sertifikat klien yang diperlukan.

    • Jika SSL diaktifkan pada sumber eksternal, sediakan kunci dan sertifikat klien untuk klaster DB Aurora MySQL. Jika Anda tidak memilikinya, buat kunci dan sertifikat baru untuk klaster DB Aurora MySQL. Untuk menandatangani sertifikat klien, Anda harus memiliki kunci otoritas sertifikat yang Anda gunakan untuk mengonfigurasi SSL pada basis data sumber MySQL eksternal.

    Untuk informasi selengkapnya, lihat Membuat sertifikat dan kunci SSL menggunakan openssl di dokumentasi MySQL.

    Anda memerlukan sertifikat otoritas sertifikat, kunci klien, dan sertifikat klien.

  2. Hubungkan ke Aurora MySQL DB cluster sebagai pengguna master menggunakan SSL.

    Untuk informasi tentang menghubungkan ke klaster DB Aurora MySQL dengan SSL, lihat Menggunakan SSL/TLS dengan klaster DB Aurora MySQL.

  3. Jalankan prosedur mysql.rds_import_binlog_ssl_material tersimpan untuk mengimpor informasi SSL ke dalam klaster DB Aurora MySQL.

    Untuk parameter ssl_material_value, masukkan informasi dari file format .pem untuk klaster DB Aurora MySQL di payload JSON yang benar.

    Contoh berikut mengimpor informasi SSL ke dalam klaster DB Aurora MySQL. Dalam file berformat .pem, kode isi biasanya lebih panjang dari kode isi yang ditunjukkan dalam contoh.

    call mysql.rds_import_binlog_ssl_material(
    '{"ssl_ca":"-----BEGIN CERTIFICATE-----
    AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
    hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
    lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
    qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
    BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
    -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE-----
    AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
    hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
    lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
    qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
    BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
    -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY-----
    AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
    hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
    lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
    qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
    BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
    -----END RSA PRIVATE KEY-----\n"}');
    

    Untuk informasi selengkapnya, lihat mysql_rds_import_binlog_ssl_material dan Menggunakan SSL/TLS dengan klaster DB Aurora MySQL.

    catatan

    Setelah menjalankan prosedur, rahasia disimpan dalam file. Untuk menghapus file nanti, Anda dapat menjalankan prosedur mysql_rds_remove_binlog_ssl_material tersimpan.

Untuk mengaktifkan log biner pada sebuah database MySQL eksternal

  1. Dari sebuah shell perintah, hentikan layanan mysql.

    sudo service mysqld stop
  2. 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 sebuah pengidentifikasi unik untuk peladen dalam hubungan sumber-replika.

    Jika replikasi terenkripsi tidak diperlukan, pastikan database MySQL eksternal dimulai dengan pengaktifan binlog dan SSL dimatikan.

    Berikut ini entri yang relevan dalam file /etc/my.cnf untuk data yang tidak dienkripsi.

    log-bin=mysql-bin
    server-id=2133421
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    

    Jika replikasi terenkripsi diperlukan, pastikan database MySQL eksternal dimulai dengan SSL dan binlog diaktifkan.

    Entri dalam file /etc/my.cnf mencakup lokasi file .pem untuk server database MySQL.

    log-bin=mysql-bin
    server-id=2133421
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    
    # Setup SSL.
    ssl-ca=/home/sslcerts/ca.pem
    ssl-cert=/home/sslcerts/server-cert.pem
    ssl-key=/home/sslcerts/server-key.pem
    

    Selain itu, opsi sql_mode untuk instans DB MySQL Anda harus diatur ke 0, atau tidak boleh disertakan dalam file my.cnf Anda.

    Saat terhubung ke database MySQL eksternal, rekam posisi log biner basis data MySQL eksternal.

    mysql> SHOW MASTER STATUS;

    Output Anda harus serupa dengan berikut ini:

    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000031 |      107 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

    Untuk informasi selengkapnya, lihat Setting the replication source configuration di dokumentasi MySQL.

  3. Mulai layanan mysql.

    sudo service mysqld start

2. Simpan log biner pada sumber replikasi hingga tidak diperlukan lagi

Jika Anda menggunakan replikasi log biner MySQL, Amazon RDS tidak akan mengelola proses replikasi. Akibatnya, Anda harus memastikan bahwa file binlog pada sumber replikasi Anda dipertahankan hingga perubahan sudah diterapkan ke replika. Pemeliharaan ini membantu Anda memulihkan basis data sumber Anda meski terjadi kegagalan.

Gunakan petunjuk berikut untuk mempertahankan log biner untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora

Untuk mempertahankan log biner pada sebuah klaster DB Aurora MySQL

Anda tidak memiliki akses ke file binlog pada sebuah klaster DB Aurora MySQL. Oleh karena itu, Anda harus memilih sebuah kerangka waktu yang sesuai untuk mempertahankan file binlog pada sumber replikasi Anda untuk memastikan bahwa perubahan sudah diterapkan pada replika Anda sebelum file binlog dihapus oleh Amazon RDS. Anda dapat mempertahankan file binlog pada sebuah klaster DB Aurora MySQL hingga 90 hari.

Jika Anda mengatur replikasi dengan sebuah database MySQL atau instans DB RDS for MySQL sebagai replika, dan database yang Anda ciptakan sebagai replika sangat besar, pilih kerangka waktu yang lama untuk menyimpan file binlog hingga salinan asli dari database ke replika selesai dan lag replika telah mencapai 0.

Untuk mengatur kerangka waktu retensi log biner, gunakanmysql_rds_set_konfigurasiprosedur dan menentukan parameter konfigurasi'binlog retention hours'bersama dengan jumlah jam untuk mempertahankan file binlog di klaster DB. Nilai maksimum untuk Aurora MySQL versi 1 adalah 2160 (90 days). Nilai maksimum untuk Aurora MySQL versi 2 dan 3 adalah 168 (7 hari).

Contoh berikut menetapkan periode retensi untuk file binlog menjadi 6 hari:

CALL mysql.rds_set_configuration('binlog retention hours', 144);

Setelah replikasi dimulai, Anda dapat memverifikasi bahwa perubahan telah diterapkan ke replika Anda dengan menjalankanSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah pada replika Anda dan memeriksaSeconds behind masterBidang. Jika bidang Seconds behind master adalah 0, maka tidak ada lag replika. Ketika tidak ada lag replika, kurangi durasi waktu penahanan file binlog dengan mengatur parameter konfigurasi binlog retention hours ke sebuah kerangka waktu yang lebih kecil.

Jika pengaturan ini tidak ditentukan, default untuk Aurora MySQL adalah 24 (1 hari).

Jika Anda menentukan nilai untuk'binlog retention hours'yang lebih tinggi dari nilai maksimum, maka Aurora MySQL menggunakan maksimum.

RDS for MySQL

Untuk mempertahankan log biner pada sebuah instans DB Amazon RDS

Anda dapat menyimpan file log biner pada sebuah instans DB Amazon RDS dengan mengatur jam retensi binlog sama seperti sebuah klaster DB Aurora MySQL, yang sudah dijelaskan di baris sebelumnya.

Anda juga dapat menyimpan file binlog pada sebuah instans DB Amazon RDS dengan menciptakan sebuah replika baca untuk instans DB. Replika baca ini bersifat sementara dan hanya untuk menahan file binlog. Setelah replika baca dibuat, hubungimysql_rds_stop_replicationpada replika baca. Saat replikasi dihentikan, Amazon RDS tidak akan menghapus file binlog mana pun pada sumber replikasi. Setelah Anda mengatur replikasi dengan replika permanen, Anda dapat menghapus replika baca saat lag replika (bidang Seconds behind master) antara sumber replikasi dan replika permanen Anda mencapai 0.

MySQL (eksternal)

Untuk mempertahankan log biner pada sebuah database MySQL eksternal

Karena file binlog pada database MySQL eksternal tidak dikelola oleh Amazon RDS, file akan dipertahankan hingga Anda menghapusnya.

Setelah replikasi dimulai, Anda dapat memverifikasi bahwa perubahan telah diterapkan ke replika Anda dengan menjalankanSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah pada replika Anda dan memeriksaSeconds behind masterBidang. Jika bidang Seconds behind master adalah 0, maka tidak ada lag replika. Saat tidak ada lag replika, Anda dapat menghapus file binlog lama.

3. Ciptakan sebuah snapshot dari sumber replikasi Anda

Anda dapat menggunakan sebuah snapshot dari sumber replikasi untuk memuat salinan data dasar ke replika Anda, agar kemudian dapat mulai mereplikasi dari titik tersebut.

Gunakan petunjuk berikut untuk menciptakan sebuah snapshot dari sumber replikasi untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora

Untuk menciptakan sebuah snapshot dari sebuah klaster DB Aurora MySQL

  1. Ciptakan sebuah snapshot klaster DB dari klaster DB Amazon Aurora Anda. Untuk informasi selengkapnya, lihat Membuat snapshot klaster DB.

  2. Ciptakan sebuah klaster DB Aurora baru dengan memulihkan dari snapshot klaster DB yang baru saja Anda ciptakan. Pastikan untuk mempertahankan grup parameter DB yang sama untuk klaster DB yang Anda pulihkan sebagai klaster DB asli Anda. Tindakan ini untuk memastikan bahwa salinan klaster DB Anda sudah mengaktifkan pencatatan biner. Untuk informasi selengkapnya, lihat Memulihkan dari snapshot klaster DB.

  3. Dalam konsol, pilih Databases lalu pilih instans primer (penulis) pada klaster DB Aurora Anda yang dipulihkan untuk menampilkan detailnya. Gulir ke Recent Events. Sebuah pesan peristiwa akan menunjukkan hal itu termasuk nama dan posisi file binlog. Pesan peristiwa memiliki format seperti berikut ini.

    Binlog position from crash recovery is binlog-file-name binlog-position

    Simpan nilai nama dan posisi file binlog saat Anda memulai replikasi.

    Anda juga dapat memperoleh nama dan posisi file binlog dengan memanggil perintah describe-events dari AWS CLI. Berikut ini adalah sebuah contoh perintah describe-events disertai dengan contoh keluaran.

    PROMPT> aws rds describe-events
    {
        "Events": [
            {
                "EventCategories": [],
                "SourceType": "db-instance",
                "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-restored-instance",
                "Date": "2016-10-28T19:43:46.862Z",
                "Message": "Binlog position from crash recovery is mysql-bin-changelog.000003 4278",
                "SourceIdentifier": "sample-restored-instance"
            }
        ]
    }

    Anda juga bisa mendapatkan nama dan posisi file binlog dengan memeriksa log kesalahan MySQL untuk posisi file binlog MySQL terakhir.

  4. Jika target replika Anda adalah sebuah klaster DB Aurora yang dimiliki oleh akun AWS lain, sebuah database MySQL eksternal, atau sebuah instans DB RDS for MySQL, Anda tidak dapat memuat data dari sebuah snapshot klaster DB Amazon Aurora. Sebaliknya, buat sebuah pembuangan dari klaster DB Amazon Aurora Anda dengan menghubungkan ke klaster DB Anda menggunakan sebuah klien MySQL dan menerbitkan perintah mysqldump. Pastikan untuk menjalankan perintah mysqldump yang berlawanan dengan salinan dari klaster DB Amazon Aurora yang Anda ciptakan. Berikut adalah contoh.

    PROMPT> mysqldump --databases <database_name> --single-transaction
    --order-by-primary -r backup.sql -u <local_user> -p
  5. Setelah Anda selesai menciptakan pembuangan data Anda dari klaster DB Aurora yang baru diciptakan, hapus klaster DB tersebut karena sudah tidak lagi diperlukan.

RDS for MySQL

Untuk menciptakan sebuah snapshot dari sebuah instans DB Amazon RDS

  1. Ciptakan sebuah replika baca dari instans DB Amazon RDS Anda. Untuk informasi selengkapnya, lihat Penciptaan sebuah replika baca dalam Panduan Pengguna Amazon Relational Database Service.

  2. Hubungkan ke replika baca Anda dan hentikan replikasi dengan menjalankan prosedur mysql_rds_stop_replication.

  3. Sementara replika bacaDihentikan, Connect ke replika baca dan jalankanSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah. Ambil nama file log biner saat ini dari bidang Relay_Master_Log_File dan posisi file log dari bidang Exec_Master_Log_Pos. Simpan nilai-nilai ini saat Anda memulai replikasi.

  4. Jika replika baca tetap Stopped, ciptakan sebuah snapshot DB dari replika baca. Untuk informasi selengkapnya, lihat Penciptaan sebuah snapshot DB dalam Panduan Pengguna Amazon Relational Database Service.

  5. Hapus replika baca.

MySQL (eksternal)

Untuk menciptakan sebuah snapshot dari sebuah database MySQL eksternal

  1. Sebelum Anda menciptakan sebuah snapshot, Anda harus memastikan bahwa lokasi binlog untuk snapshot sama mutakhirnya dengan data dalam instans sumber Anda. Untuk melakukan ini, Anda harus terlebih dahulu menghentikan operasi tulis apa pun ke instans dengan perintah berikut:

    mysql> FLUSH TABLES WITH READ LOCK;
  2. Buat sebuah pembuangan database MySQL menggunakan perintah mysqldump seperti yang ditunjukkan berikut ini:

    PROMPT> sudo mysqldump --databases <database_name> --master-data=2  --single-transaction \
    --order-by-primary -r backup.sql -u <local_user> -p
    
  3. Setelah Anda menciptakan snapshot, buka tabel dalam database MySQL Anda dengan perintah berikut:

    mysql> UNLOCK TABLES;
    

4. Muat snapshot ke dalam target replika Anda

Jika Anda berencana memuat data dari dump database MySQL yang berada di luar Amazon RDS, Anda mungkin ingin membuat instans EC2 untuk menyalin file dump, lalu memuat data ke klaster DB atau instans DB Anda dari instans EC2 tersebut. Dengan menggunakan pendekatan ini, Anda dapat mengompres file pembuangan sebelum menyalinnya ke instans EC2 untuk mengurangi biaya jaringan yang terkait dengan penyalinan data ke Amazon RDS. Anda juga dapat mengenkripsi file atau file-file pembuanganuntuk mengamankan data karena data tersebut ditransfer ke seluruh jaringan.

Gunakan petunjuk berikut untuk memuat snapshot dari sumber replikasi ke dalam target replika untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora

Untuk memuat satu snapshot ke klaster DB Aurora MySQL

  • Jika snapshot sumber replikasi Anda adalah sebuah snapshot klaster DB, Anda dapat memulihkan dari snapshot klaster DB untuk menciptakan sebuah klaster DB Aurora MySQL baru sebagai target replika Anda. Untuk informasi selengkapnya, lihat Memulihkan dari snapshot klaster DB.

  • Jika snapshot sumber replikasi Anda adalah sebuah snapshot DB, maka Anda dapat memigrasikan data dari snapshot DB Anda ke dalam sebuah klaster DB Aurora MySQL baru. Untuk informasi selengkapnya, lihat Memigrasikan data ke kluster Amazon Aurora DB.

  • Jika snapshot sumber replikasi Anda merupakan output dari perintah mysqldump, maka ikuti langkah-langkah ini:

    1. Salin output dari perintah mysqldump dari sumber replikasi Anda ke sebuah lokasi yang juga dapat terhubung ke klaster DB Aurora MySQL Anda.

    2. Hubungkan ke klaster DB Aurora MySQL Anda dengan menggunakan perintah mysql. Berikut adalah contoh.

      PROMPT> mysql -h <host_name> -port=3306 -u <db_master_user> -p
    3. Pada permintaan mysql, jalankan perintah source dan berikan nama file pembuangan database Anda untuk memuat data ke dalam klaster DB Aurora MySQL, misalnya:

      mysql> source backup.sql;

RDS for MySQL

Untuk memuat sebuah snapshot ke dalam sebuah instans DB Amazon RDS

  1. Salin output dari perintah mysqldump dari sumber replikasi Anda ke sebuah lokasi yang juga dapat terhubung ke instans DB MySQL Anda.

  2. Hubungkan ke instans DB MySQL Anda dengan menggunakan perintah mysql. Berikut adalah contoh.

    PROMPT> mysql -h <host_name> -port=3306 -u <db_master_user> -p
  3. Pada permintaan mysql, jalankan perintah source dan berikan nama file pembuangan basis data Anda untuk memuat data ke dalam instans DB MySQL, misalnya:

    mysql> source backup.sql;

MySQL (eksternal)

Untuk memuat sebuah snapshot dari sebuah database MySQL eksternal

Anda tidak dapat memuat sebuah snapshot DB atau sebuah snapshot klaster DB ke dalam sebuah database MySQL eksternal. Sebaliknya, Anda harus menggunakan output dari perintah mysqldump.

  1. Salin output dari perintah mysqldump dari sumber replikasi Anda ke sebuah lokasi yang juga dapat terhubung ke database MySQL Anda.

  2. Hubungkan ke database MySQL Anda dengan menggunakan perintah mysql. Berikut adalah contoh.

    PROMPT> mysql -h <host_name> -port=3306 -u <db_master_user> -p
  3. Pada permintaan mysql, jalankan perintah source dan berikan nama file dump database Anda untuk memuat data ke database MySQL Anda. Berikut adalah contoh.

    mysql> source backup.sql;

5. Buat pengguna replikasi pada sumber replikasi Anda

Buat sebuah ID pengguna pada sumber yang digunakan untuk replikasi saja. Berikut adalah contohnya.

mysql> CREATE USER 'repl_user'@'<domain_name>' IDENTIFIED BY '<password>';

Pengguna memerlukan hak istimewa REPLICATION CLIENT dan REPLICATION SLAVE. Berikan hak istimewa ini kepada pengguna.

Jika Anda perlu menggunakan replikasi terenkripsi, diperlukan koneksi SSL untuk pengguna replikasi. Misalnya, Anda dapat menggunakan salah satu dari pernyataan berikut untuk mensyaratkan koneksi SSL pada akun pengguna repl_user.

GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'<domain_name>';
GRANT USAGE ON *.* TO 'repl_user'@'<domain_name>' REQUIRE SSL;

Jika REQUIRE SSL tidak disertakan, koneksi replikasi dapat kembali ke koneksi yang tidak terenkripsi secara diam-diam.

6. Aktifkan replikasi pada target replika Anda

Sebelum Anda mengaktifkan replikasi, kami menyarankan agar Anda mengambil sebuah snapshot manual dari klaster DB Aurora MySQL atau target replika instans DB RDS for MySQL. Jika masalah muncul dan Anda harus membangun ulang replikasi dengan klaster DB atau target replika instans DB, Anda dapat memulihkan klaster DB atau instans DB dari snapshot ini daripada harus mengimpor data ke dalam target replika Anda lagi.

Gunakan petunjuk berikut untuk mengaktifkan replikasi untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora MySQL

Untuk mengaktifkan replikasi dari klaster DB Aurora MySQL

  1. Jika target replika klaster DB Anda diciptakan dari sebuah snapshot klaster DB, maka hubungkan ke target replika klaster DB dan terbitkan perintah SHOW MASTER STATUS. Ambil nama file log biner saat ini dari bidang File dan posisi file log dari bidang Position.

    Jika target replika klaster DB Anda diciptakan dari sebuah snapshot DB, maka Anda memerlukan file binlog dan posisi binlog yang merupakan tempat awal untuk replikasi. Anda mengambil nilai-nilai ini dariSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah saat Anda menciptakan snapshot dari sumber replikasi Anda.

  2. Connect ke klaster DB dan masalahmysql_rds_set_external_master(Aurora MySQL versi 1 dan 2)mysql_rds_set_external_source(Aurora MySQL versi 3 dan lebih tinggi) danmysql_rds_start_replicationprosedur untuk memulai replikasi dengan sumber replikasi Anda menggunakan nama dan lokasi file log biner dari langkah sebelumnya. Berikut adalah contohnya.

    
    For Aurora MySQL version 1 and 2:
    CALL mysql.rds_set_external_master ('mydbinstance.123456789012.us-east-1.rds.amazonaws.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
    For Aurora MySQL version 3 and higher:
    CALL mysql.rds_set_external_source ('mydbinstance.123456789012.us-east-1.rds.amazonaws.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
    For all versions:
    CALL mysql.rds_start_replication;
    

Untuk menggunakan enkripsi SSL, tetapkan nilai akhir ke1sebagai gantinya0.

RDS for MySQL

Untuk mengaktifkan replikasi dari instans DB Amazon RDS

  1. Jika target replika instans DB Anda diciptakan dari sebuah snapshot DB, maka Anda memerlukan file binlog dan posisi binlog yang merupakan tempat awal untuk replikasi. Anda mengambil nilai-nilai ini dariSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah saat Anda menciptakan snapshot dari sumber replikasi Anda.

  2. Hubungkan ke instans DB dan terbitkan prosedur mysql_rds_set_external_master dan mysql_rds_start_replication untuk memulai replikasi dengan sumber replikasi Anda menggunakan nama dan lokasi file log biner dari langkah sebelumnya. Berikut adalah contohnya.

    
    For Aurora MySQL version 1 and 2:
    CALL mysql.rds_set_external_master ('mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
    For Aurora MySQL version 3 and higher:
    CALL mysql.rds_set_external_source ('mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
    For all versions:
    CALL mysql.rds_start_replication;
    

Untuk menggunakan enkripsi SSL, tetapkan nilai akhir ke1sebagai gantinya0.

MySQL (eksternal)

Untuk mengaktifkan replikasi dari sebuah database MySQL eksternal

  1. Ambil file binlog dan posisi binlog yang merupakan tempat awal untuk replikasi. Anda mengambil nilai-nilai ini dariSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah saat Anda menciptakan snapshot dari sumber replikasi Anda. Jika target replika MySQL eksternal Anda diisi dari output dari perintah mysqldump dengan opsi --master-data=2, file binlog dan posisi binlog akan disertakan dalam output tersebut. Berikut adalah contohnya.

    --
    -- Position to start replication or point-in-time recovery from
    --
    
    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
    
  2. Connect ke target replika MySQL eksternal, dan terbitkanCHANGE MASTER TOdanSTART SLAVE(Aurora MySQL versi 1 dan 2)START REPLICA(Aurora MySQL versi 3) untuk memulai replikasi dengan sumber replikasi Anda menggunakan nama dan lokasi file log biner dari langkah sebelumnya, misalnya:

    CHANGE MASTER TO
      MASTER_HOST = 'mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com',
      MASTER_PORT = 3306,
      MASTER_USER = 'repl_user',
      MASTER_PASSWORD = '<password>',
      MASTER_LOG_FILE = 'mysql-bin-changelog.000031',
      MASTER_LOG_POS = 107;
    -- And one of these statements depending on your engine version:
    START SLAVE; -- Aurora MySQL version 1 and 2
    START REPLICA; -- Aurora MySQL version 3
    

Jika replikasi gagal, itu dapat mengakibatkan peningkatan besar dalam I/O yang tidak disengaja pada replika, yang dapat menurunkan kinerja. Jika replikasi gagal atau tidak lagi diperlukan, Anda dapat menjalankanmysql.rds_reset_external_masterdisimpan prosedur untuk menghapus konfigurasi replikasi.

7. Monitor replika Anda

Saat Anda mengatur replikasi MySQL dengan sebuah klaster DB Aurora MySQL, Anda harus memantau peristiwa failover pada klaster DB Aurora MySQL saat klaster DB merupakan target replika. Jika terjadi failover, maka klaster DB yang merupakan target replika Anda dapat diciptakan ulang pada sebuah host baru dengan sebuah alamat jaringan yang berbeda. Untuk informasi tentang cara pemonitoran peristiwa failover, lihat Bekerja dengan pemberitahuan kejadian Amazon RDS.

Anda juga dapat memonitor seberapa jauh target replika tertinggal di belakang sumber replikasi dengan terhubung ke target replika dan menjalankanSHOW SLAVE STATUS(Aurora MySQL versi 1 dan 2)SHOW REPLICA STATUS(Aurora MySQL versi 3) perintah. Dalam output perintah, bidang Seconds Behind Master akan memberi tahu Anda seberapa jauh target replika tertinggal di belakang sumber.

Penghentian replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya

Untuk menghentikan replikasi binlog dengan sebuah instans DB MySQL, database MySQL eksternal, atau klaster DB Aurora lainnya, ikuti langkah-langkah ini, yang dibahas secara terperinci dalam topik ini.

1. Hentikan replikasi log biner pada target replika

2. Matikan log biner pada sumber replikasi

1. Hentikan replikasi log biner pada target replika

Temukan petunjuk tentang cara menghentikan replikasi log biner untuk mesin database Anda.

Mesin basis data Petunjuk

Aurora

Untuk menghentikan replikasi log biner pada target replika klaster DB Aurora MySQL

Hubungkan ke klaster DB Aurora yang merupakan target replika, dan perintahkan prosedur mysql_rds_stop_replication.

RDS for MySQL

Untuk menghentikan replikasi log biner pada sebuah instans DB Amazon RDS

Hubungkan ke instans DB RDS yang merupakan target replika dan perintahkan prosedur mysql_rds_stop_replication. Prosedur mysql.rds_stop_replication hanya tersedia untuk MySQL versi 5.5 dan yang lebih baru, 5.6 dan yang lebih baru, serta 5.7 dan yang lebih baru.

MySQL (eksternal)

Untuk menghentikan replikasi log biner pada database MySQL eksternal

Hubungkan ke database MySQL dan perintahkan perintah STOP REPLICATION.

2. Matikan log biner pada sumber replikasi

Temukan petunjuk tentang cara menonaktifkan log biner pada sumber replikasi untuk mesin basis data Anda.

Mesin basis data Petunjuk

Aurora

Untuk menonaktifkan log biner pada sebuah klaster DB Amazon Aurora

  1. Hubungkan ke klaster DB Aurora yang merupakan sumber replikasi, dan atur kerangka waktu retensi log biner ke 0. Untuk mengatur kerangka waktu retensi log biner, gunakan prosedur mysql_rds_set_configuration dan tentukan parameter konfigurasi dari 'binlog retention hours' bersama dengan jumlah jam untuk mempertahankan file binlog pada klaster DB, dalam kasus ini 0, seperti yang ditunjukkan dalam contoh berikut.

    CALL mysql.rds_set_configuration('binlog retention hours', 0);
  2. Atur parameter binlog_format ke OFF pada sumber replikasi. Parameter binlog_format adalah parameter tingkat klaster yang berada dalam grup parameter klaster default.

    Setelah Anda mengubah nilai parameter binlog_format, reboot klaster DB Anda agar perubahan dapat diterapkan.

    Untuk informasi lebih lanjut, lihat Parameter klaster DB dan instans DB Amazon Aurora dan Memodifikasi parameter dalam grup parameter DB.

RDS for MySQL

Untuk menonaktifkan log biner pada sebuah instans DB Amazon RDS

Anda tidak dapat menonaktifkan log biner secara langsung pada sebuah instans DB Amazon RDS, tetapi Anda dapat menonaktifkannya dengan melakukan hal berikut ini:

  1. Matikan backup otomatis untuk instans DB. Anda dapat menonaktifkan backup otomatis dengan memodifikasi instans DB yang sudah ada dan mengaturPeriode Retensi Cadanganke 0. Untuk informasi selengkapnya, lihat Pemodifikasian sebuah instans DB Amazon RDS dan Cara menggunakan backup dalam Panduan Pengguna Amazon Relational Database Service.

  2. Hapus semua replika baca untuk instans DB. Untuk informasi selengkapnya, lihat Cara menggunakan replika baca dari instans DB MariaDB, MySQL, dan PostgreSQL dalam Panduan Pengguna Amazon Relational Database Service.

MySQL (eksternal)

Untuk menonaktifkan log biner pada sebuah database MySQL eksternal

Hubungkan ke database MySQL dan perintahkan perintah STOP REPLICATION.

  1. Dari sebuah shell perintah, hentikan layanan mysqld,

    sudo service mysqld stop
  2. Edit file my.cnf (file ini biasanya ada di bawah /etc).

    sudo vi /etc/my.cnf

    Hapus opsi log_bin dan server_id dari bagian [mysqld].

    Untuk informasi selengkapnya, lihat Setting the replication source configuration di dokumentasi MySQL.

  3. Mulai layanan mysql.

    sudo service mysqld start

Penggunaan Amazon Aurora untuk mengukur pembacaan database MySQL Anda

Anda dapat menggunakan Amazon Aurora dengan instans DB MySQL Anda untuk memanfaatkan kemampuan penskalaan baca Amazon Aurora dan memperluas beban kerja baca untuk instans DB MySQL Anda. Untuk menggunakan Aurora untuk menskala baca instans DB MySQL Anda, buat klaster DB Amazon Aurora MySQL dan buat menjadi replika baca dari instans DB MySQL Anda. Ini berlaku untuk satu instans DB RDS for MySQL, atau sebuah database MySQL yang dijalankan secara eksternal pada Amazon RDS.

Untuk informasi tentang penciptaan sebuah klaster DB Amazon Aurora, lihat Membuat klaster Amazon Aurora DB.

Saat Anda mengatur replikasi antara instans DB MySQL dan klaster DB Amazon Aurora Anda, pastikan untuk mengikuti panduan ini:

  • Gunakan alamat titik akhir klaster DB Amazon Aurora saat Anda merujuk pada klaster DB Amazon Aurora MySQL Anda. Jika terjadi failover, maka Aurora Replica yang dipromosikan ke instans primer untuk klaster DB Aurora MySQL akan terus menggunakan alamat titik akhir klaster DB.

  • Pertahankan binlog pada instans penulis Anda hingga Anda memverifikasi bahwa mereka telah diterapkan ke Aurora Replica. Pemeliharaan ini untuk memastikan agar Anda dapat memulihkan instans penulis Anda meski terjadi kegagalan.

Izin yang dibutuhkan untuk memulai replikasi pada sebuah klaster DB Amazon Aurora MySQL bersifat terbatas dan tidak tersedia pada pengguna utama Amazon RDS Anda. Karena itu, Anda harus menggunakan prosedur mysql_rds_set_external_master dan mysql_rds_start_replication Amazon RDS untuk mengatur replikasi antara klaster DB Amazon Aurora MySQL dan instans DB MySQL Anda.

Pemulaian replikasi antara instans sumber eksternal dan instans DB MySQL pada Amazon RDS

  1. Buat instans DB MySQL sumber menjadi baca saja:

    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> SET GLOBAL read_only = ON;
    
  2. Jalankan perintah SHOW MASTER STATUS pada instans DB MySQL sumber untuk menentukan lokasi binlog. Anda akan menerima output yang serupa dengan contoh berikut:

    File                        Position
    ------------------------------------
     mysql-bin-changelog.000031      107
    ------------------------------------
    
  3. Salin database dari instans DB MySQL eksternal ke klaster DB Amazon Aurora MySQL eksternal menggunakan mysqldump. Untuk database yang sangat besar, Anda mungkin ingin menggunakan prosedur di Mengimpor data ke instans DB MySQL atau MariaDB dengan waktu henti yang berkurang di Panduan Pengguna Amazon Relational Database Service.

    Untuk Linux, macOS, atau Unix:

    mysqldump \
        --databases <database_name> \
        --single-transaction \
        --compress \
        --order-by-primary \
        -u <local_user> \
        -p <local_password> | mysql \
            --host aurora_cluster_endpoint_address \
            --port 3306 \
            -u <RDS_user_name> \
            -p <RDS_password> 

    Untuk Windows:

    mysqldump ^
        --databases <database_name> ^
        --single-transaction ^
        --compress ^
        --order-by-primary ^
        -u <local_user> ^
        -p <local_password> | mysql ^
            --host aurora_cluster_endpoint_address ^
            --port 3306 ^
            -u <RDS_user_name> ^
            -p <RDS_password>

    Pastikan tidak ada spasi antara opsi -p dan kata sandi yang dimasukkan.

    Gunakan opsi --host, --user (-u), --port dan -p dalam perintah mysql untuk menentukan nama host, nama pengguna, port, dan kata sandi untuk terhubung ke klaster DB Aurora Anda. Nama host adalah nama DNS dari titik akhir klaster DB Amazon Aurora, sebagai contoh, mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com. Anda dapat menemukan nilai titik akhir dalam detail klaster di Amazon RDS Management Console.

  4. Buat instans DB MySQL sumber menjadi dapat ditulis lagi:

    mysql> SET GLOBAL read_only = OFF;
    mysql> UNLOCK TABLES;
    

    Untuk informasi lebih lanjut tentang cara membuat backup untuk digunakan dengan replikasi, lihat Backing up a source or replica by making it read only di dokumentasi MySQL.

  5. Dalam Amazon RDS Management Console, tambahkan alamat IP peladen yang menjadi host database MySQL sumber ke grup keamanan VPC untuk klaster DB Amazon Aurora. Untuk informasi selengkapnya tentang memodifikasi grup kerahasiaan VPC, lihat Grup keamanan untuk VPC Anda dalam Panduan Pengguna Amazon Virtual Private Cloud.

    Mungkin Anda juga harus mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP klaster DB Amazon Aurora Anda, agar dapat berkomunikasi dengan instans MySQL sumber Anda. Untuk menemukan alamat IP klaster DB Amazon Aurora, gunakan perintah host.

    host <aurora_endpoint_address>

    Nama host adalah nama DNS dari titik akhir klaster DB Amazon Aurora.

  6. Dengan menggunakan klien pilihan Anda, hubungkan ke instans MySQL eksternal dan buat akun pengguna MySQL yang akan digunakan untuk replikasi. Akun ini digunakan semata-mata untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Berikut adalah contoh.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '<password>';
  7. Untuk instans MySQL eksternal, berikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE kepada pengguna replikasi Anda. Misalnya, untuk memberikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE pada semua database untuk pengguna 'repl_user' bagi domain Anda, jalankan perintah berikut.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com'
        IDENTIFIED BY '<password>'; 
  8. Ambil sebuah snapshot manual dari klaster DB Aurora MySQL untuk dijadikan sebagai replika baca sebelum mengatur replikasi. Jika Anda harus membangun ulang replikasi dengan sebuah klaster DB sebagai replika baca, Anda dapat memulihkan klaster DB Aurora MySQL dari snapshot ini daripada harus mengimpor data dari instans DB MySQL ke dalam sebuah klaster DB Aurora MySQL baru.

  9. Jadikan klaster DB Amazon Aurora sebagai replika. Hubungkan ke klaster DB Amazon Aurora sebagai pengguna master dan identifikasi database MySQL sumber sebagai master replikasi dengan menggunakan prosedur mysql_rds_set_external_master. Gunakan nama file log master dan posisi log master yang Anda tentukan pada Langkah 2. Berikut adalah contoh.

    For Aurora MySQL version 1 and 2:
    CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
    For Aurora MySQL version 3 and higher:
    CALL mysql.rds_set_external_source ('mymasterserver.mydomain.com', 3306,
        'repl_user', '<password>', 'mysql-bin-changelog.000031', 107, 0);
    
  10. Pada klaster DB Amazon Aurora, terbitkan prosedur mysql_rds_start_replication untuk memulai replikasi.

    CALL mysql.rds_start_replication; 

Setelah Anda membangun replikasi antara instans DB MySQL sumber dan klaster DB Amazon Aurora, Anda dapat menambahkan Aurora Replica ke klaster DB Amazon Aurora Anda. Kemudian Anda dapat terhubung ke Aurora Replica untuk menskalakan baca data Anda. Untuk informasi tentang penciptaan sebuah Aurora Replica, lihat Menambahkan Aurora Replica ke klaster DB.

Mengoptimalkan replikasi log biner

Berikut, Anda dapat belajar bagaimana mengoptimalkan kinerja replikasi log biner dan memecahkan masalah terkait di Aurora MySQL.

Diskusi ini menganggap bahwa Anda sudah familiar dengan mekanisme replikasi log biner MySQL dan cara kerjanya. Untuk informasi latar belakang, lihat Implementasi replikasi dalam dokumentasi MySQL.

Replikasi log biner multiutas (Aurora MySQL versi 3 dan lebih tinggi)

Dengan replikasi log biner multithreaded, thread SQL membaca peristiwa dari log relai dan mengantrekannya untuk thread pekerja SQL untuk diterapkan. Thread SQL pekerja dikelola oleh thread koordinator. Peristiwa log biner diterapkan secara parallel bila memungkinkan.

Ketika instance Aurora MySQL dikonfigurasi untuk menggunakan replikasi log biner, secara default instance replika menggunakan replikasi single-threaded. Untuk mengaktifkan replikasi multithreaded, Anda memperbaruireplica_parallel_workersparameter ke nilai yang lebih besar dari nol dalam grup parameter kustom Anda.

Opsi konfigurasi berikut dapat membantu Anda menyesuaikan replikasi multiutas. Untuk informasi penggunaan, lihatReplikasi dan Opsi Logging Biner dan Variabeldi dalamMySQL.

Konfigurasi optimal tergantung pada beberapa faktor. Misalnya, kinerja untuk replikasi log biner dipengaruhi oleh karakteristik beban kerja database Anda dan kelas instans DB yang sedang dijalankan replika. Oleh karena itu, kami menyarankan Anda menguji secara menyeluruh semua perubahan pada parameter konfigurasi ini sebelum menerapkan pengaturan parameter baru ke instans produksi.

  • replica_parallel_workers

  • replica_parallel_type

  • replica_preserve_commit_order

  • binlog_transaction_dependency_tracking

  • binlog_transaction_dependency_history_size

  • binlog_group_commit_sync_delay

  • binlog_group_commit_sync_no_delay_count

Mengoptimalkan replikasi binlog (Aurora MySQL 2.10 dan lebih tinggi)

Dalam Aurora MySQL 2.10 dan lebih tinggi, Aurora secara otomatis menerapkan optimasi dikenal sebagai binlog I/O cache ke replikasi log biner. Dengan membuat cache peristiwa binlog yang paling baru dilakukan, pengoptimalan ini dirancang untuk meningkatkan kinerja utas sampah binlog sambil membatasi dampak pada transaksi latar depan pada instance sumber binlog.

Memori yang digunakan untuk fitur ini tidak bergantung pada pengaturan binlog_cache MySQL.

Fitur ini tidak berlaku untuk instans Aurora DB yang menggunakan kelas instans db.t2 dan db.t3.

Anda tidak perlu menyesuaikan parameter konfigurasi apa pun untuk mengaktifkan pengoptimalan ini. Secara khusus, jika Anda menyesuaikan parameter konfigurasi aurora_binlog_replication_max_yield_seconds ke nilai non-nol di versi Aurora MySQL sebelumnya, atur kembali ke nol untuk Aurora MySQL 2.10 dan lebih tinggi.

Variabel status aurora_binlog_io_cache_reads dan aurora_binlog_io_cache_read_requests tersedia di Aurora MySQL 2.10 dan lebih tinggi. Variabel status ini membantu Anda untuk memantau seberapa sering data dibaca dari cache binlog I/O.

  • aurora_binlog_io_cache_read_requestsmenunjukkan jumlah permintaan baca I/O binlog dari cache.

  • aurora_binlog_io_cache_readsmenunjukkan jumlah pembacaan I/O binlog yang mengambil informasi dari cache.

Kueri SQL berikut menghitung persentase binlog membaca permintaan yang mengambil keuntungan dari informasi cache. Dalam hal ini, makin dekat rasionya hingga 100, makin baik.

mysql> SELECT
  (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS
    WHERE VARIABLE_NAME='aurora_binlog_io_cache_reads')
  / (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS
    WHERE VARIABLE_NAME='aurora_binlog_io_cache_read_requests')
  * 100
  as binlog_io_cache_hit_ratio;
+---------------------------+
| binlog_io_cache_hit_ratio |
+---------------------------+
|         99.99847949080622 |
+---------------------------+

Fitur cache I/O binlog juga menyertakan metrik baru yang terkait dengan utas dump binlog. Utas dumpadalah utas yang dibuat saat replika binlog baru terhubung ke instans sumber binlog.

Metrik utas dump dicetak ke log database setiap 60 detik dengan awalan [Dump thread metrics]. Metrik mencakup informasi untuk setiap replika binlog seperti Secondary_id, Secondary_uuid, nama file binlog, dan posisi yang dibaca setiap replika. Metrik juga mencakup Bytes_behind_primary mewakili jarak dalam byte antara sumber replikasi dan replika. Metrik ini mengukur lag utas I/O replika. Angka tersebut berbeda dengan lag dari replika SQL applier thread, yang diwakili oleh metrik seconds_behind_master pada replika binlog. Anda dapat menentukan apakah replika binlog mengejar sumber atau tertinggal dengan memeriksa apakah jaraknya berkurang atau bertambah.

Mengoptimalkan replikasi binlog (Aurora MySQL 2.04.5 hingga 2.09)

Untuk mengoptimalkan replikasi log biner untuk Aurora MySQL, Anda menyesuaikan parameter pengoptimalan tingkat klaster berikut. Parameter ini membantu Anda menentukan keseimbangan yang tepat antara latensi pada instans sumber binlog dan jeda replikasi.

  • aurora_binlog_use_large_read_buffer

  • aurora_binlog_read_buffer_size

  • aurora_binlog_replication_max_yield_seconds

Untuk klaster yang kompatibel dengan MySQL 5.7, Anda dapat menggunakan parameter ini di Aurora MySQL versi 2.04.5 hingga 2.09.*. Dalam Aurora MySQL 2.10.0 dan lebih tinggi, parameter ini digantikan oleh optimasi cache I/O binlog dan Anda tidak perlu menggunakannya.

Untuk klaster yang kompatibel dengan MySQL 5.6, Anda dapat menggunakan parameter ini di Aurora MySQL versi 1.17.6 dan terbaru.

Topik

  • Ikhtisar buffer baca besar dan pengoptimalan hasil maks
  • Parameter terkait
  • Mengaktifkan mekanisme hasil maksimal untuk replikasi log biner
  • Menonaktifkan optimasi hasil maksimal replikasi log biner
  • Menonaktifkan buffer baca besar

Ikhtisar buffer baca besar dan pengoptimalan hasil maks

Anda mungkin mengalami penurunan kinerja replikasi log biner saat utas dump log biner mengakses volume klaster Aurora saat klaster memproses sejumlah besar transaksi. Anda bisa menggunakan parameternya aurora_binlog_use_large_read_buffer, aurora_binlog_replication_max_yield_seconds, dan aurora_binlog_read_buffer_size untuk membantu meminimalkan jenis pertentangan ini.

Misalkan Anda memiliki situasi di manaaurora_binlog_replication_max_yield_secondsdiatur ke lebih besar dari 0 dan file binlog saat ini dari thread dump aktif. Dalam hal ini, utas dump log biner menunggu hingga beberapa detik untuk file binlog saat ini diisi oleh transaksi. Periode tunggu ini menghindari pertentangan yang dapat timbul dari mereplikasi setiap binlog peristiwa secara individual. Namun, melakukannya meningkatkan lag replika untuk replika log biner. Replika tersebut dapat jatuh di belakang sumber dengan jumlah detik yang sama sebagai pengaturan aurora_binlog_replication_max_yield_seconds.

File binlog saat ini berarti file binlog yang sedang dibaca oleh utas dump untuk melakukan replikasi. Kami menganggap bahwa file binlog aktif ketika file binlog memperbarui atau terbuka untuk diperbarui oleh transaksi masuk. Setelah Aurora MySQL mengisi file binlog aktif, MySQL menciptakan dan beralih ke file binlog baru. File binlog lama menjadi tidak aktif. Hal ini tidak diperbarui oleh transaksi masuk lagi.

Sebelum menyesuaikan parameter ini, ukur latensi dan throughput transaksi Anda dari waktu ke waktu. Anda mungkin menemukan bahwa kinerja replikasi log biner stabil dan memiliki latensi rendah bahkan jika ada pertentangan sesekali.

aurora_binlog_use_large_read_buffer

Jika parameter ini diatur ke 1, Aurora MySQL mengoptimalkan replikasi log biner berdasarkan pengaturan parameter aurora_binlog_read_buffer_size dan aurora_binlog_replication_max_yield_seconds. Jika aurora_binlog_use_large_read_buffer adalah 0, Aurora MySQL mengabaikan nilai-nilai parameter aurora_binlog_read_buffer_size dan aurora_binlog_replication_max_yield_seconds.

aurora_binlog_read_buffer_size

Utas dump log biner dengan buffer baca yang lebih besar meminimalkan jumlah operasi I/O baca dengan membaca lebih banyak peristiwa untuk setiap I/O. Parameter aurora_binlog_read_buffer_size mengatur ukuran buffer baca. Buffer baca yang besar dapat mengurangi pertentangan log biner untuk beban kerja yang menghasilkan data binlog dalam jumlah besar.

Parameter ini hanya berpengaruh ketika klaster juga memiliki pengaturan aurora_binlog_use_large_read_buffer=1.

Meningkatkan ukuran buffer baca tidak memengaruhi kinerja replikasi log biner. Utas dump log biner tidak menunggu pembaruan transaksi untuk mengisi buffer baca.

aurora_binlog_replication_max_yield_seconds

Jika beban kerja Anda memerlukan latensi transaksi yang rendah, dan Anda dapat mentolerir beberapa jeda replikasi, Anda dapat meningkatkan parameter aurora_binlog_replication_max_yield_seconds. Parameter ini mengontrol properti hasil maksimum dari replikasi log biner di klaster Anda.

Parameter ini hanya berpengaruh ketika klaster juga memiliki pengaturan aurora_binlog_use_large_read_buffer=1.

Aurora MySQL mengenali perubahan apa pun pada nilai parameter aurora_binlog_replication_max_yield_seconds segera. Anda tidak perlu memulai ulang instans DB. Namun, saat Anda mengaktifkan pengaturan ini, utas dump hanya mulai menghasilkan saat file binlog saat ini mencapai ukuran maksimum 128 MB dan diputar ke file baru.

Parameter terkait

Gunakan parameter klaster DB berikut untuk mengaktifkan optimasi binlog.

Parameter pengoptimalan binlog untuk Aurora MySQL versi 2.04.5 dan yang lebih baru

Parameter Default Nilai Valid Deskripsi
aurora_binlog_use_large_read_buffer 1 0, 1 Beralih untuk mengaktifkan fitur peningkatan replikasi. Ketika 1, utas dump log biner menggunakan aurora_binlog_read_buffer_size untuk replikasi log biner; jika tidak, ukuran buffer default (8K) digunakan.
aurora_binlog_read_buffer_size 5242880 8192-536870912 Baca ukuran buffer yang digunakan oleh utas dump log biner saat parameter aurora_binlog_use_large_read_buffer disetel ke 1.
aurora_binlog_replication_max_yield_seconds 0 0-36000 Untuk Aurora MySQL versi 2.04.5-2.04.8 dan 2.05—2.08.*, nilai maksimum yang diterima adalah 45. Anda dapat menyetelnya ke nilai yang lebih tinggi pada 2.04.9 dan versi 2.04.* yang lebih baru, dan pada versi 2.09 dan yang lebih baru. Parameter ini hanya berfungsi jika parameter aurora_binlog_use_large_read_buffer diatur menjadi 1.

Parameter pengoptimalan binlog untuk Aurora MySQL versi 1.17.6 dan yang lebih baru

Parameter Default Nilai Valid Deskripsi
aurora_binlog_use_large_read_buffer 0 0, 1 Beralih untuk mengaktifkan fitur peningkatan replikasi. Ketika 1, utas dump log biner menggunakan aurora_binlog_read_buffer_size untuk replikasi log biner. Jika tidak, ukuran buffer default (8 KB) digunakan.
aurora_binlog_read_buffer_size 5242880 8192-536870912 Baca ukuran buffer yang digunakan oleh utas dump log biner saat parameter aurora_binlog_use_large_read_buffer disetel ke 1.
aurora_binlog_replication_max_yield_seconds 0 0-36000 Detik maksimum untuk menghasilkan ketika utas dump log biner mereplikasi file binlog saat ini (file yang digunakan oleh kueri latar depan) ke replika. Parameter ini hanya berfungsi jika parameter aurora_binlog_use_large_read_buffer diatur menjadi 1.

Mengaktifkan mekanisme hasil maksimal untuk replikasi log biner

Anda dapat mengaktifkan optimasi hasil maksimal replikasi log biner sebagai berikut. Melakukannya meminimalkan latensi untuk transaksi pada instance sumber binlog. Namun, Anda mungkin mengalami jeda replikasi yang lebih tinggi.

Untuk mengaktifkan pengoptimalan binlog hasil maksimal untuk klaster MySQL Aurora

  1. Ciptakan atau edit sebuah grup parameter klaster DB menggunakan pengaturan parameter berikut:

    • aurora_binlog_use_large_read_buffer: aktifkan dengan nilai ON atau 1.

    • aurora_binlog_replication_max_yield_seconds: tentukan nilai lebih besar dari 0.

  2. Kaitkan grup parameter cluster DB dengan cluster Aurora MySQL yang berfungsi sebagai sumber binlog. Untuk melakukannya, ikuti prosedurnya di Bekerja dengan grup parameter.

  3. Konfirmasikan bahwa perubahan parameter berlaku. Untuk melakukannya, jalankan kueri berikut pada instans sumber binlog berikut.

    SELECT @@aurora_binlog_use_large_read_buffer, @@aurora_binlog_replication_max_yield_seconds;

    Output Anda harus serupa dengan berikut ini.

    +---------------------------------------+-----------------------------------------------+
    | @@aurora_binlog_use_large_read_buffer | @@aurora_binlog_replication_max_yield_seconds |
    +---------------------------------------+-----------------------------------------------+
    |                                     1 |                                            45 |
    +---------------------------------------+-----------------------------------------------+
    

Menonaktifkan optimasi hasil maksimal replikasi log biner

Anda dapat menonaktifkan optimasi hasil maksimal replikasi log biner sebagai berikut. Melakukannya meminimalkan jeda replikasi. Namun, Anda mungkin mengalami latensi yang lebih tinggi untuk transaksi pada instans sumber binlog.

Untuk menonaktifkan pengoptimalan binlog hasil maksimal untuk klaster Aurora MySQL

  1. Pastikan grup parameter klaster DB yang terkait dengan klaster Aurora MySQL memiliki aurora_binlog_replication_max_yield_seconds yang diatur ke 0. Untuk informasi selengkapnya tentang cara mengatur parameter konfigurasi menggunakan grup parameter, lihat Bekerja dengan grup parameter.

  2. Konfirmasikan bahwa perubahan parameter berlaku. Untuk melakukannya, jalankan kueri berikut pada instans sumber binlog berikut.

    SELECT @@aurora_binlog_replication_max_yield_seconds;

    Output Anda harus serupa dengan berikut ini.

    +-----------------------------------------------+
    | @@aurora_binlog_replication_max_yield_seconds |
    +-----------------------------------------------+
    |                                             0 |
    +-----------------------------------------------+
    

Menonaktifkan buffer baca besar

Anda dapat menonaktifkan seluruh fitur buffer baca besar sebagai berikut.

Untuk menonaktifkan buffer baca log biner besar untuk klaster Aurora MySQL

  1. Atur ulang aurora_binlog_use_large_read_buffer ke OFF atau 0.

    Pastikan grup parameter klaster DB yang terkait dengan klaster Aurora MySQL memiliki aurora_binlog_use_large_read_buffer yang diatur ke 0. Untuk informasi selengkapnya tentang cara mengatur parameter konfigurasi menggunakan grup parameter, lihat Bekerja dengan grup parameter.

  2. Pada instans sumber binlog, jalankan kueri berikut.

    SELECT @@ aurora_binlog_use_large_read_buffer;

    Output Anda harus serupa dengan berikut ini.

    +---------------------------------------+
    | @@aurora_binlog_use_large_read_buffer |
    +---------------------------------------+
    |                                     0 |
    +---------------------------------------+
    

Menyinkronkan kata sandi antara sumber replikasi dan target

Ketika Anda mengubah akun pengguna dan kata sandi pada sumber replikasi menggunakan pernyataan SQL, perubahan tersebut direplikasi ke target replikasi secara otomatis.

Jika Anda menggunakanAWS Management Console, yangAWS CLI, atau API RDS untuk mengubah kata sandi utama pada sumber replikasi, perubahan tersebut tidak secara otomatis direplikasi ke target replikasi. Jika Anda ingin menyinkronkan master user dan master password antara sumber dan sistem target, Anda harus membuat perubahan yang sama pada target replikasi sendiri.