Cara menggunakan does .net support mysql?

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Di bagian ini, Anda dapat menemukan informasi spesifik tentang replika baca pada RDS for MySQL. Untuk informasi umum tentang replika baca dan petunjuk penggunaannya, lihat Bekerja dengan replika baca.

Sebelum instans DB MySQL dapat berfungsi sebagai sumber replikasi, pastikan untuk mengaktifkan pencadangan otomatis pada instans DB sumber. Untuk melakukannya, atur periode retensi cadangan ke nilai selain 0. Persyaratan ini juga berlaku untuk replika baca yang merupakan instans DB sumber untuk replika baca lainnya. Pencadangan otomatis didukung untuk replika baca yang menjalankan versi apa pun dari MySQL. Anda dapat mengonfigurasi replikasi berdasarkan koordinat log biner untuk instans DB MySQL.

Pada versi RDS for MySQL 5.7.23 dan versi yang lebih tinggi MySQL 5.7 dan versi yang lebih tinggi MySQL 8.0.26 dan versi yang lebih tinggi 8.0, Anda dapat mengonfigurasi replikasi menggunakan pengidentifikasi transaksi global (GTID). Untuk informasi selengkapnya, lihat Penggunaan replikasi berbasis GTID untukAmazon RDS for MySQL.

Anda dapat membuat hingga 15 replika baca dari satu instans DB dalam Region yang sama. Agar replikasi beroperasi secara efektif, setiap replika baca harus memiliki jumlah sumber daya komputasi dan penyimpanan yang sama seperti instans DB sumber. Jika Anda meningkatkan skala instans DB sumber, maka replika baca juga perlu ditingkatkan skalanya.

RDS for MySQL mendukung replika baca cascading. Untuk mempelajari cara mengonfigurasi replika baca bertingkat, lihat.

Anda dapat menjalankan beberapa replika baca, membuat dan menghapus 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 instans sumber.

Replika baca dari instans DB MySQL tidak dapat menggunakan versi mesin DB yang lebih rendah dari instans DB sumbernya.

Jika instans DB MySQL Anda menggunakan mesin nontransaksional seperti, Anda perlu melakukan langkah-langkah berikut agar berhasil menyiapkan replika baca Anda. Langkah-langkah ini diperlukan untuk memastikan replika baca memiliki salinan data yang konsisten. Langkah-langkah ini tidak diperlukan jika semua tabel Anda menggunakan mesin transaksional seperti InnoDB.

  1. Hentikan semua operasi data manipulation language (DML) dan data definition language (DDL) pada tabel non-transaksional dalam instans DB sumber dan tunggu sampai selesai. Pernyataan SELECT dapat terus berjalan.

  2. Flush kunci tabel di instans DB sumber.

  3. Buat replika baca menggunakan salah satu metode di bagian berikut.

  4. Periksa kemajuan pembuatan replika baca menggunakan, misalnya, operasi API

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    7. Setelah replika baca tersedia, buka kunci tabel instans DB sumber dan lanjutkan operasi database normal.

Anda dapat menggunakan filter replikasi untuk menentukan basis data dan tabel apa yang direplikasi dengan replika baca. Filter replikasi dapat menyertakan basis data dan tabel ke dalam replikasi atau mengecualikan mereka dari replikasi.

Berikut ini adalah beberapa kasus penggunaan untuk replikasi filter:

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

  • Untuk mengecualikan basis data dan tabel dari replika baca untuk alasan keamanan.

  • Untuk mereplikasi basis data yang berbeda dan tabel untuk kasus penggunaan tertentu di replika baca yang berbeda. Misalnya, Anda mungkin menggunakan replika baca khusus untuk analitik atau pemisahan.

  • Untuk instans DB yang memiliki replika baca di berbagaiWilayah AWS, untuk mereplikasi basis data atau tabel yang berbedaWilayah AWS.

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

