Mengelola replikasi multi-sumber - Layanan Basis Data Relasional Amazon

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

Mengelola replikasi multi-sumber

Prosedur tersimpan berikut menyiapkan dan mengelola saluran replikasi pada replika SQL multi-sumber RDS untuk Saya. Untuk informasi selengkapnya, lihat Mengkonfigurasi multi-source-replication untuk Amazon RDS untuk Milik Saya SQL.

Prosedur tersimpan ini hanya tersedia RDS untuk instans My SQL DB yang menjalankan versi mesin berikut:

  • 8.0.35 dan versi minor yang lebih tinggi

  • 5.7.44 dan versi minor yang lebih tinggi

catatan

Meskipun dokumentasi ini mengacu pada instans DB sumber seperti RDS untuk instans SQL DB Saya, prosedur ini juga berfungsi untuk SQL instans Saya yang berjalan di luar Amazon. RDS

mysql.rds_next_source_log_for_channel

Mengubah posisi log instans DB sumber ke awal log biner berikutnya pada instans DB sumber untuk saluran. Gunakan prosedur ini hanya jika Anda menerima replikasi I/O kesalahan 1236 pada replika multi-sumber.

Sintaks

CALL mysql.rds_next_source_log_for_channel( curr_master_log, channel_name );

Parameter

curr_master_log

Indeks file log sumber saat ini. Misalnya, jika file saat ini bernama mysql-bin-changelog.012345, maka indeksnya adalah 12345. Untuk menentukan nama file log sumber saat ini, jalankan perintah SHOW REPLICA STATUS FOR CHANNEL 'channel_name' dan lihat kolom Source_Log_File.

catatan

Versi sebelumnya dari My SQL digunakan SHOW SLAVE STATUS sebagai penggantiSHOW REPLICA STATUS. Jika Anda menggunakan SQL versi Saya sebelum 8.0.23, maka gunakan. SHOW SLAVE STATUS

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_next_source_log_for_channel. Jika ada kesalahan IO_thread, misalnya, Anda dapat menggunakan prosedur ini untuk melewati semua peristiwa dalam file log biner saat ini dan melanjutkan replikasi dari file log biner berikutnya untuk saluran yang ditentukan dalam. channel_name

Contoh

Asumsikan replikasi gagal pada saluran pada replika multi-sumber. Berjalan SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G pada replika multi-sumber mengembalikan hasil berikut:

mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: ReplicationUser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: replica-relay-bin.000003 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB:. . . Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: . . Channel_name: channel_1 . . -- Some fields are omitted in this example output

Kolom Last_IO_Errno menunjukkan bahwa instans menerima kesalahan I/O 1236. Kolom Source_Log_File menunjukkan bahwa nama file adalah mysql-bin-changelog.012345, yang berarti indeks file log adalah 12345. Untuk mengatasi kesalahan, Anda dapat menelepon mysql.rds_next_source_log_for_channel dengan parameter berikut:

CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
catatan

Versi sebelumnya dari My SQL digunakan SHOW SLAVE STATUS sebagai penggantiSHOW REPLICA STATUS. Jika Anda menggunakan SQL versi Saya sebelum 8.0.23, maka gunakan. SHOW SLAVE STATUS

mysql.rds_reset_external_source_for_channel

Menghentikan proses replikasi pada saluran yang ditentukan, dan menghapus saluran dan konfigurasi terkait dari replika multi-sumber.

penting

Untuk menjalankan prosedur ini, autocommit harus diaktifkan. Untuk mengaktifkannya, atur parameter autocommit ke 1. Lihat informasi tentang cara mengubah parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

Sintaksis

CALL mysql.rds_reset_external_source_for_channel (channel_name);

Parameter

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_reset_external_source_for_channel. Prosedur ini menghapus semua log relai milik saluran yang dihapus.

mysql.rds_set_external_source_for_channel

Mengkonfigurasi saluran replikasi pada instans RDS for My SQL DB untuk mereplikasi data dari yang lain RDS untuk instance My SQL DB.

penting

Untuk menjalankan prosedur ini, autocommit harus diaktifkan. Untuk mengaktifkannya, atur parameter autocommit ke 1. Lihat informasi tentang cara mengubah parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

catatan

Anda dapat menggunakan prosedur mysql.rds_set_external_source_with_delay_for_channel tersimpan sebagai gantinya untuk mengonfigurasi saluran ini dengan replikasi tertunda.

Sintaks

CALL mysql.rds_set_external_source_for_channel ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption , channel_name );

