Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengimpor data ke database Amazon RDS for MySQL dengan downtime yang dikurangi
Dalam beberapa kasus, Anda mungkin perlu mengimpor data dari MariaDB eksternal atau database MySQL yang mendukung aplikasi langsung ke RDS untuk instance MariaDB, RDS untuk MySQL DB instance, atau RDS untuk MySQL Multi-AZ DB cluster. Gunakan prosedur berikut untuk meminimalkan dampak terhadap ketersediaan aplikasi. Prosedur ini juga dapat berguna jika Anda menggunakan basis data yang sangat besar. Dengan menggunakan prosedur ini, Anda dapat mengurangi biaya impor dengan mengurangi jumlah data yang dilewatkan di seluruh jaringan AWS.
Dalam prosedur ini, Anda mentransfer salinan data database Anda ke EC2 instans Amazon dan mengimpor data ke database Amazon RDS baru. Anda kemudian menggunakan replikasi untuk membawa database Amazon RDS up-to-date dengan instans eksternal langsung Anda, sebelum mengarahkan aplikasi Anda ke database Amazon RDS. Jika instance eksternal adalah MariaDB 10.0.24 atau lebih tinggi dan instance targetnya adalah RDS untuk MariaDB, konfigurasikan replikasi MariaDB berdasarkan pengidentifikasi transaksi global (). GTIDs Jika tidak, lakukan konfigurasi pada replikasi berdasarkan koordinat log biner. Kami menyarankan replikasi berbasis GTID jika basis data eksternal Anda mendukungnya karena replikasi berbasis GTID adalah metode yang lebih andal. Untuk informasi selengkapnya, lihat Global transaction ID
catatan
Jika Anda ingin mengimpor data ke instans RDS untuk MySQL DB dan skenario Anda mendukungnya, sebaiknya pindahkan data masuk dan keluar Amazon RDS dengan menggunakan file cadangan dan Amazon S3. Untuk informasi selengkapnya, lihat Memulihkan cadangan ke instans Amazon RDS for MySQL DB.
Diagram berikut menunjukkan mengimpor database MySQL eksternal ke database MySQL di Amazon RDS.

Tugas 1: Buat salinan database yang ada
Langkah pertama dalam proses memigrasikan jumlah data yang besar ke basis data RDS for MariaDB atau RDS for MySQL dengan waktu henti minimal adalah membuat salinan data sumber.
Diagram berikut menunjukkan membuat cadangan dari database MySQL.