Untuk mengkonfigurasi filter replikasi, atur 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"}]"
    8 — Mereplikasi perubahan ke basis data yang ditentukan. Ketika Anda menetapkan parameter ini untuk replika baca, hanya basis data 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"}]"
    9 — Jangan mereplikasi perubahan ke basis data 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"}]"
    8 diatur 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"}]"
    1 — Mereplikasi perubahan ke tabel yang ditentukan. Ketika Anda menetapkan 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"}]"
    8 atau
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    9 diatur, pastikan untuk menyertakan basis data yang mencakup 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"}]"
    4 — Jangan mereplikasi perubahan ke tabel yang ditentukan. Ketika parameter
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    1 diatur 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"}]"
    6 — Mereplikasi tabel berdasarkan basis data dan pola nama tabel yang ditentukan. 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"}]"
    7 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    8 didukung. Ketika parameter
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    8 atau
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    9 diatur, pastikan untuk menyertakan basis data yang mencakup 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"}]"
    1 — Jangan mereplikasi tabel berdasarkan basis data dan pola nama tabel yang ditentukan. 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"}]"
    7 dan
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    8 didukung. Ketika parameter
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
    1 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 diatur untuk replika baca, parameter ini tidak dievaluasi.

Parameter dievaluasi dalam urutan dalam daftar. Untuk informasi lebih lanjut tentang cara parameter ini bekerja, lihat Dokumentasi MySQL:

Secara default, masing-masing parameter ini memiliki nilai kosong. Pada setiap replika baca, Anda dapat menggunakan parameter ini untuk mengatur, mengubah, dan menghapus filter replikasi. Ketika Anda menetapkan salah satu parameter ini, pisahkan masing-masing 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"}]"
7 dan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
8 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"}]"
6 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
1. Parameter wildcard
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
7 mencocokkan dengan sejumlah karakter, dan wildcard
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
8 hanya mencocokkan 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"}]"
2 menentukan apakah replikasi berbasis baris atau berbasis pernyataan. Untuk informasi selengkapnya, lihat Konfigurasilog biner MySQL.

