Cara menggunakan replikasi grup mysql

Dengan melakukan replikasi MySQL, kita dapat menyalin isi database dari satu server MySQL ke satu atau beberapa server MySQL lainnya

Tujuan replikasi MySQL antara lain

  1. Istirahat pekerjaan antara beberapa server MySQL
    Server MySQL utama menjalankan proses bisnis, server MySQL yang direplikasi menjalankan analisis data. Dengan cara ini, saat replikasi MySQL melakukan analisis data yang dapat menguras memori dan proses tersebut tidak akan mempengaruhi proses bisnis yang sedang dijalankan.
  2. Pencadangan waktu nyata
    Hasil Replikasi MySQL dapat di backup secara realtime. Namun, kita tetap harus melakukan backup berkala

Prinsip proses replikasi MySQL adalah

  1. Basis data utama yang merupakan basis data master akan menulis jurnal pembaruannya di log
  2. Database slave akan melihat log yang dihasilkan oleh database master, membandingkan posisi update, kemudian melakukan update sesuai perbedaan posisi update

Proses replikasi MySQL antara database master dan slave dapat dilakukan dengan jarak yang jauh, sehingga dapat menjadi sarana online realtime remote backup.

Untuk pengaturan replikasi MySQL, silahkan baca artikel http. // www. proweb. bersama. id/artikel/dukungan/pengaturan_mysql_replikasi. html

Untuk mempelajari lebih lanjut tentang replikasi MySQL, silakan kunjungi http. //dev. mysql. com/doc/refman/5. 0/id/replikasi. html

Terjemahan disediakan oleh mesin penerjemah. Jika konten yang diterjemahkan bertentangan dengan versi bahasa Inggris asli, versi bahasa Inggris yang akan berlaku

Di bagian ini, Anda dapat menemukan informasi khusus tentang penggunaan replika baca di Amazon RDS for MariaDB. Untuk informasi umum tentang replika baca dan petunjuk penggunaannya, lihat Bekerja dengan replika baca

Sebelum instans DB MariaDB dapat berfungsi sebagai sumber replikasi, pastikan untuk mengaktifkan pencadangan otomatis pada instans DB sumber dengan menyetel periode penyimpanan cadangan ke nilai selain 0. Persyaratan ini juga berlaku untuk replika baca yang merupakan instans DB sumber untuk replika baca lainnya

Anda dapat membuat hingga 15 replika baca dari satu instans DB di Wilayah yang sama. Agar replikasi dapat beroperasi secara efektif, setiap replika baca harus memiliki jumlah sumber daya komputasi dan penyimpanan yang sama dengan instans DB sumber. Jika Anda menskalakan instans DB sumber, gunakan juga replika baca

RDS untuk MariaDB mendukung replika baca. Untuk mempelajari cara mengonfigurasi replika baca bertingkat, lihat

Anda dapat menjalankan beberapa tindakan buat dan hapus tindakan pada saat yang sama yang mereferensikan instans DB sumber yang sama. Saat Anda melakukan tindakan ini, tidak boleh ada lebih dari 15 replika baca untuk setiap instance sumber daya

Anda bisa menggunakan filter replikasi untuk menentukan database dan tabel apa yang direplikasi dengan replika baca. Filter replikasi dapat menyertakan database dan tabel ke dalam replikasi atau mengecualikannya dari replikasi

Berikut adalah beberapa kasus penggunaan untuk replikasi filter

  • Untuk mengurangi ukuran replika baca. Dengan filter replikasi, Anda dapat mengecualikan database dan tabel yang tidak diperlukan pada replika baca

  • Untuk mengecualikan database dan tabel dari replika baca untuk alasan keamanan

  • Untuk mereplikasi database dan tabel yang berbeda untuk kasus penggunaan tertentu dalam replika baca yang berbeda. Misalnya, Anda mungkin menggunakan replika baca khusus untuk analitik atau partisi

  • Untuk instans DB yang telah membaca replika di Wilayah AWS yang berbeda, untuk mereplikasi database atau tabel apa pun di Wilayah AWS yang berbeda

Anda juga dapat menggunakan filter replikasi untuk menentukan database dan tabel apa yang direplikasi dengan instans DB MariaDB utama yang dikonfigurasi sebagai replika dalam topologi replikasi masuk. Untuk informasi selengkapnya tentang konfigurasi ini, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal

Untuk mengonfigurasi filter replikasi, tetapkan parameter filter replikasi berikut pada replika baca

  • aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    6 — Mereplikasi perubahan ke database yang ditentukan. Saat Anda menyetel parameter ini untuk replika baca, hanya database yang ditentukan dalam parameter yang direplikasi

  • aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    7 — Jangan mereplikasi perubahan pada database yang ditentukan. Ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _6 disetel untuk replika baca, parameter ini tidak dievaluasi

  • aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _9 — Mereplikasi perubahan pada tabel yang ditentukan. Saat Anda menyetel parameter ini untuk replika baca, hanya tabel yang ditentukan dalam parameter yang direplikasi. Juga, ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    6 atau
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    7 diatur, database yang menyertakan tabel yang ditentukan harus disertakan dalam replikasi dengan replika baca

  • aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    2 — Jangan mereplikasi perubahan pada tabel yang ditentukan. Ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _9 disetel untuk replika baca, parameter ini tidak dievaluasi

  • aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    _4 — Mereplikasi tabel berdasarkan database dan pola nama tabel yang ditentukan. Karakter pengganti
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    5 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    6 didukung. Ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    6 atau
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    7 ditetapkan, pastikan untuk menyertakan database yang menyertakan tabel tertentu dalam replikasi dengan replika baca

  • aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    _9 — Jangan mereplikasi tabel berdasarkan database yang ditentukan dan pola nama tabel. Karakter pengganti
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    5 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    6 didukung. Ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _9 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    4 ditetapkan untuk replika baca, parameter ini tidak dievaluasi

Parameter dievaluasi secara berurutan dalam register. Untuk informasi selengkapnya tentang cara kerja parameter ini, lihat

Secara default, setiap parameter ini memiliki nilai kosong. Pada setiap replika baca, Anda dapat menggunakan parameter ini untuk menyetel, mengubah, dan menghapus filter replikasi. Saat Anda menyetel salah satu parameter ini, pisahkan setiap filter dari yang lain dengan koma

Anda dapat menggunakan karakter wildcard

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
_5 dan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
6 dalam parameter
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
4 dan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
9. Parameter karakter pengganti
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
5 cocok dengan sejumlah karakter apa pun, dan karakter pengganti
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
6 hanya cocok dengan satu karakter

Format logging biner dari instans DB sumber penting untuk replikasi karena menentukan catatan perubahan data. Pengaturan parameter

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
0 menentukan apakah replikasi berbasis baris atau berbasis pernyataan. Untuk informasi lebih lanjut, lihat

Semua pernyataan bahasa definisi data (DDDL) direplikasi sebagai pernyataan, terlepas dari pengaturan

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
0 pada instans DB sumber

Batasan berikut berlaku untuk filter replikasi untuk RDS untuk MariaDB

  • Setiap parameter filter replikasi memiliki batas 2. 000 karakter

  • Koma tidak didukung dalam filter replikasi

  • Opsi MariaDB

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
    2 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
    3 untuk filter log biner tidak didukung

  • Filter replikasi tidak mendukung transaksi XA

    Untuk informasi selengkapnya, lihat Pembatasan Transaksi XA di dokumentasi MySQL

  • Filter replikasi tidak didukung untuk RDS untuk MariaDB versi 10. 2

Untuk mengonfigurasi filter replikasi untuk replika baca, ubah parameter filter replikasi di grup parameter yang terkait dengan replika baca

Anda tidak dapat mengubah grup parameter default. Jika replika baca menggunakan grup parameter default, buat grup parameter baru dan kaitkan dengan replika baca. Untuk informasi selengkapnya tentang grup parameter DB, lihat Bekerja dengan grup parameter

Anda dapat mengonfigurasi parameter dalam grup parameter menggunakan AWS Management Console, AWS CLI, atau RDS API. Untuk informasi tentang pengaturan parameter, lihat. Saat Anda menetapkan parameter dalam grup parameter, semua instans DB yang terkait dengan grup parameter tersebut menggunakan pengaturan parameter. Jika Anda menyetel parameter filter replikasi dalam grup parameter, pastikan grup parameter hanya dikaitkan dengan replika baca. Kosongkan parameter filter replikasi untuk instans DB sumber

Contoh berikut menetapkan parameter menggunakan AWS CLI. Contoh ini menetapkan

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
4 ke
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
5 sehingga perubahan parameter terjadi segera setelah perintah CLI selesai. Jika Anda ingin menerapkan perubahan tertunda setelah replika baca di-boot ulang, setel
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
4 ke
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
7