Parameter

host_name

Nama host atau alamat IP RDS untuk instance DB SQL sumber saya.

host_port

Port yang digunakan oleh instans RDS for My SQL source DB. Jika konfigurasi jaringan Anda menyertakan replikasi port Secure Shell (SSH) yang mengonversi nomor port, tentukan nomor port yang diekspos oleh. SSH

replication_user_name

ID pengguna dengan REPLICATION CLIENT dan REPLICATION SLAVE izin pada instance RDS for My SQL source DB. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

replication_user_password

Kata sandi ID pengguna yang ditentukan dalam replication_user_name.

mysql_binary_log_file_name

Nama log biner pada instance DB sumber yang berisi informasi replikasi.

mysql_binary_log_file_location

Lokasi di log biner mysql_binary_log_file_name tempat replikasi mulai membaca informasi replikasi.

Anda dapat menentukan nama dan lokasi file binlog dengan menjalankan SHOW MASTER STATUS instans DB sumber.

ssl_encryption

Nilai yang menentukan apakah enkripsi Secure Socket Layer (SSL) digunakan pada koneksi replikasi. 1 menentukan untuk menggunakan SSL enkripsi, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.

catatan

Opsi MASTER_SSL_VERIFY_SERVER_CERT tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

channel_name

Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_set_external_source_for_channel. Prosedur ini harus dijalankan pada target RDS untuk instans My SQL DB tempat Anda membuat saluran replikasi.

Sebelum Anda menjalankanmysql.rds_set_external_source_for_channel, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan replication_user_name dan replication_user_password nilai pengguna replikasi yang memiliki REPLICATION CLIENT dan REPLICATION SLAVE izin pada instans DB sumber.

Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber
  1. Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.

    penting

    Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

    Saya SQL 8.0

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

    SQL5.7 saya

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. Pada instans DB sumber, berikan REPLICATION CLIENT dan REPLICATION SLAVE hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE pada semua basis data untuk pengguna ‘repl_user’ domain Anda.

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

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi. SSL

Setelah menelepon mysql.rds_set_external_source_for_channel untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil mysql.rds_start_replication_for_channel replika untuk memulai proses replikasi di saluran. Anda dapat menelepon mysql.rds_reset_external_source_for_channel untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

Saat Anda meneleponmysql.rds_set_external_source_for_channel, Amazon RDS mencatat waktu, pengguna, dan tindakan set channel source dalam mysql.rds_history tabel tanpa detail khusus saluran, dan dalam mysql.rds_replication_status tabel, dengan nama saluran. Informasi ini dicatat hanya untuk tujuan penggunaan dan pemantauan internal. Untuk mencatat panggilan prosedur lengkap untuk tujuan audit, pertimbangkan untuk mengaktifkan log audit atau log umum, berdasarkan persyaratan spesifik aplikasi Anda.

Contoh

Ketika dijalankan pada instance RDS for My SQL DB, contoh berikut mengkonfigurasi saluran replikasi bernama channel_1 pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh host sourcedb.example.com dan port. 3306

call mysql.rds_set_external_source_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.0777', 120, 0, 'channel_1');

mysql.rds_set_external_source_with_auto_position_for_channel

Mengkonfigurasi saluran replikasi pada instans RDS for My SQL DB dengan penundaan replikasi opsional. Replikasi didasarkan pada pengidentifikasi transaksi global ()GTIDs.

penting

Untuk menjalankan prosedur ini, autocommit harus diaktifkan. Untuk mengaktifkannya, atur parameter autocommit ke 1. Lihat informasi tentang cara mengubah parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

Sintaksis

CALL mysql.rds_set_external_source_with_auto_position_for_channel ( host_name , host_port , replication_user_name , replication_user_password , ssl_encryption , delay , channel_name );

Parameter

host_name

Nama host atau alamat IP RDS untuk instance DB SQL sumber saya.

host_port

Port yang digunakan oleh instans RDS for My SQL source DB. Jika konfigurasi jaringan Anda menyertakan replikasi port Secure Shell (SSH) yang mengonversi nomor port, tentukan nomor port yang diekspos oleh. SSH

replication_user_name

ID pengguna dengan REPLICATION CLIENT dan REPLICATION SLAVE izin pada instance RDS for My SQL source DB. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

replication_user_password

Kata sandi ID pengguna yang ditentukan dalam replication_user_name.

ssl_encryption

Nilai yang menentukan apakah enkripsi Secure Socket Layer (SSL) digunakan pada koneksi replikasi. 1 menentukan untuk menggunakan SSL enkripsi, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.