Seluruh pernyataan data definition language (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"}]"
2 pada instans DB sumber.

Keterbatasan berikut ini berlaku untuk filter replikasi untuk RDS untuk MySQL:

  • Setiap parameter filter replikasi memiliki batas 2.000 karakter.

  • Koma tidak didukung dalam filter replikasi.

  • Opsi MySQL

    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 untuk filter log biner tidak didukung.

  • Filter replikasi tidak mendukung transaksi XA.

    Untuk informasi selengkapnya, lihat Pembatasan pada Transaksi XAdalam dokumentasi MySQL.

Untuk mengkonfigurasi filter replikasi untuk replika baca, modifikasi parameter filter replikasi dalam grup parameter yang terkait dengan replika baca tersebut.

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

Anda dapat mengatur parameter dalam grup parameter menggunakan AWS Management Console, AWS CLI, atau API RDS. Untuk informasi tentang pengaturan parameter, lihat . Ketika Anda mengatur parameter dalam grup parameter, semua instans DB yang terkait dengan grup parameter tersebut menggunakan pengaturan parameter. Jika Anda mengatur parameter filter replikasi dalam grup parameter, pastikan bahwa grup parameter dikaitkan hanya dengan replika baca. Biarkan parameter filter replikasi kosong untuk instans DB sumber.

Contoh berikut mengatur 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"}]"
6 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 sehingga perubahan parameter terjadi segera setelah perintah CLI selesai. Jika Anda ingin menerapkan perubahan tertunda setelah replika baca di-reboot, atur
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 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"}]"
9.

Contoh berikut mengatur filter replikasi:

contoh Termasuk basis data dalam replikasi

Contoh berikut menyertakan basis data

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 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"}]"
1 dalam 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"}]"

Untuk Windows:

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

contoh Termasuk tabel dalam replikasi

Contoh berikut menyertakan 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"}]"
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 dalam
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 basis data 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 Menyertakan tabel dalam replikasi menggunakan karakter wildcard

Contoh berikut menyertakan tabel dengan nama berawalan

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 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"}]"
6 dalam basis data
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 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 kepada Anda 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"}]"
8 untuk melepaskan karakter wildcard yang merupakan bagian dari nama.

Asumsikan bahwa Anda memiliki beberapa nama tabel dalam basis data

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 yang dimulai dengan
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
0, dan Anda ingin menyertakan tabel ini dalam replikasi. Nama tabel meliputi garis bawah, yang juga merupakan karakter wildcard, sehingga contoh ini melepaskan garis bawah dalam 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 Mengecualikan basis data dari replikasi

Contoh berikut mengecualikan basis data

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 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"}]"
1 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 Mengecualikan 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"}]"
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 dalam
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 basis data 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 Mengecualikan tabel dari replikasi menggunakan karakter wildcard

Contoh berikut mengecualikan tabel dengan nama berawalan

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 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"}]"
6 dalam basis data
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 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:

  • Memeriksa pengaturan parameter filter replikasi dalam grup parameter yang terkait dengan replika baca.

    Untuk instruksi, lihat .

  • Dalam klien MySQL, hubungkan 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"}]"
    9.

    Dalam output, bidang berikut menunjukkan 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"}]"
      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

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

    Untuk informasi selengkapnya tentang bidang ini, lihat Memeriksa Status Replikasidalam dokumentasi MySQL.

    Versi sebelumnya dari MySQL menggunakan

    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    6 sebagai ganti
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    9. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
    6.

Anda dapat menggunakan replikasi tertunda 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 memulihkan dari bencana dengan cepat:

  • Pada replikasi RDS for MySQL 8.0, replikasi tertunda didukung untuk MySQL 8.0.26 dan lebih tinggi. Pada replikasi RDS for MySQL 5.7, replikasi tertunda didukung untuk MySQL 5.7.22 dan lebih tinggi.

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

  • Pada versi RDS for MySQL 5.7.23 dan versi yang lebih tinggi MySQL 5.7 dan versi yang lebih tinggi MySQL 8.0.26 dan versi yang lebih tinggi, Anda dapat menggunakan replikasi berdasarkan pengidentifikasi transaksi global (GTID) dalam konfigurasi replikasi tertunda. Jika Anda menggunakan replikasi berbasis GTID, gunakan prosedur tersimpan mysql.rds_start_replication_until_gtid, bukan prosedur tersimpan mysql.rds_start_replication_until. Untuk informasi selengkapnya tentang replikasi berbasis GTID, lihat Penggunaan replikasi berbasis GTID untukAmazon RDS for MySQL.

Untuk mengonfigurasi replikasi tertunda untuk replika baca di masa 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"}]"
9.

Untuk mengonfigurasi replikasi tertunda selama pembuatan replika baca

  1. Dengan menggunakan klien MySQL, hubungkan ke instans DB MySQL 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"}]"
    9.

    Misalnya, jalankan prosedur tersimpan berikut 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, replika baca apa pun yang Anda buat menggunakan AWS CLI atau API Amazon RDS dikonfigurasi 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. Dengan menggunakan klien MySQL, hubungkan ke replika baca sebagai pengguna master.

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

  3. Jalankan prosedur yang tersimpan di mysql.rds_set_source_delay.

    Misalnya, jalankan prosedur tersimpan berikut untuk menentukan bahwa replikasi ke replika baca tertunda 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 menghentikan replikasi ke replika baca, Anda dapat memulai replikasi dan kemudian menghentikannya di lokasi file log biner yang ditentukan menggunakan prosedur tersimpan mysql.rds_start_replication_until.

Untuk memulai replikasi ke replika baca dan menghentikan replikasi di lokasi tertentu

  1. Dengan menggunakan klien MySQL, hubungkan ke instans DB MySQL sumber sebagai pengguna master.

  2. Jalankan prosedur yang tersimpan di mysql.rds_start_replication_until.

    Contoh berikut memulai replikasi dan mereplikasi perubahan hingga mencapai lokasi

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    1 di file log biner
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    2. Dalam skenario pemulihan bencana, asumsikan bahwa lokasi
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    1 tepat sebelum bencana.

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

Replikasi berhenti secara otomatis ketika stop point tercapai. Peristiwa RDS berikut dibuat:

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

Setelah replikasi dihentikan, dalam skenario pemulihan bencana, Anda dapat meningkatkan replika baca menjadi instans DB sumber yang 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 mengoptimalkan jenis kueri tertentu yang mengakses replika. Anda dapat mengaktifkan pembaruan dengan mengatur parameter

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 ke
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
6 di grup parameter DB untuk replika baca. Berhati-hatilah saat menonaktifkan status hanya-baca pada replika baca karena dapat menyebabkan masalah jika replika baca menjadi tidak kompatibel dengan instans DB sumber. Ubah nilai parameter
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
5 kembali ke
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
8 sesegera mungkin.

Anda dapat membuat replika baca dari penerapan instans DB Multi-AZ atau tunggal-AZ. Anda menggunakan penyebaran Multi-AZ untuk meningkatkan dan ketersediaan data kritis, tetapi Anda tidak dapat menggunakan sekunder Multi-AZ untuk melayani kueri baca-saja. Sebagai gantinya, Anda dapat membuat replika baca dari instans DB Multi-AZ multi-lalu lintas tinggi untuk mengeluarkan kueri baca-saja. Jika instans sumber dari penerapan Multi-AZ gagal karena replika baca sekunder, setiap replika baca terkait akan otomatis untuk 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 menciptakan waktu siaga replika Anda di Availability Zone lain untuk mendukung failover bagi replika. Membuat replika baca Anda sebagai instans DB Multi-AZ tidak tergantung pada apakah basis data sumber adalah instans DB Multi-AZ.

RDS for MySQL mendukung replika baca cascading. Dengan replika baca cascading, Anda dapat menskalakan bacaan tanpa menambahkan overhead ke sumber RDS untuk instans MySQL DB.

Dengan replika baca cascading, instans RDS untuk MySQL DB Anda 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 untuk instans MySQL DB, tetapi tanpa overhead hanya pada instance DB sumber.

Anda dapat membuat serangkaian hingga tiga replika baca dalam rantai dari instans MySQL sumber. Misalnya, anggap Anda memiliki instans DB MySQL

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
9. 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"}]"
    9, buat replika baca pertama dalam rantai,
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    1.

  • Selanjutnya, dari

    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 berikutnya dalam rantai,
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    3.

  • Akhirnya, 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 ketiga dalam rantai,
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5.

Anda tidak dapat membuat replika baca lain di luar replika baca cascading ketiga ini dalam seri untuk

aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
9. Serangkaian instans lengkap dari RDS untuk instans DB sumber MySQL hingga akhir serangkaian replika baca cascading dapat terdiri dari paling banyak empat instans DB.

Agar replika baca cascading berfungsi, setiap sumber RDS untuk instans MySQL DB harus mengaktifkan cadangan otomatis. Untuk mengaktifkan pencadangan otomatis pada replika baca, pertama-tama buat replika baca, lalu ubah replika baca untuk mengaktifkan pencadangan otomatis. Untuk informasi selengkapnya, lihat .

Seperti halnya replika baca, Anda dapat mempromosikan replika baca yang merupakan bagian dari kaskade. Mempromosikan replika baca dari dalam rantai replika baca menghapus replika tersebut dari rantai. Misalnya, Anda ingin memindahkan 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"}]"
9 DB Anda ke instance baru untuk digunakan oleh departemen akuntansi saja. Dengan asumsi rantai 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"}]"
3. 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"}]"
    3 menghapusnya dari rantai replikasi.

    • Sekarang membaca/menulis contoh DB penuh.

    • Itu terus mereplikasi

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

  • Anda

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    9 terus mereplikasi ke
    aws rds modify-db-parameter-group ^
      --db-parameter-group-name myparametergroup ^
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    1.

Untuk informasi lebih lanjut tentang mempromosikan replika baca, lihat.

Untuk replika baca MySQL, Anda dapat memantau keterlambatan replikasi di Amazon RDS CloudWatch dengan melihat

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
03 metrik Amazon RDS. Metrik
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
03 melaporkan nilai dari kolom
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
05 dari perintah
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
9.

Versi sebelumnya dari MySQL menggunakan

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
6 sebagai ganti
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
9. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
6.

Penyebab umum keterlambatan replikasi untuk MySQL adalah sebagai berikut:

  • Pemadaman jaringan.

  • Menulis ke tabel yang memiliki indeks berbeda 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"}]"
    5 diatur ke
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    6 pada replika baca, replikasi dapat rusak jika replika baca menjadi tidak kompatibel dengan instans DB sumber. Setelah Anda melakukan tugas pemeliharaan pada replika baca, sebaiknya Anda mengatur kembali parameter
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5 ke
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    8.

  • Menggunakan mesin penyimpanan non-transaksional seperti MyISAM. Replikasi hanya didukung untuk mesin penyimpanan InnoDB pada MySQL.

Saat metrik

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

Anda dapat menghentikan dan memulai ulang proses replikasi di instans Amazon RDS DB dengan menghubungi prosedur yang disimpan sistem mysql.rds_stop_replication dan mysql.rds_start_replication. Anda dapat melakukan ini 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 basis data. Untuk informasi lebih lanjut, lihat Pengimporan data ke instans DB Amazon RDS dengan pengurangan downtime dan Mengekspor data dari instans DB MySQL dengan 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 persyaratan 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 dihentikan. Anda dapat membuat replika baca baru untuk instans DB sumber untuk memulihkan replikasi.

Pemecahan Masalah kendala replika baca MySQL

Untuk instans DB MySQL, dalam beberapa kasus replika baca menghasilkan kesalahan replikasi atau inkonsistensi data (atau keduanya) antara replika baca dan instans DB sumbernya. Masalah ini terjadi ketika beberapa kejadian log biner (binlog) atau log redo InnoDB tidak dialirkan selama kegagalan replika baca atau instans DB sumber. Dalam kasus ini, hapus dan buat ulang replika baca secara manual. Anda dapat mengurangi kemungkinan terjadinya hal ini dengan menetapkan nilai parameter berikut:

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

Dalam grup parameter yang terkait dengan instans DB sumber, sebaiknya simpan nilai parameter ini:

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
19 dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
20. Parameter ini dinamis. Jika Anda tidak ingin menggunakan pengaturan ini, sebaiknya setel sementara nilai tersebut sebelum menjalankan operasi apa pun pada instans DB sumber yang mungkin menyebabkannya dimulai ulang. Operasi ini mencakup, tetapi tidak terbatas pada, reboot, reboot dengan failover, meningkatkan versi database, dan mengubah kelas instans DB atau penyimpanannya. Rekomendasi yang sama berlaku untuk membuat replika baca baru untuk instans DB sumber.

Kegagalan mengikuti panduan ini meningkatkan risiko replika baca yang menghasilkan kesalahan replikasi atau inkonsistensi data (atau keduanya) antara replika baca dan instans DB sumbernya.

Teknologi replikasi untuk MySQL bersifat asinkron. Karena mereka tidak sinkron, sesekali

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
23 meningkatkan instans DB sumber dan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
03 pada replika baca diharapkan. Misalnya, volume operasi yang tinggi ke instans DB sumber dapat terjadi secara paralel. Sebaliknya, operasi ke replika baca diseret menggunakan utas I/O tunggal, yang dapat menyebabkan jeda antara instans sumber dan replika baca. Untuk informasi selengkapnya tentang replika read-only di dokumentasi MySQL, lihat Detail implementasi replikasi.

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

  • Mengukur replika baca untuk memiliki ukuran penyimpanan dan kelas instans DB yang sebanding dengan instans DB sumber.

  • Memastikan bahwa pengaturan parameter di grup parameter DB yang digunakan oleh instans DB sumber dan replika baca kompatibel. Untuk informasi selengkapnya dan instans, lihat diskusi tentang

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

Amazon RDS memantau status replikasi replika baca Anda dan memperbarui

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
26 bidang instans replika baca untuk
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
27 jika replikasi berhenti karena alasan apa pun. instans misalnya jika DML query berjalan di atas replika baca, pembaruan yang dibuat di instans DB sumber.

Anda dapat meninjau perincian kesalahan terkait yang disebabkan oleh mesin MySQL dengan melihat bidang

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
28. Peristiwa yang menunjukkan status replika baca juga dihasilkan, termasuk , , dan . Untuk informasi selengkapnya tentang acara dan berlangganan acara, lihat Bekerja dengan pemberitahuan kejadian Amazon RDS. Jika pesan kesalahan MySQL dikembalikan, tinjau nomor kesalahan dalam dokumentasi pesan kesalahan MySQL.

Satu masalah umum yang dapat menyebabkan kesalahan replikasi adalah ketika nilai untuk

aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 parameter untuk replika baca lebih kecil dari
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 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"}]"
25 adalah parameter kustom yang dapat Anda atur di grup parameter DB. Anda menggunakan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 untuk menentukan ukuran maksimum kode DML yang dapat dijalankan di database. Dalam beberapa kasus, nilai
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 dalam grup parameter DB yang dikaitkan dengan replika baca lebih kecil daripada nilai
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 dalam grup parameter DB yang terkait dengan instans DB sumber. Dalam kasus ini, proses replikasi dapat melempar kesalahan
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
35 dan menghentikan replikasi. Untuk memperbaiki kesalahan, miliki instans DB sumber dan replika baca menggunakan grup parameter DB dengan nilai parameter
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
25 yang sama.

Situasi umum lainnya yang dapat menyebabkan kesalahan replikasi adalah sebagai berikut:

  • Penulisan ke tabel di replika baca. Dalam beberapa kasus, Anda mungkin membuat indeks pada replika baca yang berbeda dari indeks pada instans DB sumber. Jika Anda melakukannya, atur parameter

    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5 ke
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    6 untuk membuat indeks. Jika Anda menulis ke tabel pada replika baca, replikasi dapat rusak jika replika baca menjadi tidak kompatibel dengan instans DB sumber. Setelah Anda melakukan tugas pemeliharaan pada replika baca, sebaiknya Anda mengatur kembali parameter
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    5 ke
    aws rds modify-db-parameter-group \
      --db-parameter-group-name myparametergroup \
      --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
    8.

  • Menggunakan mesin penyimpanan non-transaksional seperti MyISAM. Replika baca memerlukan mesin penyimpanan transaksional. Replikasi hanya didukung untuk mesin penyimpanan InnoDB pada MySQL.

  • Menggunakan kueri tidak menentukan 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"}]"
    41. Untuk informasi selengkapnya, lihat Penentuan laporan yang aman dan tidak aman dalam logging biner.

Jika Anda memutuskan bahwa Anda dapat melewati kesalahan dengan aman, Anda dapat mengikuti langkah-langkah yang dijelaskan di bagian . Jika tidak, Anda dapat menghapus replika baca terlebih dahulu. Selanjutnya Anda membuat instans menggunakan pengenal instans DB yang sama sehingga endpoint 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"}]"
26 berubah menjadi mereplikasi.