Anda dapat menggunakan utilitas mysqldump
untuk menciptakan sebuah pencadangan basis data dalam format SQL atau delimited-text. Di MariaDB 10.5, klien disebut mariadb-dump.mariadb-dump
mysqldump
Kami sarankan Anda melakukan uji coba dengan setiap format dalam lingkungan non-produksi untuk melihat metode mana yang dapat meminimalkan jumlah waktu untuk menjalankan mysqldump.
Kami juga menyarankan Anda mempertimbangkan mysqldump
kinerja terhadap manfaat yang ditawarkan dengan menggunakan format teks terbatas untuk memuat. Pencadangan yang menggunakan format delimited-text akan menciptakan sebuah file teks yang dipisahkan oleh tab untuk setiap tabel yang disalin ke lokasi lain. Untuk mengurangi jumlah waktu yang dibutuhkan untuk mengimpor basis data Anda, Anda dapat memuat file tersebut secara paralel menggunakan perintah LOAD DATA LOCAL INFILE
. Untuk informasi selengkapnya, lihat Memuat data untuk MariaDB atau Memuat data untuk MySQL.
Sebelum memulai operasi pencadangan, pastikan Anda mengatur opsi replikasi pada basis data MariaDB atau MySQL yang Anda salin ke Amazon RDS. Opsi replikasi mencakup pengaktifan pencatatan log biner dan pengaturan ID server yang unik. Pengaturan opsi ini menyebabkan server Anda mulai mencatat log transaksi basis data dan menyiapkannya menjadi sebuah instans replikasi sumber di lain waktu dalam proses ini.
Perhatikan rekomendasi dan pertimbangan berikut:
-
Gunakan opsi
--single-transaction
denganmysqldump
karena dapat memindahkan tahap konsisten dari basis data ke lokasi lain. Untuk memastikan file dump valid, jangan menjalankan pernyataan bahasa definisi data (DDL) saatmysqldump
sedang berjalan. Anda dapat menjadwalkan sebuah window pemeliharaan untuk operasi ini. -
Jangan sertakan skema berikut dalam filedump:
-
sys
-
performance_schema
-
information_schema
mariadb-dump
Utilitasmysqldump
dan mengecualikan skema ini secara default. -
-
Jika Anda perlu memigrasikan pengguna dan hak istimewa, pertimbangkan untuk menggunakan alat yang menghasilkan bahasa kontrol data (DCL) untuk membuatnya kembali, seperti utilitas. pt-show-grants
Mengatur opsi replikasi
-
Edit file
my.cnf
File ini biasanya terletak di bawah/etc
.sudo vi /etc/my.cnf
Tambahkan opsi
log_bin
danserver_id
ke bagian[mysqld]
. Opsilog_bin
menyediakan sebuah pengidentifikasi nama file untuk file log biner. Opsiserver_id
menyediakan pengidentifikasi unik untuk server dalam hubungan sumber-replika.Contoh berikut menunjukkan
[mysqld]
bagian diperbarui darimy.cnf
file:[mysqld] log-bin=mysql-bin server-id=1
Untuk informasi selengkapnya, lihat Mengatur Konfigurasi Sumber Replikasi
dalam dokumentasi MySQL. -
Untuk replikasi dengan cluster DB multi-AZ, atur
GTID_MODE
parameterENFORCE_GTID_CONSISTENCY
dan ke.ON
mysql> SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
mysql> SET @@GLOBAL.GTID_MODE = ON;
Pengaturan ini tidak diperlukan untuk replikasi dengan instans DB.
-
Mulai ulang layanan
mysql
.sudo service mysqld restart
Membuat salinan cadangan basis data yang sudah ada
-
Buat cadangan data Anda menggunakan
mysqldump
utilitas atau utilitas, denganmariadb-dump
menentukan format SQL atau teks terbatas.Untuk MySQL 8.0.25 dan versi yang lebih rendah,
--master-data=2
tentukan untuk membuat file cadangan yang dapat digunakan untuk memulai replikasi antar server. Untuk MySQL 8.0.26 dan versi yang lebih tinggi,--source-data=2
tentukan untuk membuat file cadangan yang dapat digunakan untuk memulai replikasi antar server. Untuk informasi selengkapnya, lihat mysqldump — Program Backup Database dalamdokumentasi MySQL. Untuk meningkatkan kinerja dan memastikan integritas data, gunakan
--order-by-primary
dan--single-transaction
opsi untukmysqldump
.Untuk menghindari menyertakan database sistem MySQL dalam cadangan, jangan gunakan
--all-databases
opsi dengan.mysqldump
Untuk informasi selengkapnya, lihat Membuat Snapshot Data Menggunakan mysqldump dalam dokumentasi MySQL. Gunakan
chmod
, jika perlu, untuk memastikan bahwa direktori tempat file cadangan dibuat dapat ditulis.penting
Pada Windows, jalankan jendela perintah sebagai administrator.
-
Untuk menghasilkan output SQL, gunakan perintah berikut:
Untuk Linux, macOS, atau Unix:
sudo mysqldump \ --databases
database_name
\ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -ulocal_user
\ -ppassword
catatan
Sebagai praktik terbaik keamanan, tentukan kredensil selain petunjuk yang ditampilkan dalam contoh.
Untuk Windows:
mysqldump ^ --databases
database_name
^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -ulocal_user
^ -ppassword
catatan
Sebagai praktik terbaik keamanan, tentukan kredensil selain petunjuk yang ditampilkan dalam contoh.
-
Untuk menghasilkan output teks terbatas, gunakan perintah berikut:
Untuk Linux, macOS, atau Unix:
sudo mysqldump \ --tab=
target_directory
\ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \database_name
\ --master-data=2 \ --single-transaction \ --order-by-primary \ -ppassword
Untuk Windows:
mysqldump ^ --tab=
target_directory
^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^database_name
^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -ppassword
catatan
Sebagai praktik terbaik keamanan, tentukan kredensil selain petunjuk yang ditampilkan dalam contoh.
Pastikan Anda membuat prosedur, pemicu, fungsi, atau peristiwa tersimpan apa pun secara manual di dalam basis data Amazon RDS Anda. Jika objek ini berada di basis data yang Anda salin, jangan sertakan saat Anda menjalankan
mysqldump
. Untuk melakukannya, sertakan argumen berikut denganmysqldump
perintah Anda:-
--routines=0
-
--triggers=0
-
--events=0
Untuk MySQL 8.0.22 dan versi yang lebih rendah dan versi MariaDB, saat Anda
mysqldump
menjalankan dan menentukan format teks terbatas, komentar akan dikembalikan.CHANGE MASTER TO
Komentar ini berisi nama dan posisi file log master. Untuk MySQL 8.0.23 dan versi yang lebih tinggi, ketika Andamysqldump
menjalankan menggunakan format teks terbatas, komentar dikembalikan.CHANGE REPLICATION SOURCE TO
Komentar ini berisi nama file log sumber dan posisi. Jika instance eksternal adalah apa pun selain MariaDB 10.0.24 dan versi yang lebih tinggi, atau MySQL 8.0.23 dan versi yang lebih tinggi, perhatikan nilai untuk dan.MASTER_LOG_FILE
MASTER_LOG_POS
Anda memerlukan nilai-nilai ini saat menyiapkan replikasi.Output berikut dikembalikan untuk versi MariaDB dan untuk MySQL 8.0.22 dan versi yang lebih rendah:
-- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
Output berikut dikembalikan untuk MySQL 8.0.23 dan versi yang lebih tinggi:
-- Position to start replication or point-in-time recovery from -- -- CHANGE SOURCE TO SOURCE_LOG_FILE='mysql-bin-changelog.000031', SOURCE_LOG_POS=107;
Untuk MySQL 8.0.22 dan versi yang lebih rendah, jika Anda menggunakan format SQL, Anda bisa mendapatkan nama file log master dan posisi di komentar di
CHANGE MASTER TO
file cadangan. Untuk MySQL 8.0.23 dan versi yang lebih tinggi, jika Anda menggunakan format SQL, Anda bisa mendapatkan nama file log sumber dan posisi di komentar diCHANGE REPLICATION SOURCE TO
file cadangan. Jika instans eksternalnya adalah MariaDB versi 10.0.24 atau yang lebih tinggi, Anda dapat memperoleh GTID pada langkah berikutnya. -
-
-
Jika instance eksternal yang Anda gunakan adalah MariaDB versi 10.0.24 atau lebih tinggi, gunakan replikasi berbasis GTID. Jalankan
SHOW MASTER STATUS
pada instance MariaDB eksternal untuk mendapatkan nama dan posisi file log biner, lalu ubah menjadi GTID dengan menjalankanBINLOG_GTID_POS
instance MariaDB eksternal.SELECT BINLOG_GTID_POS('
binary_log_file_name
',binary_log_file_position
);Perhatikan GTID kembali. Anda memerlukan GTID untuk mengkonfigurasi replikasi.
-
Kompres data yang disalin untuk mengurangi jumlah sumber daya jaringan yang dibutuhkan untuk menyalin data Anda ke basis data Amazon RDS. Catat ukuran file cadangan. Anda memerlukan informasi ini saat menentukan seberapa besar EC2 instans Amazon untuk dibuat. Setelah selesai, kompres file cadangan menggunakan GZIP atau utilitas kompresi pilihan Anda.
-
Untuk mengompres output SQL, gunakan perintah berikut:
gzip backup.sql
-
Untuk mengompres output teks terbatas, gunakan perintah berikut:
tar -zcvf backup.tar.gz
target_directory
-
Tugas 2: Buat EC2 instance Amazon dan salin database terkompresi
Menyalin file cadangan basis data terkompresi ke EC2 instans Amazon membutuhkan lebih sedikit sumber daya jaringan daripada melakukan salinan langsung data yang tidak terkompresi antar instance database. Setelah data Anda ada di Amazon EC2, Anda dapat menyalinnya dari sana langsung ke database MariaDB atau MySQL Anda. Agar Anda dapat menghemat biaya sumber daya jaringan, EC2 instans Amazon Anda harus Wilayah AWS sama dengan instans Amazon RDS DB Anda. Memiliki EC2 instans Amazon yang Wilayah AWS sama dengan database Amazon RDS Anda juga mengurangi latensi jaringan selama impor.
Diagram berikut menunjukkan menyalin cadangan database ke EC2 instance Amazon.