Contoh berikut mengonfigurasi filter replikasi

contoh Sertakan database dalam replikasi

Contoh berikut mencakup database

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
_8 dan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
9 dalam replikasi. Saat Anda menyetel
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_6 untuk replika baca, hanya database yang ditentukan dalam parameter yang direplikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

contoh Sertakan tabel dalam replikasi

Contoh berikut mencakup tabel

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
_1 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
2 di
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
8 database dalam replikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
_

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"

contoh Sertakan tabel dalam replikasi menggunakan karakter wildcard

Contoh berikut menyertakan tabel dengan nama yang dimulai dengan

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
4 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
5 di database
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
6 dalam replikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"

contoh Melepaskan karakter wildcard dalam nama

Contoh berikut menunjukkan cara menggunakan karakter escape

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
7 untuk escape karakter wildcard yang merupakan bagian dari nama

Misalnya Anda memiliki beberapa nama tabel di database

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
8 yang dimulai dengan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
9, dan Anda ingin menyertakan tabel ini dalam replikasi. Nama tabel menyertakan garis bawah, yang juga merupakan karakter wildcard, jadi contoh ini menghilangkan garis bawah pada nama tabel

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"

contoh Tidak termasuk database dari replikasi

Contoh berikut mengecualikan database

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
_8 dan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
9 dari replikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

contoh Tidak termasuk tabel dari replikasi

Contoh berikut mengecualikan tabel

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
_1 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
2 di
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
8 database dari replikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
0

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_1

contoh Tidak termasuk tabel dari replikasi menggunakan karakter wildcard

Contoh berikut mengecualikan tabel dengan nama yang dimulai dengan

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
4 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
5 di database
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
6 dari replikasi

Untuk Linux, macOS, atau Unix

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_2

Untuk Windows

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_3

Anda dapat melihat filter replikasi untuk replika baca dengan cara berikut

  • Periksa pengaturan parameter filter replikasi di grup parameter yang terkait dengan replika baca

    Untuk instruksi, lihat

  • Di klien MariaDB, sambungkan ke replika baca dan jalankan pernyataan

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    8

    Dalam output, kolom berikut menampilkan filter replikasi untuk replika baca

    • aws rds modify-db-parameter-group \
        --db-parameter-group-name myparametergroup \
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      _9

    • aws rds modify-db-parameter-group ^
        --db-parameter-group-name myparametergroup ^
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      0

    • aws rds modify-db-parameter-group ^
        --db-parameter-group-name myparametergroup ^
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      1

    • aws rds modify-db-parameter-group ^
        --db-parameter-group-name myparametergroup ^
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      2

    • aws rds modify-db-parameter-group ^
        --db-parameter-group-name myparametergroup ^
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      3

    • aws rds modify-db-parameter-group ^
        --db-parameter-group-name myparametergroup ^
        --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
      4

    Untuk informasi lebih lanjut tentang area ini, lihat Memeriksa Status Replikasi di dokumentasi MySQL

    Versi MariaDB sebelumnya menggunakan

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    5 alih-alih
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    8. Jika Anda menggunakan versi MariaDB sebelum 10. 5, gunakan
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    5

Anda dapat menggunakan replikasi yang ditangguhkan sebagai strategi pemulihan bencana. Dengan replikasi tertunda, Anda menentukan jumlah waktu minimum, dalam detik, untuk menunda replikasi dari sumber ke replika baca. Jika terjadi bencana, seperti tabel yang terhapus secara tidak sengaja, Anda menyelesaikan langkah-langkah berikut untuk pulih dari bencana dengan cepat

  • Replikasi yang ditangguhkan didukung untuk MariaDB 10. 6 dan di atas

  • Gunakan prosedur tersimpan untuk mengonfigurasi replikasi yang ditangguhkan. Anda tidak dapat mengonfigurasi replikasi yang ditangguhkan dengan AWS Management Console, AWS CLI, atau Amazon RDS API

  • Anda dapat menggunakan replikasi berdasarkan pengidentifikasi transaksi global (GTID) dalam konfigurasi replikasi yang ditangguhkan

Untuk mengonfigurasi replikasi yang ditangguhkan untuk replika baca mendatang yang dibuat dari instans DB, jalankan prosedur tersimpan mysql. rds_set_configuration dengan parameter

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
8