catatan

Opsi MASTER_SSL_VERIFY_SERVER_CERT tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

delay

Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.

Batas untuk parameter ini adalah satu hari (86.400 detik).

channel_name

Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_set_external_source_with_auto_position_for_channel. Prosedur ini harus dijalankan pada target RDS untuk instans My SQL DB tempat Anda membuat saluran replikasi.

Sebelum Anda menjalankanrds_set_external_source_with_auto_position_for_channel, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan replication_user_name dan replication_user_password nilai pengguna replikasi yang memiliki REPLICATION CLIENT dan REPLICATION SLAVE izin pada instans DB sumber.

Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber
  1. Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.

    penting

    Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

    Saya SQL 8.0

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

    SQL5.7 saya

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. Pada instans DB sumber, berikan REPLICATION CLIENT dan REPLICATION SLAVE hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE pada semua basis data untuk pengguna ‘repl_user’ domain Anda.

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

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi. SSL

Sebelum Anda meneleponmysql.rds_set_external_source_with_auto_position_for_channel, pastikan mysql.rds_set_external_source_gtid_purged untuk memanggil untuk mengatur variabel gtid_purged sistem dengan GTID rentang tertentu dari sumber eksternal.

Setelah menelepon mysql.rds_set_external_source_with_auto_position_for_channel untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca pada saluran tertentu, Anda dapat memanggil mysql.rds_start_replication_for_channel replika baca untuk memulai proses replikasi pada saluran tersebut.

Setelah menelepon mysql.rds_set_external_source_with_auto_position_for_channel untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil mysql.rds_start_replication_for_channel replika untuk memulai proses replikasi di saluran. Anda dapat menelepon mysql.rds_reset_external_source_for_channel untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

Contoh

Ketika dijalankan pada instance RDS for My SQL DB, contoh berikut mengkonfigurasi saluran replikasi bernama channel_1 pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh host sourcedb.example.com dan port 3306 Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik). Ini berarti bahwa perubahan dari sumber RDS untuk instans SQL DB Saya tidak diterapkan pada replika multi-sumber setidaknya selama satu jam.

call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 0, 3600, 'channel_1');

mysql.rds_set_external_source_with_delay_for_channel

Mengkonfigurasi saluran replikasi pada instance RDS for My SQL DB dengan penundaan replikasi tertentu.

penting

Untuk menjalankan prosedur ini, autocommit harus diaktifkan. Untuk mengaktifkannya, atur parameter autocommit ke 1. Lihat informasi tentang cara mengubah parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

Sintaksis

CALL mysql.rds_set_external_source_with_delay_for_channel ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption , delay , channel_name );

Parameter

host_name

Nama host atau alamat IP RDS untuk instance DB SQL sumber saya.

host_port

Port yang digunakan oleh instans RDS for My SQL source DB. Jika konfigurasi jaringan Anda menyertakan replikasi port Secure Shell (SSH) yang mengonversi nomor port, tentukan nomor port yang diekspos oleh. SSH

replication_user_name

ID pengguna dengan REPLICATION CLIENT dan REPLICATION SLAVE izin pada instance RDS for My SQL source DB. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

replication_user_password

Kata sandi ID pengguna yang ditentukan dalam replication_user_name.

mysql_binary_log_file_name

Nama log biner pada instance DB sumber berisi informasi replikasi.

mysql_binary_log_file_location

Lokasi di log biner mysql_binary_log_file_name tempat replikasi akan mulai membaca informasi replikasi.

Anda dapat menentukan nama dan lokasi file binlog dengan menjalankan SHOW MASTER STATUS pada instans basis data sumber.

ssl_encryption

Nilai yang menentukan apakah enkripsi Secure Socket Layer (SSL) digunakan pada koneksi replikasi. 1 menentukan untuk menggunakan SSL enkripsi, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.

catatan

Opsi MASTER_SSL_VERIFY_SERVER_CERT tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

delay

Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.

Batas untuk parameter ini adalah satu hari (86.400 detik).

channel_name

Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_set_external_source_with_delay_for_channel. Prosedur ini harus dijalankan pada target RDS untuk instans My SQL DB tempat Anda membuat saluran replikasi.

