Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi, memulai, dan menghentikan replikasi log biner (binlog)
Prosedur tersimpan berikut mengontrol bagaimana transaksi direplikasi dari database eksternal ke RDS for MySQL, atau dari RDS untuk My SQL ke database eksternal.
Saat menggunakan prosedur tersimpan ini untuk mengelola replikasi dengan pengguna replikasi yang dikonfigurasicaching_sha2_password
, Anda harus mengonfigurasi TLS dengan menentukan. SOURCE_SSL=1
caching_sha2_password
adalah plugin otentikasi default untuk My SQL 8.4 RDS Untuk informasi lebih lanjut, lihat. Enkripsi dengan/SSLTLS
Untuk informasi tentang mengonfigurasi, menggunakan, dan mengelola replika baca, lihat. Bekerja dengan replika SQL baca saya
Mengubah posisi log instans basis data sumber menjadi awal log biner berikutnya pada instans basis data sumber. Gunakan prosedur ini hanya jika Anda menerima kesalahan I/O 1236 replikasi pada replika baca.
Sintaksis
CALL mysql.rds_next_master_log(
curr_master_log
);
Parameter
-
curr_master_log
-
Indeks file log master saat ini. Misalnya, jika file saat ini bernama
mysql-bin-changelog.012345
, maka indeksnya adalah 12345. Untuk menentukan nama file log master saat ini, jalankan perintahSHOW REPLICA STATUS
dan lihat kolomMaster_Log_File
.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_next_master_log
.
Awas
Panggil mysql.rds_next_master_log
hanya jika replikasi gagal setelah failover dari instans DB Multi-AZ yang merupakan sumber replikasi, dan kolom Last_IO_Errno
dari laporan kesalahan I/O 1236 SHOW REPLICA STATUS
.
Memanggil mysql.rds_next_master_log
dapat mengakibatkan hilangnya data di replika baca jika transaksi dalam instans sumber tidak ditulis ke log biner di disk sebelum peristiwa failover terjadi. Anda dapat mengurangi kemungkinan hal ini terjadi dengan menyetel parameter instance sumber sync_binlog
dan innodb_support_xa
ke1
, meskipun ini dapat mengurangi kinerja. Untuk informasi selengkapnya, lihat Memecahkan masalah replika SQL baca saya.
Contoh
Asumsikan replikasi gagal pada replika RDSbaca untuk SQL Saya. Menjalankan SHOW REPLICA STATUS\G
pada replika baca akan menampilkan hasil berikut:
*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Master: NULL Source_SSL_Verify_Server_Cert: No 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: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976
Kolom Last_IO_Errno
menunjukkan bahwa instans menerima kesalahan I/O 1236. Kolom Master_Log_File
menunjukkan bahwa nama file adalah mysql-bin-changelog.012345
, yang berarti indeks file log adalah 12345
. Untuk mengatasi kesalahan, Anda dapat memanggil mysql.rds_next_master_log
dengan parameter berikut:
CALL mysql.rds_next_master_log(12345);
Mengubah posisi log instans basis data sumber menjadi awal log biner berikutnya pada instans basis data sumber. Gunakan prosedur ini hanya jika Anda menerima kesalahan I/O 1236 replikasi pada replika baca.
Sintaksis
CALL mysql.rds_next_source_log(
curr_source_log
);
Parameter
-
curr_source_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
dan lihat kolomSource_Log_File
.
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_next_source_log
.
Awas
Panggil mysql.rds_next_source_log
hanya jika replikasi gagal setelah failover dari instans DB Multi-AZ yang merupakan sumber replikasi, dan kolom Last_IO_Errno
dari laporan kesalahan I/O 1236 SHOW REPLICA STATUS
.
Memanggil mysql.rds_next_source_log
dapat mengakibatkan hilangnya data di replika baca jika transaksi dalam instans sumber tidak ditulis ke log biner di disk sebelum peristiwa failover terjadi. Anda dapat mengurangi kemungkinan hal ini terjadi dengan menyetel parameter instance sumber sync_binlog
dan innodb_support_xa
ke1
, meskipun ini dapat mengurangi kinerja. Untuk informasi selengkapnya, lihat Memecahkan masalah replika SQL baca saya.
Contoh
Asumsikan replikasi gagal pada replika RDSbaca untuk SQL Saya. Menjalankan SHOW REPLICA STATUS\G
pada replika baca akan menampilkan hasil berikut:
*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: NULL Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source 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: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976
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 memanggil mysql.rds_next_source_log
dengan parameter berikut:
CALL mysql.rds_next_source_log(12345);
Mengkonfigurasi ulang instans My RDSSQLAurora DB agar tidak lagi menjadi replika baca dari instance My running SQL eksternal Amazon. RDS
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_master;
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_reset_external_master
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dihapus sebagai replika baca dari SQL instance Saya yang berjalan di luar AmazonRDS.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Untuk informasi selengkapnya tentang menggunakan replikasi untuk mengimpor data dari instance My SQL running eksternal ke AmazonRDS, lihatMengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
Mengkonfigurasi ulang instans My RDSSQLAurora DB agar tidak lagi menjadi replika baca dari instance My running SQL eksternal Amazon. RDS
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;
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_reset_external_source
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dihapus sebagai replika baca dari SQL instance Saya yang berjalan di luar AmazonRDS.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS
Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB Untuk informasi selengkapnya tentang menggunakan replikasi untuk mengimpor data dari instance My SQL running eksternal ke AmazonRDS, lihatMengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
Mengonfigurasi instance RDSMy SQL My DB untuk menjadi replika baca dari instance SQL My running eksternal Amazon. RDS
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 bisa menggunakan prosedur tersimpan mysql.rds_set_external_master_with_delay (untuk MariaDB dan untuk versi utama saya 8.0 dan lebih rendah) RDS RDS SQL untuk mengonfigurasi instans basis data sumber eksternal dan replikasi tertunda.
Sintaksis
CALL mysql.rds_set_external_master (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya berjalan eksternal ke Amazon RDS untuk menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. 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 SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
replication_user_password
-
Kata sandi ID pengguna yang ditentukan dalam
replication_user_name
. -
mysql_binary_log_file_name
-
Nama log biner pada instans basis data 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
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.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_set_external_master
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar AmazonRDS.
Sebelum menjalankanmysql.rds_set_external_master
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan replication_user_name
dan replication_user_password
nilai yang menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
SQL5.7 saya
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '
password
';Saya SQL 8.0
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY '
password
';catatan
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak aksesREPLICATION CLIENT
danREPLICATION SLAVE
pada semua basis data untuk pengguna ‘repl_user’ domain Anda.SQL5.7 saya
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY '
password
';Saya SQL 8.0
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
Untuk menggunakan replikasi terenkripsi, konfigurasikan instance database sumber untuk menggunakan koneksi. SSL
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Setelah menelepon mysql.rds_set_external_master
untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Ketika mysql.rds_set_external_master
dipanggil, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Contoh
Ketika dijalankan pada instans SQL DB Saya, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS
call mysql.rds_set_external_master( 'Externaldb.some.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 1);
Mengonfigurasi instance RDSMy SQL My DB untuk menjadi replika baca dari instance SQL My running eksternal Amazon. RDS
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 (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya berjalan eksternal ke Amazon RDS untuk menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. 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 SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
replication_user_password
-
Kata sandi ID pengguna yang ditentukan dalam
replication_user_name
. -
mysql_binary_log_file_name
-
Nama log biner pada instans basis data 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
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
SOURCE_SSL_VERIFY_SERVER_CERT
tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_set_external_source
. Prosedur ini harus dijalankan pada instans for My SQL DB untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar Amazon. RDS
Sebelum menjalankanmysql.rds_set_external_source
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan replication_user_name
dan replication_user_password
nilai yang menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut sebuah contoh.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '
password
';catatan
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
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'@'mydomain.com';
Untuk menggunakan replikasi terenkripsi, konfigurasikan instance database sumber untuk menggunakan koneksi. SSL Selain itu, impor sertifikat otoritas sertifikat, sertifikat klien, dan kunci klien ke dalam instans DB atau klaster DB menggunakan prosedur mysql.rds_import_binlog_ssl_material.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Setelah menelepon mysql.rds_set_external_source
untuk mengonfigurasi instance for My SQL DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Ketika mysql.rds_set_external_source
dipanggil, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Contoh
Ketika dijalankan pada instance for My SQL DB, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My running SQL external to Amazon. RDS
call mysql.rds_set_external_source( 'Externaldb.some.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 1);
mysql.rds_set_external_master_with_auto_position (untuk versi utama saya 8.0 dan lebih rendah) RDS SQL
Mengonfigurasi instance RDS for My SQL DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Prosedur ini juga mengonfigurasi replikasi dan replikasi yang tertunda berdasarkan 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_master_with_auto_position (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya berjalan eksternal ke Amazon RDS untuk menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. 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 SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
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 detik minimum untuk menunda replikasi dari instans basis data sumber.
Batas untuk parameter ini adalah satu hari (86.400 detik).
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_set_external_master_with_auto_position
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar AmazonRDS.
Prosedur ini didukung untuk semua versi My SQL 5.7, dan RDS RDS untuk versi SQL 8.0.26 Saya dan versi 8.0 yang lebih tinggi.
Sebelum menjalankanmysql.rds_set_external_master_with_auto_position
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan nilai untuk replication_user_name
danreplication_user_password
. Nilai-nilai ini harus menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
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'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Sebelum Anda meneleponmysql.rds_set_external_master_with_auto_position
, 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_master_with_auto_position
untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Saat Anda meneleponmysql.rds_set_external_master_with_auto_position
, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
di dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Untuk pemulihan bencana, Anda dapat menggunakan prosedur ini dengan prosedur tersimpan atau . Untuk meneruskan perubahan ke replika baca yang tertunda ke waktu sebelum bencana, Anda dapat menjalankan prosedur mysql.rds_set_external_master_with_auto_position
. Setelah prosedur mysql.rds_start_replication_until_gtid
menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Untuk menggunakan mysql.rds_rds_start_replication_until_gtid
prosedur, replikasi GTID berbasis harus diaktifkan. Untuk melewati transaksi GTID berbasis tertentu yang diketahui menyebabkan bencana, Anda dapat menggunakan prosedur tersimpan. Untuk informasi lebih lanjut tentang bekerja dengan replikasi GTID berbasis, lihatMenggunakan replikasi GTID berbasis.
Contoh
Ketika dijalankan pada instans SQL DB Saya, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik) pada instance My SQL DB. Perubahan dari instance database SQL sumber saya yang berjalan eksternal ke Amazon RDS tidak diterapkan pada replika baca instans SQL DB Saya setidaknya selama satu jam.
call mysql.rds_set_external_master_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 1, 3600);
mysql.rds_set_external_source_with_auto_position (untuk versi utama saya 8.4 dan lebih tinggi) RDS SQL
Mengonfigurasi instance RDS for My SQL DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Prosedur ini juga mengonfigurasi replikasi dan replikasi yang tertunda berdasarkan 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 (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya berjalan eksternal ke Amazon RDS untuk menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. 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 SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
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
SOURCE_SSL_VERIFY_SERVER_CERT
tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi. -
delay
-
Jumlah detik minimum untuk menunda replikasi dari instans basis data sumber.
Batas untuk parameter ini adalah satu hari (86.400 detik).
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_set_external_source_with_auto_position
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar AmazonRDS.
Sebelum menjalankanmysql.rds_set_external_source_with_auto_position
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan nilai untuk replication_user_name
danreplication_user_password
. Nilai-nilai ini harus menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
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'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Sebelum Anda meneleponmysql.rds_set_external_source_with_auto_position
, 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
untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Saat Anda meneleponmysql.rds_set_external_source_with_auto_position
, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
di dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Untuk pemulihan bencana, Anda dapat menggunakan prosedur ini dengan prosedur tersimpan atau . Untuk meneruskan perubahan ke replika baca yang tertunda ke waktu sebelum bencana, Anda dapat menjalankan prosedur mysql.rds_set_external_source_with_auto_position
. Setelah prosedur mysql.rds_start_replication_until_gtid
menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Untuk menggunakan mysql.rds_rds_start_replication_until_gtid
prosedur, replikasi GTID berbasis harus diaktifkan. Untuk melewati transaksi GTID berbasis tertentu yang diketahui menyebabkan bencana, Anda dapat menggunakan prosedur tersimpan. Untuk informasi lebih lanjut tentang bekerja dengan replikasi GTID berbasis, lihatMenggunakan replikasi GTID berbasis.
Contoh
Ketika dijalankan pada instans SQL DB Saya, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik) pada instance My SQL DB. Perubahan dari instance database SQL sumber saya yang berjalan eksternal ke Amazon RDS tidak diterapkan pada replika baca instans SQL DB Saya setidaknya selama satu jam.
call mysql.rds_set_external_source_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 1, 3600);
mysql.rds_set_external_master_with_delay (untuk MariaDB dan untuk versi utama saya 8.0 dan lebih rendah) RDS RDS SQL
Mengonfigurasi instans RDS for My SQL DB menjadi replika baca dari instance My SQL running eksternal ke Amazon RDS dan mengonfigurasi replikasi yang tertunda.
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_master_with_delay(
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya yang berjalan eksternal ke Amazon RDS yang akan menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. Jika konfigurasi jaringan Anda menyertakan replikasi SSH port yang mengonversi nomor port, tentukan nomor port yang diekspos oleh. SSH
-
replication_user_name
-
ID pengguna dengan
REPLICATION CLIENT
danREPLICATION SLAVE
izin pada SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
replication_user_password
-
Kata sandi ID pengguna yang ditentukan dalam
replication_user_name
. -
mysql_binary_log_file_name
-
Nama log biner pada Instans basis data 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 detik minimum untuk menunda replikasi dari instans basis data sumber.
Batas untuk parameter ini adalah satu hari (86.400 detik).
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_set_external_master_with_delay
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar AmazonRDS.
Sebelum menjalankanmysql.rds_set_external_master_with_delay
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan nilai untuk replication_user_name
danreplication_user_password
. Nilai-nilai ini harus menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
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'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Setelah menelepon mysql.rds_set_external_master_with_delay
untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Saat Anda meneleponmysql.rds_set_external_master_with_delay
, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
di dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Untuk pemulihan bencana, Anda dapat menggunakan prosedur ini dengan prosedur tersimpan atau . Untuk meneruskan perubahan ke replika baca yang tertunda ke waktu sebelum bencana, Anda dapat menjalankan prosedur mysql.rds_set_external_master_with_delay
. Setelah prosedur mysql.rds_start_replication_until
menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Untuk menggunakan mysql.rds_rds_start_replication_until_gtid
prosedur, replikasi GTID berbasis harus diaktifkan. Untuk melewati transaksi GTID berbasis tertentu yang diketahui menyebabkan bencana, Anda dapat menggunakan prosedur tersimpan. Untuk informasi lebih lanjut tentang bekerja dengan replikasi GTID berbasis, lihatMenggunakan replikasi GTID berbasis.
mysql.rds_set_external_master_with_delay
Prosedur ini tersedia dalam versi RDS untuk MySQL:
-
Versi SQL 8.0.26 saya dan versi 8.0 yang lebih tinggi
-
Semua versi 5.7
Contoh
Ketika dijalankan pada instans SQL DB Saya, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik) pada instance My SQL DB. Perubahan dari instance database SQL sumber saya yang berjalan eksternal ke Amazon RDS tidak diterapkan pada replika baca instans SQL DB Saya setidaknya selama satu jam.
call mysql.rds_set_external_master_with_delay( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 'mysql-bin-changelog.000777', 120, 1, 3600);
mysql.rds_set_external_source_with_delay (untuk versi utama saya 8.4 dan lebih tinggi) RDS SQL
Mengonfigurasi instans RDS for My SQL DB menjadi replika baca dari instance My SQL running eksternal ke Amazon RDS dan mengonfigurasi replikasi yang tertunda.
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 (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Nama host atau alamat IP dari SQL instans Saya yang berjalan eksternal ke Amazon RDS yang akan menjadi instance database sumber.
-
host_port
-
Port yang digunakan oleh SQL instans Saya yang berjalan eksternal RDS ke Amazon untuk dikonfigurasi sebagai instance database sumber. Jika konfigurasi jaringan Anda menyertakan replikasi SSH port yang mengonversi nomor port, tentukan nomor port yang diekspos oleh. SSH
-
replication_user_name
-
ID pengguna dengan
REPLICATION CLIENT
danREPLICATION SLAVE
izin pada SQL instans Saya yang berjalan di luar AmazonRDS. Kami menyarankan Anda memberikan akun yang digunakan sepenuhnya untuk replikasi dengan instans eksternal. -
replication_user_password
-
Kata sandi ID pengguna yang ditentukan dalam
replication_user_name
. -
mysql_binary_log_file_name
-
Nama log biner pada Instans basis data 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
SOURCE_SSL_VERIFY_SERVER_CERT
tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi. -
delay
-
Jumlah detik minimum untuk menunda replikasi dari instans basis data sumber.
Batas untuk parameter ini adalah satu hari (86.400 detik).
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_set_external_source_with_delay
. Prosedur ini harus dijalankan pada instans SQL DB Saya untuk dikonfigurasi sebagai replika baca SQL instance Saya yang berjalan di luar AmazonRDS.
Sebelum menjalankanmysql.rds_set_external_source_with_delay
, Anda harus mengonfigurasi instance My SQL running external to Amazon RDS untuk menjadi instance database sumber. Untuk menyambung ke SQL instans Saya yang berjalan eksternal ke AmazonRDS, Anda harus menentukan nilai untuk replication_user_name
danreplication_user_password
. Nilai-nilai ini harus menunjukkan pengguna replikasi yang memiliki REPLICATION CLIENT
dan REPLICATION SLAVE
izin pada instance eksternal My. SQL
Untuk mengkonfigurasi instance eksternal My SQL sebagai instance database sumber
-
Menggunakan SQL klien Saya pilihan Anda, sambungkan ke instance eksternal My SQL dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
Pada contoh eksternal MySQL, berikan
REPLICATION CLIENT
dan hakREPLICATION SLAVE
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'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal.
catatan
Kami menyarankan Anda menggunakan replika baca untuk mengelola replikasi antara dua instans Amazon RDS DB bila memungkinkan. Saat Anda melakukannya, sebaiknya hanya gunakan replika baca ini dan prosedur tersimpan terkait replikasi lainnya. Praktik ini memungkinkan topologi replikasi yang lebih kompleks antara instans Amazon RDS DB. Kami menawarkan prosedur tersimpan ini terutama untuk mengaktifkan replikasi dengan SQL instans Saya yang berjalan di luar Amazon. RDS Untuk informasi tentang mengelola replikasi antar instans Amazon RDS DB, lihat. Menggunakan replika baca instans DB
Setelah menelepon mysql.rds_set_external_source_with_delay
untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca, Anda dapat memanggil mysql.rds_start_replication replika baca untuk memulai proses replikasi. Anda dapat memanggil untuk menghapus konfigurasi replika baca.
Saat Anda meneleponmysql.rds_set_external_source_with_delay
, Amazon RDS mencatat waktu, pengguna, dan tindakan set master
di dalam mysql.rds_history
dan mysql.rds_replication_status
tabel.
Untuk pemulihan bencana, Anda dapat menggunakan prosedur ini dengan prosedur tersimpan atau . Untuk meneruskan perubahan ke replika baca yang tertunda ke waktu sebelum bencana, Anda dapat menjalankan prosedur mysql.rds_set_external_source_with_delay
. Setelah prosedur mysql.rds_start_replication_until
menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Untuk menggunakan mysql.rds_rds_start_replication_until_gtid
prosedur, replikasi GTID berbasis harus diaktifkan. Untuk melewati transaksi GTID berbasis tertentu yang diketahui menyebabkan bencana, Anda dapat menggunakan prosedur tersimpan. Untuk informasi lebih lanjut tentang bekerja dengan replikasi GTID berbasis, lihatMenggunakan replikasi GTID berbasis.
Contoh
Ketika dijalankan pada instans SQL DB Saya, contoh berikut mengonfigurasi instans DB menjadi replika baca dari instance My SQL running eksternal ke Amazon. RDS Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik) pada instance My SQL DB. Perubahan dari instance database SQL sumber saya yang berjalan eksternal ke Amazon RDS tidak diterapkan pada replika baca instans SQL DB Saya setidaknya selama satu jam.
call mysql.rds_set_external_source_with_delay( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 'mysql-bin-changelog.000777', 120, 1, 3600);
mysql.rds_set_external_source_gtid_purged
Menetapkan variabel sistem gtid_purgedgtid_purged
Nilai diperlukan untuk mengonfigurasi replikasi GTID berbasis untuk melanjutkan replikasi menggunakan penentuan posisi otomatis.
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_gtid_purged(
server_uuid
,start_pos
,end_pos
);
Parameter
-
server_uuid
-
Pengidentifikasi unik universal (UUID) dari server eksternal dari mana GTID rentang sedang diimpor.
-
start_pos
-
Posisi awal GTID rentang yang akan ditetapkan.
-
end_pos
-
Posisi akhir dari GTID rentang yang akan ditetapkan.
Catatan penggunaan
mysql.rds_set_external_source_gtid_purged
Prosedur ini hanya tersedia dengan versi SQL 8.0.37 Saya dan versi 8.0 yang lebih tinggi.
Hubungi mysql.rds_set_external_source_gtid_purged
sebelum Anda meneleponmysql.rds_set_external_master_with_auto_position (untuk versi utama saya 8.0 dan lebih rendah) RDS SQL,mysql.rds_set_external_source_with_auto_position (untuk versi utama saya 8.4 dan lebih tinggi) RDS SQL, ataumysql.rds_set_external_source_with_auto_position_for_channel.
Sebelum Anda meneleponmysql.rds_set_external_source_gtid_purged
, pastikan untuk menghentikan semua saluran replikasi aktif untuk database. Untuk memeriksa status saluran, gunakan SQL pernyataan SHOW REPLICA STATUS
Saya. Untuk menghentikan replikasi pada saluran, hubungimysql.rds_stop_replication_for_channel.
GTIDRentang yang Anda tentukan harus merupakan superset dari GTID_PURGED
nilai yang ada. Prosedur tersimpan ini memeriksa nilai-nilai berikut sebelum menetapkan GTID_PURGED
nilai:
-
server_uuid
Itu valid. -
Nilai
start_pos
lebih besar dari0
dan kurang dari nilaiend_pos
. -
Nilai
end_pos
lebih besar dari atau sama dengan nilaistart_pos
.
Jika GTID set di server eksternal Anda berisi beberapa rentang nilai, pertimbangkan untuk memanggil prosedur beberapa kali dengan nilai GTID set yang berbeda.
Saat Anda meneleponmysql.rds_set_external_source_gtid_purged
, Amazon RDS mencatat waktu, pengguna, dan tindakan set gtid_purged
dalam mysql.rds_history
tabel.
Jika Anda tidak menetapkan gtid_purged
nilai dengan tepat untuk cadangan yang Anda gunakan untuk replikasi, ini dapat mengakibatkan transaksi hilang atau diduplikasi selama proses replikasi. Lakukan langkah-langkah berikut untuk menetapkan gtid_purged
nilai yang benar.
Untuk mengatur nilai gtid_purged pada replika
-
Tentukan titik waktu atau file cadangan spesifik yang akan digunakan sebagai titik awal replikasi. Ini bisa berupa cadangan logis (file mysqldump) atau cadangan fisik (snapshot Amazon). RDS
-
Tentukan
gtid_executed
nilainya. Nilai ini mewakili himpunan semua GTIDs yang dilakukan di server. Untuk mengambil nilai ini, pada instance sumber, lakukan salah satu hal berikut:-
Jalankan SQL pernyataan
SELECT @@GLOBAL.GTID_EXECUTED;
pada saat cadangan diambil. -
Jika ada opsi terkait yang disertakan dalam utilitas cadangan masing-masing, ekstrak nilai dari file cadangan. Untuk informasi selengkapnya, lihat set-gtid-purged
opsi di SQL Dokumentasi saya.
-
-
Tentukan
gtid_purged
nilai yang akan digunakan untuk panggilan kemysql.rds_set_external_source_gtid_purged
.gtid_purged
Nilai harus mencakup semua GTIDs yang dieksekusi pada instance sumber dan tidak lagi diperlukan untuk replikasi. Oleh karena itu,gtid_purged
nilai harus menjadi bagian darigtid_executed
nilai yang Anda ambil pada langkah sebelumnya.Untuk menentukan
gtid_purged
nilainya, identifikasi GTIDs yang tidak disertakan dalam cadangan dan tidak lagi diperlukan untuk replikasi. Anda dapat melakukannya dengan menganalisis log biner atau dengan menggunakan alat seperti mysqlbinlog untuk menemukan GTIDs yang dibersihkan dari log biner.Atau, jika Anda memiliki cadangan konsisten yang mencakup semua log biner hingga titik cadangan, Anda dapat mengatur
gtid_purged
nilainya agar sama dengangtid_executed
nilai pada titik cadangan. -
Setelah Anda menentukan
gtid_purged
nilai yang sesuai yang konsisten dengan cadangan Anda, panggil prosedurmysql.rds_set_external_source_gtid_purged
tersimpan pada instans My SQL DB Anda RDS untuk menetapkan nilainya.
Contoh
Ketika dijalankan pada instance My SQL DB, contoh berikut menetapkan GTID rentang dari SQL server Saya eksternal dengan UUID12345678-abcd-1234-efgh-123456789abc
, posisi awal1
, dan posisi akhir100
. GTIDNilai yang dihasilkan diatur ke+12345678-abcd-1234-efgh-123456789abc:1-100
.
CALL mysql.rds_set_external_source_gtid_purged('12345678-abcd-1234-efgh-123456789abc', 1, 100);
Menetapkan mode replikasi untuk didasarkan pada posisi file log biner atau pada pengidentifikasi transaksi global ()GTIDs.
Sintaks
CALL mysql.rds_set_master_auto_position (
auto_position_mode
);
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.
-
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_set_master_auto_position
.
Prosedur ini didukung untuk semua untuk versi SQL 5.7 Saya dan RDS untuk versi SQL 8.0.26 Saya dan RDS versi 8.0 yang lebih tinggi.
Menetapkan mode replikasi untuk didasarkan pada posisi file log biner atau pada pengidentifikasi transaksi global ()GTIDs.
Sintaks
CALL mysql.rds_set_source_auto_position (
auto_position_mode
);
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.
-
Catatan penggunaan
Pengguna administratif harus menjalankan prosedur mysql.rds_set_source_auto_position
.
mysql.rds_set_source_delay
Mengatur jumlah detik minimum untuk menunda replikasi dari instans basis data sumber ke replika baca saat ini. Gunakan prosedur ini saat Anda tersambung ke replika baca untuk menunda replikasi dari instans basis data sumbernya.
Sintaksis
CALL mysql.rds_set_source_delay(
delay
);
Parameter
-
delay
-
Jumlah detik minimum untuk menunda replikasi dari instans basis data sumber.
Batas untuk parameter ini adalah satu hari (86.400 detik).
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_set_source_delay
.
Untuk pemulihan bencana, Anda dapat menggunakan prosedur ini dengan prosedur tersimpan atau . Untuk meneruskan perubahan ke replika baca yang tertunda ke waktu sebelum bencana, Anda dapat menjalankan prosedur mysql.rds_set_source_delay
. Setelah prosedur mysql.rds_start_replication_until
atau mysql.rds_start_replication_until_gtid
menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Untuk menggunakan mysql.rds_rds_start_replication_until_gtid
prosedur, replikasi GTID berbasis harus diaktifkan. Untuk melewati transaksi GTID berbasis tertentu yang diketahui menyebabkan bencana, Anda dapat menggunakan prosedur tersimpan. Untuk informasi lebih lanjut tentang replikasi GTID berbasis, lihatMenggunakan replikasi GTID berbasis.
mysql.rds_set_source_delay
Prosedur ini tersedia dalam versi RDS untuk MySQL:
-
Semua RDS untuk versi SQL 8.4 Saya
-
Versi SQL 8.0.26 saya dan versi 8.0 yang lebih tinggi
-
Semua versi 5.7
Contoh
Untuk menunda replikasi dari instans basis data sumber ke replika baca saat ini setidaknya selama satu jam (3.600 detik), Anda dapat memanggil mysql.rds_set_source_delay
dengan parameter berikut:
CALL mysql.rds_set_source_delay(3600);
mysql.rds_skip_repl_error
Melewatkan dan menghapus kesalahan replikasi pada replika baca My SQL DB.
Sintaks
CALL mysql.rds_skip_repl_error;
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_skip_repl_error
pada replika baca. Untuk informasi selengkapnya tentang prosedur ini, lihat Memanggil prosedur mysql.rds_skip_repl_error.
Untuk menentukan apakah ada kesalahan, jalankan SQL SHOW REPLICA STATUS\G
perintah Saya. Jika kesalahan replikasi tidak parah, Anda dapat menjalankan mysql.rds_skip_repl_error
untuk melewati kesalahan tersebut. Jika ada beberapa kesalahan, mysql.rds_skip_repl_error
akan menghapus kesalahan pertama, lalu memberi peringatan bahwa ada kesalahan lain. Anda kemudian dapat menggunakan SHOW REPLICA STATUS\G
untuk menentukan tindakan yang benar untuk kesalahan berikutnya. Untuk informasi tentang nilai yang dikembalikan, lihat SHOWREPLICASTATUSpernyataan
Untuk informasi selengkapnya tentang menangani kesalahan replikasi dengan AmazonRDS, lihat. Memecahkan masalah replika SQL baca saya
Kesalahan replikasi terhenti
Ketika memanggil prosedur mysql.rds_skip_repl_error
, Anda mungkin menerima pesan kesalahan yang menyatakan bahwa replika tidak berfungsi atau dinonaktifkan.
Pesan kesalahan ini muncul jika Anda menjalankan prosedur pada instans primer, bukan replika baca. Anda harus menjalankan prosedur ini pada replika baca agar prosedur berfungsi.
Pesan kesalahan ini mungkin juga muncul jika Anda menjalankan prosedur pada replika baca, tetapi replikasi tidak berhasil dimulai ulang.
Jika Anda perlu melewati sejumlah besar kesalahan, lag replikasi dapat meningkat hingga melampaui periode retensi default untuk file log biner (binlog). Dalam hal ini, Anda mungkin mengalami kesalahan fatal karena file binlog dibersihkan sebelum diputar ulang pada replika baca. Penghapusan ini menyebabkan replikasi berhenti, dan Anda tidak dapat lagi memanggil perintah mysql.rds_skip_repl_error
untuk melewati kesalahan replikasi.
Anda dapat memitigasi masalah ini dengan meningkatkan jumlah jam retensi file binlog tersebut pada instans basis data sumber Anda. Setelah meningkatkan waktu retensi binlog, Anda dapat memulai ulang replikasi dan memanggil perintah mysql.rds_skip_repl_error
sesuai kebutuhan.
Untuk mengatur waktu retensi binlog, gunakan prosedur mysql.rds_set_configuration dan tentukan parameter konfigurasi 'binlog retention hours'
bersama dengan jumlah jam untuk mempertahankan file binlog di klaster DB. Contoh berikut menetapkan periode penyimpanan file binlog menjadi 48 jam.
CALL mysql.rds_set_configuration('binlog retention hours', 48);
mysql.rds_start_replication
Memulai replikasi dari instance RDSMy SQL DB My DB cluster. SQL
catatan
Sintaks
CALL mysql.rds_start_replication;
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_start_replication
.
Untuk mengimpor data dari instance SQL eksternal Saya ke AmazonRDS, panggil mysql.rds_start_replication
replika baca untuk memulai proses replikasi setelah Anda memanggil atau membuat konfigurasi replikasi. Untuk informasi selengkapnya, lihat Memulihkan cadangan ke Amazon RDS untuk instans SQL DB Saya.
Untuk mengekspor data ke instance SQL eksternal Saya ke AmazonRDS, panggil mysql.rds_start_replication
dan mysql.rds_stop_replication
pada replika baca untuk mengontrol beberapa tindakan replikasi, seperti membersihkan log biner. Untuk informasi selengkapnya, lihat Mengekspor data dari instans My SQL DB dengan menggunakan replikasi.
Anda juga dapat memanggil mysql.rds_start_replication
pada replika baca untuk memulai kembali proses replikasi apa pun yang sebelumnya Anda hentikan dengan memanggil mysql.rds_stop_replication
. Untuk informasi selengkapnya, lihat Menggunakan replika baca instans DB.
Memulai replikasi dari instance RDSMy SQL DB Aurora dan menghentikan replikasi di lokasi file log biner yang ditentukan.
Sintaks
CALL mysql.rds_start_replication_until (
replication_log_file
,replication_stop_point
);
Parameter
-
replication_log_file
-
Nama log biner pada instans basis data sumber yang berisi informasi replikasi.
-
replication_stop_point
-
Lokasi di log biner
replication_log_file
tempat replikasi akan berhenti.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_until
.
mysql.rds_start_replication_until
Prosedur ini tersedia dalam versi RDS untuk MySQL:
-
Semua RDS untuk versi SQL 8.4 Saya
-
Versi SQL 8.0.26 saya dan versi 8.0 yang lebih tinggi
-
Semua versi 5.7
Anda dapat menggunakan prosedur ini dengan replikasi tertunda untuk pemulihan bencana. Jika Anda telah mengonfigurasi replikasi tertunda, Anda dapat menggunakan prosedur ini untuk meneruskan perubahan ke replika baca tertunda ke waktu sebelum bencana terjadi. Setelah prosedur ini menghentikan replikasi, Anda dapat mempromosikan replika baca menjadi instans DB primer baru dengan menggunakan petunjuk di Mempromosikan replika baca menjadi instans DB mandiri.
Anda dapat mengonfigurasi replikasi tertunda menggunakan prosedur tersimpan berikut ini:
Nama file yang ditentukan untuk parameter replication_log_file
harus cocok dengan nama file binlog instans basis data sumber.
Jika parameter replication_stop_point
menentukan lokasi perhentian di masa lalu, replikasi akan segera dihentikan.
Contoh
Contoh berikut memulai replikasi dan mereplikasi perubahan hingga mencapai lokasi 120
di file log biner mysql-bin-changelog.000777
.
call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);
mysql.rds_stop_replication
Menghentikan replikasi dari instance My SQL DB.
Sintaks
CALL mysql.rds_stop_replication;
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_stop_replication
.
Jika Anda mengonfigurasi replikasi untuk mengimpor data dari instance My SQL running eksternal ke AmazonRDS, Anda memanggil mysql.rds_stop_replication
replika baca untuk menghentikan proses replikasi setelah impor selesai. Untuk informasi selengkapnya, lihat Memulihkan cadangan ke Amazon RDS untuk instans SQL DB Saya.
Jika Anda mengonfigurasi replikasi untuk mengekspor data ke instance SQL eksternal Saya ke AmazonRDS, Anda memanggil mysql.rds_start_replication
dan mysql.rds_stop_replication
menggunakan replika baca untuk mengontrol beberapa tindakan replikasi, seperti membersihkan log biner. Untuk informasi selengkapnya, lihat Mengekspor data dari instans My SQL DB dengan menggunakan replikasi.
Anda juga dapat menggunakan mysql.rds_stop_replication
untuk menghentikan replikasi antara dua instans Amazon RDS DB. Anda biasanya menghentikan replikasi untuk menjalankan operasi berjangka panjang pada replika baca, seperti membuat indeks besar pada replika baca. Anda dapat memulai kembali proses replikasi apa pun yang sebelumnya Anda hentikan dengan memanggil mysql.rds_start_replication pada replika baca. Untuk informasi selengkapnya, lihat Menggunakan replika baca instans DB.