Untuk mengonfigurasi replikasi yang ditangguhkan selama pembuatan replika baca

  1. Menggunakan klien MariaDB, sambungkan ke instans DB MariaDB untuk menjadi sumber replika baca sebagai pengguna master

  2. Jalankan prosedur tersimpan mysql. rds_set_configuration dengan parameter

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    8

    Misalnya, jalankan prosedur tersimpan berikut ini untuk menentukan bahwa replikasi ditunda setidaknya satu jam (3. 600 detik) untuk replika baca yang dibuat dari instans DB saat ini

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _4

    Setelah menjalankan prosedur tersimpan ini, setiap replika baca yang Anda buat menggunakan AWS CLI atau Amazon RDS API dikonfigurasikan dengan replikasi tertunda selama jumlah detik yang ditentukan

Untuk mengubah replikasi tertunda untuk replika baca yang ada, jalankan prosedur tersimpan mysql. rds_set_source_delay

Untuk mengubah replikasi tertunda untuk replika baca yang sudah ada

  1. Menggunakan klien MariaDB, sambungkan ke replika baca sebagai pengguna utama

  2. Gunakan prosedur tersimpan di mysql. rds_stop_replication untuk menghentikan replikasi

  3. Jalankan prosedur tersimpan di mysql. rds_set_source_delay

    Misalnya, jalankan prosedur tersimpan berikut ini untuk menentukan bahwa replikasi ke replika baca ditunda selama setidaknya satu jam (3600 detik)

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5
  4. Gunakan prosedur tersimpan mysql. rds_start_replication untuk memulai replikasi

Setelah replikasi dihentikan, dalam skenario pemulihan bencana, Anda dapat mempromosikan replika baca ke instans DB sumber baru. Untuk informasi tentang mempromosikan replika baca, lihat

Replika baca dirancang untuk mendukung kueri baca, tetapi Anda mungkin memerlukan pembaruan sesekali. Misalnya, Anda mungkin perlu menambahkan indeks untuk mempercepat jenis kueri tertentu yang mengakses replika. Anda dapat mengaktifkan pembaruan dengan menyetel parameter

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
0 ke 0 di grup parameter DB untuk replika baca

Anda dapat membuat replika baca penerapan instans DB Multi-AZ atau AZ tunggal. Anda menggunakan penerapan Multi-AZ untuk meningkatkan dan ketersediaan data penting, tetapi Anda tidak dapat menggunakan Multi-AZ sekunder untuk melayani kueri hanya-baca. Sebagai gantinya, Anda dapat membuat replika baca dari instans DB Multi-AZ lalu lintas tinggi untuk mengeluarkan kueri hanya baca. Jika instans sumber dari aplikasi Multi-AZ gagal karena replika baca sekunder, setiap replika baca terkait akan secara otomatis menggunakan sumber sekunder (sekarang primer) sebagai sumber replikasinya. Untuk informasi selengkapnya, lihat Penerapan Multi-AZ untuk ketersediaan tinggi

Anda dapat membuat replika baca sebagai instans DB Multi-AZ. Amazon RDS membuat waktu siaga untuk replika Anda di Availability Zone lain guna mendukung failover untuk replika. Membuat replika baca Anda sebagai instans DB Multi-AZ tidak bergantung pada apakah database sumber adalah instans DB Multi-AZ

RDS untuk MariaDB mendukung replika baca. Dengan replika baca berjenjang, Anda dapat menskalakan pembacaan tanpa menambahkan overhead ke sumber daya RDS untuk instans DB MariaDB

Dengan replika baca berjenjang, instans RDS untuk DB MariaDB mengirimkan data ke replika baca pertama dalam rantai. Replika baca itu kemudian mengirimkan data ke replika kedua dalam rantai, dan seterusnya. Hasil akhirnya adalah bahwa semua replika baca dalam rantai memiliki perubahan dari RDS ke instans DB MariaDB, tetapi tanpa overhead hanya pada instans DB sumber

Anda dapat membuat rangkaian hingga tiga replika baca dalam rantai dari sumber untuk instans DB MariaDB. Misalnya, asumsikan Anda memiliki instans MariaDB DB

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
1. Anda dapat melakukan hal berikut

  • Dimulai dengan

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _1, buat replika baca pertama di rantai,
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    3

  • Selanjutnya, dari

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    3, buat replika baca berikutnya di rantai,
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5

  • Terakhir, dari

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5, buat replika baca ketiga dalam rantai,
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    7