Untuk membuat EC2 instans Amazon dan menyalin data Anda
-
Di Wilayah AWS tempat Anda berencana untuk membuat database Amazon RDS, buat virtual private cloud (VPC), grup keamanan VPC, dan subnet VPC. Pastikan aturan masuk untuk grup keamanan VPC Anda mengizinkan alamat IP yang dibutuhkan agar aplikasi Anda dapat terhubung ke AWS. Anda dapat menentukan rentang alamat IP — misalnya, —atau grup keamanan VPC
203.0.113.0/24
lainnya. Anda dapat menggunakan konsol VPC Amazonuntuk membuat dan mengelola VPCs, subnet, dan grup keamanan. Untuk informasi selengkapnya, lihat Memulai Amazon VPC di Panduan Pengguna Amazon Virtual Private Cloud. -
Buka EC2 konsol Amazon
dan pilih Wilayah AWS untuk memuat EC2 instans Amazon dan database Amazon RDS Anda. Luncurkan EC2 instans Amazon menggunakan VPC, subnet, dan grup keamanan yang Anda buat di Langkah 1. Pastikan Anda memilih tipe instans dengan penyimpanan yang cukup untuk file cadangan basis data Anda saat tidak terkompresi. Untuk detail tentang EC2 instans Amazon, lihat Memulai Amazon EC2 di Panduan Pengguna Amazon Elastic Compute Cloud. -
Untuk terhubung ke database Amazon RDS dari EC2 instans Amazon Anda, edit grup keamanan VPC Anda. Tambahkan aturan masuk yang menentukan alamat IP pribadi instance Anda EC2 . Anda dapat menemukan alamat IP pribadi pada tab Detail pada panel Instans di jendela EC2 konsol. Untuk mengedit grup keamanan VPC dan menambahkan aturan masuk, pilih Grup Keamanan di panel navigasi EC2 konsol, pilih grup keamanan Anda, lalu tambahkan aturan masuk untuk MySQL atau Aurora yang menentukan alamat IP pribadi instans Anda. EC2 Untuk mempelajari cara menambahkan aturan masuk ke grup keamanan VPC, lihat Aturan grup keamanan di Panduan Pengguna Amazon Virtual Private Cloud.
-
Salin file cadangan basis data terkompresi dari sistem lokal Anda ke EC2 instans Amazon Anda. Gunakan
chmod
, jika perlu, untuk memastikan bahwa Anda memiliki izin menulis untuk direktori target EC2 instance Amazon. Anda dapat menggunakanscp
atau klien Secure Shell (SSH) untuk menyalin file. Perintah berikut adalahscp
perintah contoh:scp -r -i
key pair
.pem backup.sql.gz ec2-user@EC2 DNS
:/target_directory
/backup.sql.gzpenting
Saat menyalin data sensitif, pastikan untuk menggunakan protokol transfer jaringan yang aman.
-
Hubungkan ke EC2 instans Amazon Anda dan instal pembaruan terbaru dan alat klien MySQL menggunakan perintah berikut:
sudo yum update -y sudo yum install mysql -y
Untuk informasi selengkapnya, lihat Connect ke instans Linux Anda di Panduan Pengguna Amazon Elastic Compute Cloud.
penting
Contoh ini menginstal klien MySQL pada Amazon Machine Image (AMI) untuk distribusi Linux Amazon. Contoh ini tidak menginstal klien MySQL pada distribusi yang berbeda, seperti Ubuntu atau Red Hat Enterprise Linux. Untuk informasi tentang menginstal MySQL, lihat Menginstal MySQL di dokumentasi MySQL
. -
Saat terhubung ke EC2 instans Amazon Anda, dekompresi file cadangan database Anda. Perintah berikut adalah contohnya.
-
Untuk mendekompresi output SQL, gunakan perintah berikut:
gzip backup.sql.gz -d
-
Untuk mendekompresi output delimited-text, gunakan perintah berikut:
tar xzvf backup.tar.gz
-
Tugas 3: Buat database MySQL atau MariaDB dan impor data dari instans Amazon Anda EC2
Dengan membuat instance RDS untuk MariaDB DB, instans RDS untuk MySQL DB, atau cluster DB RDS untuk MySQL Multi-AZ yang sama dengan instans Amazon Anda, Anda dapat mengimpor file cadangan database Wilayah AWS dari EC2 Amazon lebih cepat daripada melalui internet. EC2
Diagram berikut menunjukkan mengimpor cadangan dari EC2 instance Amazon ke database MySQL.

