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
Topik
- mysql.rds_next_source_log_for_channel
- mysql.rds_reset_external_source_for_channel
- mysql.rds_set_external_source_for_channel
- mysql.rds_set_external_source_with_auto_position_for_channel
- mysql.rds_set_external_source_with_delay_for_channel
- mysql.rds_set_source_auto_position_for_channel
- mysql.rds_set_source_delay_for_channel
- mysql.rds_skip_repl_error_for_channel
- mysql.rds_start_replication_for_channel
- mysql.rds_start_replication_until_for_channel
- mysql.rds_start_replication_until_gtid_for_channel
- mysql.rds_stop_replication_for_channel
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 perintahSHOW REPLICA STATUS FOR CHANNEL '
dan lihat kolomchannel_name
'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
danREPLICATION 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
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
';Pada instans DB sumber, berikan
REPLICATION CLIENT
danREPLICATION SLAVE
hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak aksesREPLICATION CLIENT
danREPLICATION 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
danREPLICATION 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
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
';Pada instans DB sumber, berikan
REPLICATION CLIENT
danREPLICATION SLAVE
hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak aksesREPLICATION CLIENT
danREPLICATION 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
danREPLICATION 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
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
';Pada instans DB sumber, berikan
REPLICATION CLIENT
danREPLICATION SLAVE
hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak aksesREPLICATION CLIENT
danREPLICATION 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 adalah0
. -
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 menentukan apakah ada kesalahan, jalankan SQL SHOW REPLICA STATUS FOR CHANNEL '
perintah Saya. Jika kesalahan replikasi tidak parah, Anda dapat menjalankan channel_name
'\Gmysql.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 '
untuk menentukan tindakan yang benar untuk kesalahan berikutnya. Untuk informasi tentang nilai yang dikembalikan, lihat SHOWREPLICASTATUSpernyataanchannel_name
'\G
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');