Anda tidak dapat membuat replika baca lain di luar replika baca berjenjang ketiga ini dalam undian untuk

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
1. Rantai instans lengkap dari RDS ke instans DB sumber MariaDB hingga akhir rangkaian replika baca kaskade dapat terdiri dari maksimal empat instans DB

Agar replika baca kaskade berfungsi, setiap sumber daya RDS untuk instans DB MariaDB harus mengaktifkan pencadangan otomatis. Untuk mengaktifkan pencadangan otomatis pada replika baca, buat replika baca terlebih dahulu, lalu ubah replika baca untuk mengaktifkan pencadangan otomatis. Untuk informasi lebih lanjut, lihat

Seperti replika baca, Anda dapat mempromosikan replika baca yang merupakan bagian dari kaskade. Mempromosikan replika baca dari dalam rantai replika baca akan menghapus replika tersebut dari rantai. Misalnya, Anda ingin mentransfer sebagian beban kerja dari instans

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
1 DB ke instans baru untuk digunakan oleh departemen akuntansi saja. Dengan asumsi rangkaian tiga replika baca dari contoh, Anda memutuskan untuk mempromosikan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5. Rantai dipengaruhi sebagai berikut

  • Mempromosikan

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _5 menghapusnya dari rantai replikasi

    • Sekarang baca/tulis instance DB lengkap

    • Itu terus direplikasi

      aws rds modify-db-parameter-group \
        --db-parameter-group-name myparametergroup \
        --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
      7, seperti yang terjadi sebelum promosi

  • Anda

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _1 terus meniru ke
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    3

Untuk informasi tentang mempromosikan replika baca, lihat

Untuk replika baca MariaDB, Anda dapat memantau penundaan replikasi di Amazon CloudWatch

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 RDS. Metrik
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 melaporkan nilai dari kolom
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
7 pesanan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
8

Versi MariaDB sebelumnya menggunakan

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
5 alih-alih
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
8. Jika Anda menggunakan versi MariaDB sebelum 10. 5, gunakan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
5

Penyebab umum penundaan replikasi untuk MariaDB adalah sebagai berikut

  • Penghapusan jaringan

  • Menulis ke tabel dengan indeks pada replika baca. Jika parameter

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    _0 tidak disetel ke 0 pada replika baca, ini dapat merusak replikasi

  • Menggunakan mesin penyimpanan nontransaksional seperti MyISAM. Replikasi hanya didukung untuk mesin penyimpanan InnoDB di MariaDB

Saat metrik

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 mencapai 0, replika telah cocok dengan instans DB sumber. Jika metrik
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 mengembalikan -1, maka replikasi saat ini tidak aktif.
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 = -1 setara dengan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
7 =
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
07

Anda dapat menghentikan dan memulai ulang proses replikasi pada instans DB Amazon RDS dengan memanggil prosedur tersimpan sistem mysql. rds_stop_replication dan mysql. rds_start_replication. Anda dapat melakukannya saat mereplikasi antara dua instans Amazon RDS untuk operasi jangka panjang seperti membuat indeks besar. Anda juga perlu menghentikan dan memulai replikasi saat mengimpor atau mengekspor database. Untuk informasi selengkapnya, lihat Mengimpor data ke dalam instans DB Amazon RDS dengan pengurangan waktu henti dan Mengekspor data dari instans DB MySQL menggunakan replikasi

Jika replikasi dihentikan selama lebih dari 30 hari berturut-turut, baik secara manual atau karena kesalahan replikasi, Amazon RDS menghentikan replikasi antara instans DB sumber dan semua replika baca. Hal ini dilakukan untuk mencegah peningkatan kebutuhan penyimpanan pada instans DB sumber dan waktu failover yang lama. instans DB replika baca masih tersedia. Namun, replikasi tidak dapat dilanjutkan karena log biner yang diperlukan oleh replika baca dihapus dari instans DB sumber setelah replikasi berakhir. Anda dapat membuat replika baca baru untuk instans DB sumber untuk memulihkan replikasi

Pemecahan masalah batasan replika baca MariaDB