Untuk membuat basis data MariaDB atau MySQL dan mengimpor data Anda
-
Tentukan kelas instans DB dan jumlah ruang penyimpanan yang dibutuhkan untuk mendukung perkiraan beban kerja untuk basis data Amazon RDS ini. Sebagai bagian dari proses ini, putuskan berapa ruang dan kapasitas pemrosesan yang memadai untuk prosedur pemuatan data Anda. Juga, putuskan apa yang diperlukan untuk menangani beban kerja produksi. Anda dapat memperkirakan ini berdasarkan ukuran dan sumber daya dari basis data MariaDB atau MySQL sumber. Untuk informasi selengkapnya, lihat DB.
-
Buat instans DB atau cluster DB multi-AZ di Wilayah AWS yang berisi EC2 instans Amazon Anda.
Untuk membuat RDS untuk MySQL Multi-AZ DB cluster, ikuti petunjuk di. Membuat cluster DB Multi-AZ untuk Amazon RDS
Untuk membuat RDS untuk MariaDB atau RDS untuk MySQL DB instance, ikuti petunjuk dan gunakan panduan berikut: Membuat instans DB Amazon RDS
-
Tentukan versi mesin DB yang kompatibel dengan instans DB sumber Anda.
-
Jika instans sumber Anda adalah MySQL 5.5.x, instans DB Amazon RDS harus MySQL.
-
Jika instans sumber Anda adalah MySQL 5.6.x atau 5.7.x, instans DB Amazon RDS harus MySQL atau MariaDB.
-
Jika instans sumber Anda adalah MySQL 8.0.x, instans DB Amazon RDS harus MySQL 8.0.x.
-
Jika instance sumber Anda adalah MySQL 8.4.x, instans Amazon RDS DB harus MySQL 8.4.x.
-
Jika instans sumber Anda adalah MariaDB 5.5 atau yang lebih tinggi, instans DB Amazon RDS harus MariaDB.
-
-
Tentukan grup keamanan virtual private cloud (VPC) dan VPC yang sama dengan instans Amazon Anda. EC2 Pendekatan ini memastikan bahwa EC2 instans Amazon Anda dan instans Amazon RDS Anda terlihat satu sama lain melalui jaringan. Pastikan instans DB Anda dapat diakses publik. Untuk mengatur replikasi dengan database sumber Anda seperti yang dijelaskan di bagian berikut, instans DB Anda harus dapat diakses publik.
-
Jangan mengonfigurasikan lebih dari satu Zona Ketersediaan, retensi cadangan, atau replika baca sebelum Anda selesai mengimpor cadangan basis data. Setelah impor selesai, Anda dapat mengonfigurasi Multi-AZ dan retensi cadangan untuk instans produksi.
-
-
Tinjau opsi konfigurasi default untuk basis data Amazon RDS. Jika grup parameter default untuk basis data tidak memiliki opsi konfigurasi yang Anda inginkan, temukan grup parameter lain atau buat grup parameter baru. Untuk informasi selengkapnya tentang membuat grup parameter, lihatGrup parameter untuk RDS.
-
Hubungkan ke basis data Amazon RDS baru sebagai pengguna master. Buat pengguna yang diperlukan untuk mendukung administrator, aplikasi, dan layanan yang perlu mengakses instans DB. Nama host untuk database Amazon RDS adalah nilai Endpoint untuk instance DB ini tanpa nomor port, misalnya,.
mysampledb.123456789012.us-west-2.rds.amazonaws.com
Anda dapat menemukan nilai endpoint dalam detail database di konsol Amazon RDS. -
Connect ke EC2 instans Amazon Anda. Untuk informasi selengkapnya, lihat Connect ke instans Linux Anda di Panduan Pengguna Amazon Elastic Compute Cloud.
-
Connect ke database Amazon RDS Anda sebagai host jarak jauh dari EC2 instans Amazon Anda menggunakan
mysql
perintah. Perintah berikut adalah contoh:mysql -h
host_name
-P 3306 -udb_master_user
-phost_name
Ini adalah titik akhir basis data Amazon RDS. -
Pada
mysql
prompt, jalankansource
perintah dan berikan nama file dump database Anda. Perintah ini memuat data ke instans Amazon RDS DB.-
Untuk format SQL, gunakan perintah berikut:
mysql> source backup.sql;
-
Untuk format teks terbatas, buat database terlebih dahulu, jika bukan database default yang Anda buat saat menyiapkan database Amazon RDS.
mysql> create database
database_name
; mysql> usedatabase_name
;Lalu buat tabel.
mysql> source
table1
.sql mysql> sourcetable2
.sql etc...Lalu impor data.
mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...
Untuk meningkatkan performa, Anda dapat melakukan operasi ini secara paralel dari beberapa koneksi sehingga semua tabel Anda akan diciptakan dan kemudian dimuat secara bersamaan.
catatan
Jika Anda menggunakan opsi pemformatan data apa pun
mysqldump
saat Anda pertama kali membuang tabel, pastikan untuk menggunakan opsi yang samaLOAD DATA LOCAL INFILE
untuk memastikan interpretasi yang tepat dari konten file data.
-
-
Jalankan
SELECT
kueri sederhana terhadap satu atau dua tabel dalam database yang diimpor untuk memverifikasi bahwa impor berhasil.
Jika Anda tidak lagi memerlukan EC2 instans Amazon yang digunakan dalam prosedur ini, hentikan EC2 instance untuk mengurangi penggunaan AWS sumber daya Anda. Untuk menghentikan instance, lihat Mengakhiri EC2 instance di Panduan Pengguna Amazon Elastic Compute Cloud.
Tugas 4: Replikasi data dari database eksternal Anda ke database Amazon RDS baru Anda
Basis data sumber Anda kemungkinan diperbarui pada saat menyalin dan mentransfer data ke basis data MariaDB atau MySQL. Dengan demikian, Anda dapat menggunakan replikasi untuk membawa database yang disalin up-to-date dengan database sumber.