Sebelum Anda menjalankanmysql.rds_set_external_source_with_delay_for_channel, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan replication_user_name dan replication_user_password nilai pengguna replikasi yang memiliki REPLICATION CLIENT dan REPLICATION SLAVE izin pada instans DB sumber.

Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber
  1. Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.

    penting

    Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

    Saya SQL 8.0

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

    SQL5.7 saya

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. Pada instans DB sumber, berikan REPLICATION CLIENT dan REPLICATION SLAVE hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses REPLICATION CLIENT dan REPLICATION SLAVE pada semua basis data untuk pengguna ‘repl_user’ domain Anda.

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

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi. SSL

Setelah menelepon mysql.rds_set_external_source_with_delay_for_channel untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil mysql.rds_start_replication_for_channel replika untuk memulai proses replikasi di saluran. Anda dapat menelepon mysql.rds_reset_external_source_for_channel untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

Saat Anda meneleponmysql.rds_set_external_source_with_delay_for_channel, Amazon RDS mencatat waktu, pengguna, dan tindakan set channel source dalam mysql.rds_history tabel tanpa detail khusus saluran, dan dalam mysql.rds_replication_status tabel, dengan nama saluran. Informasi ini dicatat hanya untuk tujuan penggunaan dan pemantauan internal. Untuk mencatat panggilan prosedur lengkap untuk tujuan audit, pertimbangkan untuk mengaktifkan log audit atau log umum, berdasarkan persyaratan spesifik aplikasi Anda.

Contoh

Ketika dijalankan pada instance RDS for My SQL DB, contoh berikut mengkonfigurasi saluran replikasi bernama channel_1 pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh host sourcedb.example.com dan port 3306 Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik). Ini berarti bahwa perubahan dari sumber RDS untuk instans SQL DB Saya tidak diterapkan pada replika multi-sumber setidaknya selama satu jam.

call mysql.rds_set_external_source_with_delay_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000777', 120, 0, 3600, 'channel_1');

mysql.rds_set_source_auto_position_for_channel

Menetapkan mode replikasi untuk saluran yang ditentukan untuk didasarkan pada posisi file log biner atau pada pengidentifikasi transaksi global ()GTIDs.

Sintaks

CALL mysql.rds_set_source_auto_position_for_channel ( auto_position_mode , channel_name );

Parameter

auto_position_mode

Nilai yang menunjukkan apakah akan menggunakan replikasi posisi file log atau replikasi GTID berbasis:

  • 0 – Gunakan metode replikasi berdasarkan posisi file log biner. Default-nya adalah 0.

  • 1— Gunakan metode replikasi GTID berbasis.

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_set_source_auto_position_for_channel. Prosedur ini memulai ulang replikasi pada saluran yang ditentukan untuk menerapkan mode posisi auto yang ditentukan.

Contoh

Contoh berikut menetapkan mode posisi auto untuk channel_1 untuk menggunakan metode replikasi GTID berbasis.

call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');

mysql.rds_set_source_delay_for_channel

Menetapkan jumlah minimum detik untuk menunda replikasi dari instance database sumber ke replika multi-sumber untuk saluran yang ditentukan.

Sintaks

CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);

Parameter

delay

Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.

Batas untuk parameter ini adalah satu hari (86.400 detik).

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_set_source_delay_for_channel. Untuk menggunakan prosedur ini, panggilan pertama mysql.rds_stop_replication_for_channel untuk menghentikan replikasi. Kemudian, panggil prosedur ini untuk mengatur nilai penundaan replikasi. Saat penundaan diatur, panggil mysql.rds_start_replication_for_channel untuk memulai ulang replikasi.

Contoh

Contoh berikut menetapkan penundaan replikasi dari instance database sumber pada channel_1 replika multi-sumber setidaknya selama satu jam (3.600 detik).

CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');

mysql.rds_skip_repl_error_for_channel

Melewatkan peristiwa log biner dan menghapus kesalahan replikasi pada replika multi-sumber SQL DB Saya untuk saluran yang ditentukan.

Sintaks

CALL mysql.rds_skip_repl_error_for_channel(channel_name);

Parameter

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_skip_repl_error_for_channel pada replika baca. Anda dapat menggunakan prosedur ini dengan cara yang sama mysql.rds_skip_repl_error digunakan untuk melewati kesalahan pada replika baca. Untuk informasi selengkapnya, lihat Memanggil prosedur mysql.rds_skip_repl_error.

catatan

Untuk melewati kesalahan dalam replikasi GTID berbasis, kami sarankan Anda menggunakan prosedur sebagai gantinya.