Teknologi replikasi untuk MariaDB tidak sinkron. Karena mereka tidak sinkron, kadang-kadang

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
08 meningkatkan instance DB sumber dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 pada replika baca diharapkan. Misalnya, volume operasi yang tinggi ke instans DB sumber dapat terjadi secara paralel. Sebagai gantinya, operasi ke replika baca diseret menggunakan utas I/O tunggal, yang dapat menyebabkan kelambatan antara instance sumber dan replika baca. Untuk informasi lengkap tentang replikasi hanya-baca dalam dokumentasi MariaDB, kunjungi Ikhtisar Replikasi

Anda dapat melakukan beberapa hal untuk mengurangi jeda antara pembaruan ke instans DB sumber dan pembaruan berikutnya ke replika baca, seperti berikut ini

  • Menskalakan replika baca agar memiliki ukuran penyimpanan dan kelas instans DB yang sebanding dengan instans DB sumber

  • Memastikan bahwa pengaturan parameter dalam grup parameter DB yang digunakan oleh instans DB sumber dan replika baca kompatibel. Untuk informasi dan contoh lengkap, lihat pembahasan tentang

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    10 nanti di bagian ini

Amazon RDS memantau status replikasi replika baca Anda dan memperbarui bidang instans replika baca

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
11 untuk
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
12 jika replikasi berhenti karena alasan apa pun. Misalnya, jika kueri DML dijalankan pada replika baca, pembaruan dibuat dalam instans DB sumber

Anda dapat meninjau detail error terkait yang disebabkan oleh mesin MariaDB dengan melihat kolom

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
13. Acara yang menunjukkan status replika baca juga dibuat, termasuk , , dan. Untuk informasi selengkapnya tentang acara dan berlangganan acara, lihat Bekerja dengan pemberitahuan acara Amazon RDS. Jika muncul pesan error MariaDB, periksa error tersebut di dokumentasi pesan error MariaDB

Masalah umum yang dapat menyebabkan kesalahan replikasi adalah ketika nilai parameter

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
10 untuk replika baca kurang dari
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
10 untuk instans DB sumber. Parameter
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_10 adalah parameter khusus yang dapat Anda atur di grup parameter DB yang digunakan untuk menentukan ukuran maksimum kode DML yang dapat dijalankan di database. Dalam beberapa kasus, nilai parameter
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
_10 dalam grup parameter DB yang terkait dengan instans DB sumber lebih kecil daripada nilai parameter
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
10 dalam grup parameter DB yang terkait dengan replika baca sumber. Dalam hal ini, proses replikasi dapat menyebabkan kesalahan (Paket lebih besar dari byte 'max_allowed_packet') dan menghentikan replikasi. Anda dapat memperbaiki kesalahan dengan memiliki replika sumber dan membaca, menggunakan grup parameter DB yang sama
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
10 nilai parameter

Situasi umum lainnya yang dapat menyebabkan kesalahan replikasi adalah sebagai berikut

  • Menulis ke tabel di replika baca. Jika Anda membuat indeks pada replika baca, Anda harus menyetel parameter

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    0 ke 0 untuk membuat indeks. Jika Anda mengkompilasi pada replika baca, replikasi dapat rusak

  • Menggunakan mesin penyimpanan non-transaksional seperti MyISAM. replika baca memerlukan mesin penyimpanan transaksional. Replikasi hanya didukung untuk mesin penyimpanan InnoDB di MariaDB

  • Menggunakan kueri nondeterministik yang tidak aman seperti

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    21. Untuk informasi lebih lanjut, lihat Menentukan laporan aman dan tidak aman dalam logging biner

Jika Anda memutuskan untuk melewati kesalahan dengan aman, Anda dapat mengikuti langkah-langkah yang dijelaskan di. Jika tidak, Anda dapat menghapus replika baca dan membuat instans menggunakan pengidentifikasi instans DB yang sama sehingga titik akhir tetap sama dengan replika baca lama Anda. Jika kesalahan replikasi diperbaiki,

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
11 berubah menjadi replikasi

Untuk instans DB MariaDB, dalam beberapa kasus, replika baca tidak dapat dipindahkan ke sekunder jika beberapa instans binlog (binlog) tidak dihapus saat terjadi kegagalan. Dalam hal ini, hapus dan buat ulang replika baca secara manual. Anda dapat mengurangi kemungkinan terjadinya hal ini dengan menyetel nilai parameter berikut.

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
23 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
24. Pengaturan ini dapat mengurangi performa, jadi uji dampaknya sebelum menerapkan perubahan di lingkungan produksi