Izin yang diperlukan untuk memulai replikasi pada database Amazon RDS dibatasi dan tidak tersedia untuk pengguna master Amazon RDS Anda. Karena itu, gunakan prosedur tersimpan Amazon RDS yang sesuai untuk versi mesin utama Anda:
-
mysql.rds_set_external_master_gtiduntuk mengkonfigurasi replikasi dan mysql.rds_start_replication memulai replikasi
Memulai replikasi
Di Tugas 1 saat Anda mengatur opsi replikasi, Anda mengaktifkan logging biner dan menetapkan ID server unik untuk basis data sumber Anda. Sekarang Anda dapat mengatur basis data Amazon RDS Anda sebagai replika dengan basis data live Anda sebagai instans replikasi sumber.
-
Di konsol Amazon RDS, tambahkan alamat IP server yang menghosting basis data sumber ke grup keamanan VPC untuk database Amazon RDS. Untuk informasi selengkapnya tentang mengonfigurasi grup keamanan VPC, lihat Mengonfigurasi aturan grup keamanan di Panduan Pengguna Amazon Virtual Private Cloud.
Anda mungkin juga perlu mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP database Amazon RDS Anda sehingga dapat berkomunikasi dengan instance sumber Anda. Untuk menemukan alamat IP database Amazon RDS, gunakan
host
perintah:host
host_name
host_name
Ini adalah nama DNS dari titik akhir database Amazon RDS, misalnya.myinstance.123456789012.us-east-1.rds.amazonaws.com
Anda dapat menemukan nilai endpoint dalam detail instans DB di konsol Amazon RDS. -
Menggunakan klien pilihan Anda, hubungkan ke instans sumber dan buat pengguna untuk digunakan untuk replikasi. Akun ini digunakan hanya untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Perintah berikut adalah contoh:
CREATE USER 'repl_user'@'
mydomain.com
' IDENTIFIED BY 'password
';catatan
Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Untuk instans sumber, berikan hak istimewa
REPLICATION CLIENT
danREPLICATION SLAVE
kepada pengguna replikasi Anda. Misalnya, untuk memberikan keistimewaanREPLICATION CLIENT
danREPLICATION SLAVE
pada semua basis data untuk pengguna 'repl_user
' pada domain Anda, terbitkan perintah berikut:GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '
repl_user
'@'mydomain.com
'; -
Jika Anda menggunakan format SQL untuk membuat file cadangan dan instance eksternal bukan MariaDB 10.0.24 atau lebih tinggi, lihat isi file tersebut dengan menjalankan perintah berikut:
cat backup.sql
File tersebut mencakup sebuah komentar
CHANGE MASTER TO
yang berisi nama dan posisi file log master. Komentar ini disertakan dalam file cadangan saat Anda menggunakan opsi--master-data
denganmysqldump
. Perhatikan nilai untukMASTER_LOG_FILE
danMASTER_LOG_POS
.-- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
Jika Anda menggunakan format teks yang dibatasi untuk membuat file cadangan dan instance eksternal bukan MariaDB 10.0.24 atau lebih tinggi, Anda seharusnya sudah memiliki koordinat log biner dari Langkah 1 untuk membuat salinan cadangan dari prosedur database yang ada di bawah Tugas 1.
Jika instance eksternal adalah MariaDB 10.0.24 atau lebih tinggi, Anda seharusnya sudah memiliki GTID untuk memulai replikasi dari Langkah 2 dari Untuk membuat salinan cadangan dari prosedur database yang ada di bawah Tugas 1.
-
Jadikan basis data Amazon RDS sebagai replika. Jika instance eksternal bukan MariaDB 10.0.24 atau yang lebih tinggi, sambungkan ke database Amazon RDS sebagai pengguna utama dan identifikasi database sumber sebagai instance replikasi sumber dengan menggunakan prosedur tersimpan Amazon RDS yang sesuai:
Jika Anda memiliki file cadangan format SQL, gunakan nama file log master dan posisi log master yang Anda tentukan di Langkah 4. Jika Anda menggunakan format teks terbatas, gunakan nama dan posisi yang Anda tentukan saat membuat file cadangan. Perintah berikut adalah contohnya:
MySQL 8.4 dan versi yang lebih tinggi
CALL mysql.rds_set_external_source ('myserver.mydomain.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.000031', 107, 1);MariaDB dan MySQL 8.0 dan versi yang lebih rendah
CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.000031', 107, 1);catatan
Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
Jika instans eksternalnya adalah MariaDB 10.0.24 atau yang lebih tinggi, hubungkan basis data Amazon RDS sebagai pengguna master dan identifikasi basis data sumber sebagai instans replikasi sumber dengan menggunakan perintah mysql.rds_set_external_master_gtid. Gunakan GTID yang Anda tentukan di Langkah 2 dari Untuk membuat salinan cadangan dari prosedur database yang ada di bawah Tugas 1. Perintah berikut adalah contoh:
CALL mysql.rds_set_external_master_gtid ('
source_server_ip_address
', 3306, 'ReplicationUser', 'password
', 'GTID
', 1);
adalah alamat IP instans replikasi sumber. Alamat DNS EC2 pribadi saat ini tidak didukung.source_server_ip_address
catatan
Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Pada database Amazon RDS, untuk memulai replikasi, jalankan perintah berikut: mysql.rds_start_replication
CALL mysql.rds_start_replication;
-
Pada database Amazon RDS, untuk menentukan kapan replika diperbarui dengan instance replikasi sumber, jalankan perintah SHOW REPLICA
STATUS. Hasil perintah SHOW REPLICA STATUS
mencakup bidangSeconds_Behind_Master
. KetikaSeconds_Behind_Master
bidang mengembalikan 0, maka replika up to date dengan contoh replikasi sumber.catatan
Versi MySQL sebelumnya menggunakan
SHOW SLAVE STATUS
, bukanSHOW REPLICA STATUS
. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakanSHOW SLAVE STATUS
.Untuk instance MariaDB 10.5, 10.6, atau 10.11 DB, jalankan prosedur mysql.rds_replica_status tersimpan alih-alih perintah MySQL.
-
Setelah database Amazon RDS up to date, aktifkan backup otomatis sehingga Anda dapat memulihkan database tersebut jika diperlukan. Anda dapat mengaktifkan atau memodifikasi pencadangan otomatis untuk database Amazon RDS Anda dengan menggunakan konsol Amazon
RDS. Untuk informasi selengkapnya, lihat Pengantar cadangan.
Tugas 5: Arahkan ulang aplikasi langsung Anda ke instans Amazon RDS Anda
Setelah database MariaDB atau MySQL diperbarui dengan instance replikasi sumber, Anda sekarang dapat memperbarui aplikasi langsung Anda untuk menggunakan instans Amazon RDS.

Mengalihkan aplikasi live Anda ke basis data MariaDB atau MySQL Anda dan menghentikan replikasi
-
Untuk menambahkan grup keamanan VPC untuk basis data Amazon RDS, tambahkan alamat IP server yang meng-host aplikasi. Untuk informasi selengkapnya tentang memodifikasi grup keamanan VPC, lihat Mengonfigurasi aturan grup keamanan di Panduan Pengguna Amazon Virtual Private Cloud.
-
Verifikasi bahwa
Seconds_Behind_Master
bidang dalam hasil perintah SHOW REPLICA STATUSadalah 0, yang menunjukkan bahwa replika sudah up to date dengan instance replikasi sumber. SHOW REPLICA STATUS;
catatan
Versi MySQL sebelumnya menggunakan
SHOW SLAVE STATUS
, bukanSHOW REPLICA STATUS
. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakanSHOW SLAVE STATUS
.Untuk instans DB MariaDB 10.5, 10.6, atau 10.11, jalankan prosedur mysql.rds_replica_status, bukan perintah MySQL.
-
Tutup semua koneksi ke sumber setelah transaksi selesai.
-
Perbarui aplikasi Anda untuk menggunakan basis data Amazon RDS. Pembaruan ini biasanya melibatkan perubahan pengaturan koneksi untuk mengidentifikasi nama host dan port basis data Amazon RDS, akun pengguna dan kata sandi untuk terhubung, dan basis data yang digunakan.
-
Hubungkan ke instans DB.
Untuk klaster DB Multi-AZ, hubungkan ke instans DB penulis.
-
Hentikan replikasi untuk instans Amazon RDS dengan menggunakan perintah berikut: mysql.rds_stop_replication
CALL mysql.rds_stop_replication;
-
Jalankan prosedur tersimpan Amazon RDS yang sesuai di database Amazon RDS Anda untuk mengatur ulang konfigurasi replikasi sehingga instance ini tidak lagi diidentifikasi sebagai replika.
MySQL 8.4 dan versi yang lebih tinggi
CALL mysql.rds_reset_external_source;
MariaDB dan MySQL 8.0 dan versi yang lebih rendah
CALL mysql.rds_reset_external_master;
-
Aktifkan fitur Amazon RDS tambahan seperti dukungan Multi-AZ dan replika baca. Lihat informasi yang lebih lengkap di Mengonfigurasi dan mengelola penyebaran Multi-AZ untuk Amazon RDS dan Menggunakan replika baca instans DB.