Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal
Anda dapat mengatur replikasi antara instans DB RDS untuk Saya SQL atau MariaDB dan instance My SQL atau MariaDB yang berada di luar Amazon menggunakan replikasi file log biner. RDS
Topik
Sebelum Anda mulai
Anda dapat mengonfigurasi replikasi menggunakan posisi file log biner transaksi yang direplikasi.
Izin yang diperlukan untuk memulai replikasi pada instans Amazon RDS DB dibatasi dan tidak tersedia untuk pengguna RDS master Amazon Anda. Karena itu, pastikan Anda menggunakan mysql.rds_start_replication perintah Amazon RDS atau, dan untuk mengatur replikasi antara database langsung dan RDS database Amazon Anda.
Untuk mengatur format logging biner untuk database Saya SQL atau MariaDB, perbarui parameternya. binlog_format
Jika instans DB Anda menggunakan grup parameter instans DB default, buat grup parameter DB baru untuk memodifikasi binlog_format
parameter. Di MariaDB dan SQL My 8.0 dan versi yang lebih rendah, defaultnya. binlog_format
MIXED
Namun, Anda juga dapat mengatur binlog_format
ke ROW
atau STATEMENT
jika Anda memerlukan format log biner (binlog) tertentu. Boot ulang instans DB Anda agar perubahan diterapkan. Di My SQL 8.4 dan versi yang lebih tinggi, binlog_format
default ke. ROW
Untuk informasi tentang mengatur parameter binlog_format
, lihat Mengkonfigurasi biner saya. Untuk informasi tentang implikasi berbagai jenis SQL replikasi Saya, lihat Keuntungan dan kerugian replikasi berbasis pernyataan dan berbasis baris dalam dokumentasi Saya
Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal
Ikuti panduan ini saat menyiapkan instans sumber eksternal dan replika di AmazonRDS:
Pantau peristiwa failover untuk instans Amazon RDS DB yang merupakan replika Anda. Jika terjadi failover, maka instans DB yang merupakan replika Anda dapat dibuat ulang pada host baru dengan alamat jaringan yang berbeda. Untuk informasi tentang cara pemonitoran peristiwa failover, lihat Bekerja dengan pemberitahuan RDS acara Amazon.
Pertahankan binlog pada instans sumber Anda hingga Anda memverifikasi bahwa binlog tersebut telah diterapkan ke replika. Dengan mempertahankannya, Anda dapat memulihkan instans sumber Anda jika terjadi kegagalan.
Aktifkan pencadangan otomatis pada instans Amazon RDS DB Anda. Dengan mengaktifkan pencadangan otomatis, Anda dapat memulihkan replika ke titik waktu tertentu jika Anda perlu menyinkronkan ulang instans sumber dan replika Anda. Untuk informasi tentang pencadangan dan point-in-time pemulihan, lihat. Mencadangkan, memulihkan, dan mengekspor data
Mengonfigurasi replikasi file log biner dengan Instans sumber eksternal
-
Jadikan sumber instance My SQL atau MariaDB hanya-baca.
mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
-
Jalankan
SHOW MASTER STATUS
perintah pada sumber My SQL atau MariaDB instance untuk menentukan lokasi binlog.Anda menerima output yang mirip dengan contoh berikut.
File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
-
Salin database dari instance eksternal ke instans Amazon RDS DB menggunakan
mysqldump
. Untuk basis data yang sangat besar, Anda mungkin ingin menggunakan prosedur di Mengimpor data ke Amazon RDS MariaDB atau SQL database Saya dengan waktu henti yang dikurangi.Untuk Linux, macOS, atau Unix:
mysqldump --databases
database_name
\ --single-transaction \ --compress \ --order-by-primary \ -ulocal_user
\ -plocal_password
| mysql \ --host=hostname \ --port=3306 \ -uRDS_user_name
\ -pRDS_password
Untuk Windows:
mysqldump --databases
database_name
^ --single-transaction ^ --compress ^ --order-by-primary ^ -ulocal_user
^ -plocal_password
| mysql ^ --host=hostname ^ --port=3306 ^ -uRDS_user_name
^ -pRDS_password
catatan
Pastikan tidak ada spasi di antara opsi
-p
dan sandi yang dimasukkan.Untuk menentukan nama host, nama pengguna, port, dan kata sandi untuk terhubung ke instans Amazon RDS DB Anda
--host
--user (-u)
, gunakan-p
opsi,--port
dan dalammysql
perintah. Nama host adalah nama Domain Name Service (DNS) dari titik akhir instans Amazon RDS DB, misalnyamyinstance.123456789012.us-east-1.rds.amazonaws.com
. Anda dapat menemukan nilai titik akhir dalam detail instans di AWS Management Console. -
Jadikan sumber My SQL atau MariaDB instance dapat ditulis lagi.
mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
Untuk informasi selengkapnya tentang membuat cadangan untuk digunakan dengan replikasi, lihat dokumentasi Saya. SQL
-
Di dalam AWS Management Console, tambahkan alamat IP server yang meng-host database eksternal ke grup keamanan virtual private cloud (VPC) untuk instans Amazon RDS DB. Untuk informasi selengkapnya tentang memodifikasi grup VPC keamanan, lihat Grup keamanan untuk Anda VPC di Panduan Pengguna Amazon Virtual Private Cloud.
Alamat IP dapat berubah jika kondisi berikut terpenuhi:
-
Anda menggunakan alamat IP publik untuk komunikasi antara instans sumber eksternal dan instans DB.
-
Instans sumber eksternal dihentikan dan dimulai ulang.
Jika semua kondisi ini terpenuhi, verifikasikan alamat IP sebelum menambahkannya.
Anda mungkin juga perlu mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP instans Amazon RDS DB Anda. Anda melakukan ini agar jaringan lokal Anda dapat berkomunikasi dengan instance My SQL atau MariaDB eksternal Anda. Untuk menemukan alamat IP instans Amazon RDS DB, gunakan
host
perintah.host
db_instance_endpoint
Nama host adalah DNS nama dari titik akhir instans Amazon RDS DB.
-
-
Menggunakan klien pilihan Anda, hubungkan ke instans eksternal dan buat pengguna untuk digunakan untuk replikasi. Gunakan akun ini semata-mata untuk replikasi dan batasi hanya untuk domain Anda guna meningkatkan keamanan. Berikut adalah contohnya.
CREATE USER '
repl_user'@'mydomain.com
' IDENTIFIED BY 'password
';catatan
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Untuk instans eksternal, berikan hak akses
REPLICATION CLIENT
danREPLICATION SLAVE
kepada pengguna replikasi Anda. Misalnya, untuk memberikan hak aksesREPLICATION CLIENT
danREPLICATION SLAVE
pada semua basis data untuk pengguna 'repl_user
' bagi domain Anda, jalankan perintah berikut.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '
repl_user'@'mydomain.com
'; -
Jadikan instans Amazon RDS DB sebagai replika. Untuk melakukannya, pertama-tama sambungkan ke instans Amazon RDS DB sebagai pengguna utama. Kemudian mengidentifikasi database eksternal Saya SQL atau MariaDB sebagai contoh sumber dengan menggunakan perintah or. Gunakan nama file log master dan posisi log master yang Anda tentukan pada langkah 2. Perintah berikut adalah contohnya.
Saya SQL 8.4
CALL mysql.rds_set_external_source ('
mysourceserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,1
);MariaDB dan My 8.0 dan 5.7 SQL
CALL mysql.rds_set_external_master ('
mymasterserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,1
);catatan
On RDS for MySQL, Anda dapat memilih untuk menggunakan replikasi tertunda dengan menjalankan prosedur mysql.rds_set_external_source_with_delay (untuk versi utama saya 8.4 dan lebih tinggi) RDS SQL atau mysql.rds_set_external_master_with_delay (untuk MariaDB dan untuk versi utama saya 8.0 dan lebih rendah) RDS RDS SQL disimpan sebagai gantinya. On RDS for MySQL, salah satu alasan untuk menggunakan replikasi tertunda adalah untuk mengaktifkan pemulihan bencana dengan prosedur yang disimpan. Saat ini, RDS untuk MariaDB mendukung replikasi yang tertunda tetapi tidak mendukung prosedur.
mysql.rds_start_replication_until
-
Pada instans Amazon RDS DB, keluarkan mysql.rds_start_replication perintah untuk memulai replikasi.
CALL mysql.rds_start_replication;