Untuk menentukan apakah ada kesalahan, jalankan SQL SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G perintah Saya. Jika kesalahan replikasi tidak parah, Anda dapat menjalankan mysql.rds_skip_repl_error_for_channel untuk melewati kesalahan tersebut. Jika ada beberapa kesalahan, mysql.rds_skip_repl_error_for_channel menghapus kesalahan pertama pada saluran replikasi yang ditentukan, kemudian memperingatkan bahwa orang lain hadir. Anda kemudian dapat menggunakan SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G untuk menentukan tindakan yang benar untuk kesalahan berikutnya. Untuk informasi tentang nilai yang dikembalikan, lihat SHOWREPLICASTATUSpernyataan dalam SQL dokumentasi Saya.

mysql.rds_start_replication_for_channel

Memulai replikasi dari instans RDS for My SQL DB ke replika multi-sumber pada saluran yang ditentukan.

catatan

Anda dapat menggunakan prosedur mysql.rds_start_replication_until_for_channel atau mysql.rds_start_replication_until_gtid_for_channel tersimpan untuk memulai replikasi dari instance RDS for My SQL DB dan menghentikan replikasi di lokasi file log biner yang ditentukan.

Sintaks

CALL mysql.rds_start_replication_for_channel(channel_name);

Parameter

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_for_channel. Setelah Anda mengimpor data dari sumber RDS untuk instans My SQL DB, jalankan perintah ini pada replika multi-sumber untuk memulai replikasi pada saluran yang ditentukan.

Contoh

Contoh berikut memulai replikasi pada channel_1 replika multi-sumber.

CALL mysql.rds_start_replication_for_channel('channel_1');

mysql.rds_start_replication_until_for_channel

Memulai replikasi dari instance RDS for My SQL DB pada saluran yang ditentukan dan menghentikan replikasi di lokasi file log biner yang ditentukan.

Sintaks

CALL mysql.rds_start_replication_until_for_channel ( replication_log_file , replication_stop_point , channel_name );

Parameter

replication_log_file

Nama log biner pada instance DB sumber berisi informasi replikasi.

replication_stop_point

Lokasi di log biner replication_log_file tempat replikasi akan berhenti.

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_until_for_channel. Dengan prosedur ini, replikasi dimulai dan kemudian berhenti ketika posisi file binlog yang ditentukan tercapai. Untuk versi 8.0, prosedur hanya berhenti. SQL_Thread Untuk versi 5.7, prosedur menghentikan kedua SQL_Thread dan. IO_Thread

Nama file yang ditentukan untuk replication_log_file parameter harus cocok dengan nama file binlog instance DB sumber.

Ketika replication_stop_point parameter menentukan lokasi berhenti yang di masa lalu, replikasi segera dihentikan.

Contoh

Contoh berikut memulai replikasichannel_1, dan mereplikasi perubahan hingga mencapai lokasi 120 dalam file log mysql-bin-changelog.000777 biner.

call mysql.rds_start_replication_until_for_channel( 'mysql-bin-changelog.000777', 120, 'channel_1' );

mysql.rds_start_replication_until_gtid_for_channel

Memulai replikasi pada saluran tertentu dari instans RDS for My SQL DB dan menghentikan replikasi pada identifier transaksi global yang ditentukan (). GTID

Sintaks

CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);

Parameter

gtid

GTIDSetelah itu untuk menghentikan replikasi.

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_until_gtid_for_channel. Prosedur memulai replikasi pada saluran yang ditentukan dan menerapkan semua perubahan hingga GTID nilai yang ditentukan. Kemudian, ia menghentikan replikasi pada saluran.

Saat parameter gtid menentukan transaksi yang telah dijalankan oleh replika, replikasi akan segera dihentikan.

Sebelum Anda menjalankan prosedur ini, Anda harus menonaktifkan replikasi multi-threaded dengan menetapkan nilai dari atau ke. replica_parallel_workers slave_parallel_workers 0

Contoh

Contoh berikut memulai replikasichannel_1, dan mereplikasi perubahan hingga mencapai. GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23

call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');

mysql.rds_stop_replication_for_channel

Menghentikan replikasi dari instans My SQL DB pada saluran yang ditentukan.

Sintaks

CALL mysql.rds_stop_replication_for_channel(channel_name);

Parameter

channel_name

Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari satu sumber RDS untuk instans My SQL DB yang berjalan pada host dan port tertentu.

Catatan penggunaan

Pengguna utama harus menjalankan prosedur mysql.rds_stop_replication_for_channel.

Contoh

Contoh berikut menghentikan replikasi pada channel_1 replika multi-sumber.

CALL mysql.rds_stop_replication_for_channel('channel_1');