

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

# Mengimpor data ke Amazon RDS for MySQL DB instans
<a name="MySQL.Procedural.Importing.Other"></a>

Anda dapat menggunakan beberapa teknik yang berbeda untuk mengimpor data ke dalam instans DB RDS for MySQL. Pendekatan terbaik tergantung pada sejumlah faktor:
+ Sumber data
+ Jumlah data
+ Impor satu kali atau sedang berlangsung
+ Jumlah downtime

 Jika Anda juga memigrasikan aplikasi dengan data, jumlah waktu henti penting untuk dipertimbangkan.

Tabel berikut mencantumkan teknik untuk mengimpor data ke RDS untuk instance MySQL DB:


| Sumber | Jumlah data | Satu kali atau berkelanjutan | Waktu henti aplikasi | Teknik | Informasi lain | 
| --- | --- | --- | --- | --- | --- | 
|  Basis data MySQL yang sudah ada di on-premise atau di Amazon EC2  |  Setiap  |  Satu kali  |  Beberapa  |  Buat cadangan dari basis data on-premise Anda, simpan di Amazon S3, lalu pulihkan file cadangan ke instans DB Amazon RDS baru yang menjalankan MySQL.  |  [Memulihkan cadangan ke instans Amazon RDS for MySQL DB](MySQL.Procedural.Importing.md)  | 
|  Basis data MySQL yang sudah ada di on-premise atau di Amazon EC2  |  Setiap  |  Berkelanjutan  |  Minimal  |  Lakukan konfigurasi pada replikasi dengan basis data MySQL yang sudah ada sebagai sumber replikasi.  |  [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](MySQL.Procedural.Importing.External.Repl.md) [Mengimpor data ke database Amazon RDS for MySQL dengan downtime yang dikurangi](mysql-importing-data-reduced-downtime.md)  | 
|  Sebarang basis data yang ada  |  Setiap  |  Satu kali atau berkelanjutan  |  Minimal  |  Gunakan AWS Database Migration Service untuk memigrasikan database dengan downtime minimal dan, untuk banyak mesin DB database, lanjutkan replikasi yang sedang berlangsung.  |  [Apa itu AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) dan Panduan Pengguna [Menggunakan basis data yang kompatibel dengan MySQL sebagai target untuk AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) dalam *AWS Database Migration Service *   | 
|  Instans DB MySQL yang sudah ada  |  Setiap  |  Satu kali atau berkelanjutan  |  Minimal  |  Buat replika baca untuk replikasi berkelanjutan. Dorong replika baca untuk pembuatan satu kali instans DB baru.  |  [Menggunakan replika baca instans DB](USER_ReadRepl.md)  | 
|  Database MySQL yang ada  |  Kecil  |  Satu kali  |  Beberapa  | Salin data secara langsung ke instans DB MySQL Anda dengan menggunakan utilitas baris perintah. |  [Mengimpor data dari database MySQL eksternal ke Amazon RDS for MySQL DB instans](mysql-importing-data-external-database.md)  | 
|  Data tidak disimpan dalam basis data yang sudah ada  |  Sedang  |  Satu kali  |  Beberapa  | Buat file datar dan impor mereka menggunakan pernyataan MySQLLOAD DATA LOCAL INFILE. |  [Mengimpor data dari sumber apa pun ke Amazon RDS for MySQL DB instans](mysql-importing-data-any-source.md)  | 

**catatan**  
Basis data sistem `mysql` berisi informasi autentikasi dan otorisasi yang dibutuhkan untuk masuk ke instans DB Anda dan mengakses data Anda. Penurunan, pengubahan, penamaan ulang, atau penyingkatan tabel, data, atau konten lain dari basis data `mysql` dalam instans DB Anda dapat mengakibatkan kesalahan dan dapat menyebabkan instans DB dan data Anda tidak dapat diakses. Jika ini terjadi, Anda dapat mengembalikan instance DB dari snapshot menggunakan AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)perintah. Anda dapat memulihkan instans DB menggunakan AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)perintah. 

# Mengimpor pertimbangan data untuk MySQL
<a name="MySQL.Procedural.Importing.Advanced"></a>

Konten berikut berisi informasi teknis yang terkait dengan pemuatan data ke MySQL. Konten ini ditujukan untuk pengguna yang akrab dengan arsitektur server MySQL.

## Pencatatan biner
<a name="MySQL.Procedural.Importing.Advanced.Log"></a>

Mengaktifkan pencatatan biner mengurangi kinerja pemuatan data dan membutuhkan hingga empat kali ruang disk tambahan dibandingkan dengan pencatatan yang dinonaktifkan. Ukuran transaksi yang digunakan untuk memuat data secara langsung mempengaruhi kinerja sistem dan kebutuhan ruang disk — transaksi yang lebih besar membutuhkan lebih banyak sumber daya.

## Ukuran transaksi
<a name="MySQL.Procedural.Importing.Advanced.Size"></a>

Ukuran transaksi mempengaruhi aspek-aspek berikut dari beban data MySQL:
+ Konsumsi sumber daya
+ Pemanfaatan ruang disk
+ Lanjutkan proses
+ Waktu untuk pulih
+ Format input (file datar atau SQL)

Bagian ini menjelaskan bagaimana ukuran transaksi dapat memengaruhi log biner dan mengakibatkan kasus penonaktifan log biner selama pemuatan data yang besar. Anda dapat mengaktifkan dan menonaktifkan pencatatan biner dengan mengatur periode retensi cadangan otomatis Amazon RDS. Nilai non-nol mengaktifkan log biner, dan nilai nol menonaktifkannya. Untuk informasi selengkapnya, lihat [Periode retensi cadangan](USER_WorkingWithAutomatedBackups.BackupRetention.md).

Bagian ini juga menjelaskan dampak transaksi besar pada InnoDB dan mengapa penting untuk menjaga ukuran transaksi tetap kecil. 

### Transaksi kecil
<a name="MySQL.Procedural.Importing.Advanced.Log.Small"></a>

Untuk transaksi kecil, log biner menggandakan jumlah tulis disk yang dibutuhkan untuk memuat data. Efek ini dapat secara ekstrem menurunkan performa untuk sesi basis data lain dan meningkatkan waktu yang dibutuhkan untuk memuat data. Degradasi yang dialami sebagian tergantung pada faktor-faktor berikut:
+ Tingkat unggah
+ Aktivitas database lainnya yang terjadi selama pemuatan
+ Kapasitas instans Amazon RDS DB Anda

Log biner juga mengkonsumsi ruang disk kira-kira sama dengan jumlah data yang dimuat sampai log dicadangkan dan dihapus. Amazon RDS meminimalkan ini dengan sering mencadangkan dan menghapus log biner. 

### Transaksi besar
<a name="MySQL.Procedural.Importing.Advanced.Log.Large"></a>

Untuk transaksi besar, pencatatan biner melipatgandakan IOPS dan penggunaan disk karena alasan berikut:
+ Cache log biner menyimpan data transaksi sementara pada disk.
+ Cache ini tumbuh dengan ukuran transaksi, yang menghabiskan ruang disk.
+ Ketika transaksi (commit atau rollback) selesai, sistem menyalin cache ke log biner.

Proses ini membuat tiga salinan data:
+ Data asli
+ Cache pada disk
+ Entri log biner terakhir

Setiap operasi penulisan menimbulkan IO tambahan, yang selanjutnya memengaruhi kinerja.

Karena itu, logging biner membutuhkan tiga kali lipat ruang disk dibandingkan dengan logging yang dinonaktifkan. Misalnya, memuat 10 GiB data sebagai satu transaksi menghasilkan tiga salinan:
+ 10 GiB untuk data tabel
+ 10 GiB untuk cache log biner
+ 10 GiB untuk file log biner

Total ruang disk sementara yang dibutuhkan adalah 30 GiB.

Pertimbangan ruang disk penting:
+ File cache tetap ada sampai sesi berakhir atau transaksi baru membuat cache lain.
+ Log biner tetap ada sampai dicadangkan, berpotensi menahan 20 GiB (cache dan log) untuk waktu yang lama.

Jika Anda menggunakan `LOAD DATA LOCAL INFILE` untuk memuat data, pemulihan data membuat salinan keempat jika database harus dipulihkan dari cadangan yang dibuat sebelum pemuatan. Selama pemulihan, MySQL mengekstrak data dari log biner ke dalam sebuah file rata. MySQL kemudian berjalan. `LOAD DATA LOCAL INFILE` Berdasarkan contoh sebelumnya, pemulihan ini membutuhkan total ruang disk sementara 40 GiB, atau masing-masing 10 GiB untuk tabel, cache, log, dan file lokal. Tanpa setidaknya 40 GiB ruang disk kosong, pemulihan gagal.

### Mengoptimalkan beban data yang besar
<a name="MySQL.Procedural.Importing.AnySource.Advanced.Disable"></a>

Untuk pemuatan data yang besar, nonaktifkan pencatatan biner untuk mengurangi kebutuhan ruang overhead dan disk. Anda dapat menonaktifkan pencatatan biner dengan mengatur periode retensi cadangan ke 0. Setelah pemuatan selesai, kembalikan periode retensi cadangan ke nilai bukan nol yang sesuai. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md) dan [Periode retensi cadangan](USER_ModifyInstance.Settings.md) di tabel pengaturan.

**catatan**  
Jika instans DB adalah instans DB sumber untuk replika baca, maka Anda tidak dapat mengatur periode retensi cadangan ke 0.

Sebelum memuat data, kami sarankan Anda membuat snapshot DB. Untuk informasi selengkapnya, lihat [Mengelola backup manual](USER_ManagingManualBackups.md). 

## InnoDB
<a name="MySQL.Procedural.Importing.Advanced.InnoDB"></a>

Informasi berikut tentang opsi undo logging dan recovery mendukung menjaga transaksi InnoDB tetap kecil untuk mengoptimalkan kinerja database.

### Memahami InnoDB undo logging
<a name="MySQL.Procedural.Importing.Advanced.InnoDB.Undo"></a>

Undo adalah mekanisme logging yang memungkinkan rollback transaksi dan mendukung kontrol konkurensi multi-versi (MVCC). 

Untuk MySQL 5.7 dan versi yang lebih rendah, batalkan log disimpan di tablespace sistem InnoDB (biasanya ibdata1) dan dipertahankan sampai thread pembersihan menghapusnya. Akibatnya, transaksi pemuatan data yang besar dapat menyebabkan tablespace sistem menjadi cukup besar dan menghabiskan ruang disk yang tidak dapat Anda reklamasi kecuali Anda membuat ulang database.

Untuk semua versi MySQL, thread pembersihan harus menunggu untuk menghapus log pembatalan apa pun hingga transaksi aktif tertua melakukan atau memutar kembali. Jika database memproses transaksi lain selama pemuatan, log pembatalan mereka juga terakumulasi dan tidak dapat dihapus, bahkan jika transaksi dilakukan dan tidak ada transaksi lain yang memerlukan log pembatalan untuk MVCC. Dalam situasi ini, semua transaksi—termasuk transaksi hanya-baca—melambat. Perlambatan ini terjadi karena semua transaksi mengakses semua baris yang setiap transaksi—bukan hanya transaksi muatan—berubah. Akibatnya, transaksi harus memindai melalui log undo yang mencegah transaksi pemuatan yang berjalan lama dicegah untuk dibersihkan selama pembersihan log batal. Ini memengaruhi kinerja untuk setiap operasi yang mengakses baris yang dimodifikasi. 

### Opsi pemulihan transaksi InnoDB
<a name="MySQL.Procedural.Importing.Advanced.InnoDB.Rollback"></a>

Meskipun InnoDB mengoptimalkan operasi komit, rollback transaksi besar lambat. Untuk pemulihan yang lebih cepat, lakukan point-in-time pemulihan atau pulihkan snapshot DB. Untuk informasi selengkapnya, lihat [Point-in-time pemulihan](USER_PIT.md) dan [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md).

## Format impor data
<a name="MySQL.Procedural.Importing.Advanced.InputFormat"></a>

MySQL mendukung dua format impor data: file datar dan SQL. Tinjau informasi tentang setiap format untuk menentukan opsi terbaik untuk kebutuhan Anda.

### File rata
<a name="MySQL.Procedural.Importing.Advanced.InputFormat.FlatFiles"></a>

Untuk transaksi kecil, muat file datar dengan`LOAD DATA LOCAL INFILE`. Format impor data ini dapat memberikan manfaat berikut dibandingkan menggunakan SQL:
+ Lebih sedikit lalu lintas jaringan
+ Biaya transmisi data yang lebih rendah
+ Overhead pemrosesan basis data menurun
+ Pemrosesan lebih cepat

`LOAD DATA LOCAL INFILE`memuat seluruh file datar sebagai satu transaksi. Jaga ukuran masing-masing file kecil untuk keuntungan berikut:
+ **Kemampuan melanjutkan** - Anda dapat melacak file mana yang telah dimuat. Jika masalah muncul selama beban, Anda dapat mengambil tempat yang Anda tinggalkan. Anda mungkin perlu mengirimkan kembali beberapa data ke Amazon RDS, tetapi dengan file kecil, jumlah yang dikirim ulang minimal.
+ **Pemuatan data paralel** — Jika Anda memiliki IOPS dan bandwidth jaringan yang cukup untuk satu pemuatan file, pemuatan secara paralel dapat menghemat waktu.
+ **Kontrol laju beban** - Jika beban data Anda berdampak negatif pada proses lain, Anda dapat mengontrol laju beban dengan meningkatkan interval antar file. 

Transaksi besar mengurangi manfaat penggunaan `LOAD DATA LOCAL INFILE` untuk mengimpor data. Bila Anda tidak dapat memecah sejumlah besar data menjadi file yang lebih kecil, pertimbangkan untuk menggunakan SQL.

### SQL
<a name="MySQL.Procedural.Importing.Advanced.InputFormat.SQL"></a>

SQL memiliki satu keunggulan utama dibandingkan file datar: Anda dapat dengan mudah menjaga ukuran transaksi kecil. Namun, SQL dapat memakan waktu lebih lama untuk memuat daripada file datar. Juga, setelah kegagalan, mungkin sulit untuk menentukan di mana harus melanjutkan—Anda tidak dapat me-restart file mysqldump. Jika terjadi kegagalan saat memuat file mysqldump, Anda harus memodifikasi atau mengganti file sebelum pemuatan dapat dilanjutkan. Atau, sebagai alternatif, setelah Anda memperbaiki penyebab kegagalan, Anda dapat mengembalikan ke titik waktu sebelum memuat dan mengirim ulang file. Untuk informasi selengkapnya, lihat [Point-in-time pemulihan](USER_PIT.md).

## Menggunakan snapshot Amazon RDS DB untuk pos pemeriksaan database
<a name="MySQL.Procedural.Importing.Advanced.Checkpoints"></a>

Jika Anda memuat data dalam jangka waktu yang lama—seperti jam atau hari—tanpa pencatatan biner, gunakan snapshot DB untuk menyediakan pos pemeriksaan berkala demi keamanan data. Setiap snapshot DB membuat salinan konsisten dari instance database Anda yang berfungsi sebagai titik pemulihan selama kegagalan sistem atau peristiwa korupsi data. Karena snapshot DB cepat, checkpointing yang sering memiliki dampak minimal pada kinerja beban. Anda dapat menghapus snapshot DB sebelumnya tanpa memengaruhi daya tahan database atau kemampuan pemulihan. Untuk informasi selengkapnya tentang snapshot DB, lihat[Mengelola backup manual](USER_ManagingManualBackups.md).

## Mengurangi waktu muat database
<a name="MySQL.Procedural.Importing.Advanced.LoadTime"></a>

Item berikut adalah tips tambahan untuk mengurangi waktu muat: 
+ Buat semua indeks sekunder sebelum memuat data ke database MySQL. Tidak seperti sistem database lainnya, MySQL membangun kembali seluruh tabel saat menambahkan atau memodifikasi indeks sekunder. Proses ini membuat tabel baru dengan perubahan indeks, menyalin semua data, dan menjatuhkan tabel asli.
+ Muat data dalam urutan kunci primer. Untuk tabel InnoDB, ini dapat mengurangi waktu muat hingga 75% — 80% dan mengurangi ukuran file data hingga 50%.
+ Nonaktifkan kendala kunci asing dengan menyetel ke. `foreign_key_checks` `0` Ini sering diperlukan untuk file datar yang dimuat`LOAD DATA LOCAL INFILE`. Untuk beban apa pun, menonaktifkan pemeriksaan kunci asing mempercepat pemuatan data. Setelah pemuatan selesai, aktifkan kembali kendala dengan menyetel `foreign_key_checks` dan memverifikasi data. `1`
+ Muat data secara paralel kecuali mendekati batas sumber daya. Untuk mengaktifkan pemuatan bersamaan di beberapa segmen tabel, gunakan tabel yang dipartisi bila sesuai. 
+ Untuk mengurangi overhead eksekusi SQL, gabungkan beberapa `INSERT` pernyataan menjadi operasi `INSERT` multi-nilai tunggal. `mysqldump`mengimplementasikan optimasi ini secara otomatis. 
+ Kurangi operasi IO log InnoDB dengan menyetel `innodb_flush_log_at_trx_commit` ke. `0` Setelah pemuatan selesai, kembalikan `innodb_flush_log_at_trx_commit` ke`1`. 
**Awas**  
Pengaturan `innodb_flush_log_at_trx_commit` untuk `0` menyebabkan InnoDB menyiram lognya setiap detik, bukan di setiap komit. Pengaturan ini meningkatkan kinerja tetapi dapat mengambil risiko kerugian transaksi selama kegagalan sistem.
+ Jika Anda memuat data ke instans DB yang tidak memiliki replika baca, setel `sync_binlog` ke`0`. Setelah pemuatan selesai, kembalikan `sync_binlog parameter` ke`1`.
+ Muat data ke instans DB AZ tunggal sebelum mengonversi instans DB menjadi penerapan Multi-AZ. Jika instans DB sudah menggunakan penerapan Multi-AZ, kami tidak menyarankan untuk beralih ke penerapan AZ tunggal untuk pemuatan data. Melakukannya hanya memberikan perbaikan marjinal.

# Memulihkan cadangan ke instans Amazon RDS for MySQL DB
<a name="MySQL.Procedural.Importing"></a>

Amazon RDS mendukung mengimpor database MySQL dengan file cadangan. Anda dapat membuat cadangan database Anda, menyimpan file cadangan di Amazon S3, dan kemudian mengembalikan file cadangan ke instans Amazon RDS DB baru yang menjalankan MySQL. Amazon RDS mendukung mengimpor file cadangan dari Amazon S3 secara keseluruhan. Wilayah AWS

Skenario yang dijelaskan dalam bagian ini adalah pemulihan cadangan basis data on-premise. Selama database dapat diakses, Anda dapat menggunakan teknik ini untuk database di lokasi lain, seperti Amazon EC2 atau layanan cloud lainnya.

Diagram berikut menunjukkan skenario yang didukung.

![\[MySQL mengimpor file cadangan dari S3.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MySQL-bak-file.png)


Jika database lokal Anda dapat offline saat Anda membuat, menyalin, dan memulihkan file cadangan, sebaiknya gunakan file cadangan untuk mengimpor database ke Amazon RDS. Jika database Anda tidak dapat offline, maka Anda dapat menggunakan salah satu metode berikut:
+ **Log biner** — Pertama, impor file cadangan dari Amazon S3 dan ke Amazon RDS, seperti yang dijelaskan dalam topik ini. Kemudian gunakan replikasi log biner (binlog) untuk memperbarui database Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](MySQL.Procedural.Importing.External.Repl.md). 
+ **AWS Database Migration Service**— Gunakan AWS Database Migration Service untuk memigrasikan database Anda ke Amazon RDS. Untuk informasi lebih lanjut, lihat [Apa itu AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 

## Ikhtisar pengaturan untuk mengimpor file cadangan dari Amazon S3 ke Amazon RDS
<a name="MySQL.Procedural.Importing.Enabling"></a>

Untuk mengimpor file cadangan dari Amazon S3 ke Amazon RDS, Anda memerlukan komponen berikut: 
+ Bucket Amazon S3 untuk menyimpan file cadangan Anda.

  Jika Anda sudah memiliki ember Amazon S3, Anda dapat menggunakan ember itu. Jika Anda tidak memiliki ember Amazon S3, buat yang baru. Untuk informasi selengkapnya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html). 
+ Sebuah cadangan dari basis data on-premise Anda yang diciptakan oleh Percona XtraBackup.

  Untuk informasi selengkapnya, lihat [Membuat cadangan basis data](#MySQL.Procedural.Importing.Backup). 
+ Peran AWS Identity and Access Management (IAM) untuk memungkinkan Amazon RDS mengakses bucket S3.

  Jika Anda sudah memiliki peran IAM, Anda dapat menggunakan peran tersebut dan melampirkan kebijakan kepercayaan dan izin padanya. Untuk informasi selengkapnya, lihat [Penciptaan sebuah peran IAM secara manual](#MySQL.Procedural.Importing.Enabling.IAM).

  Jika Anda tidak memiliki peran IAM, Anda memiliki dua opsi:
  + Anda dapat membuat peran IAM baru secara manual. Untuk informasi selengkapnya, lihat [Penciptaan sebuah peran IAM secara manual](#MySQL.Procedural.Importing.Enabling.IAM).
  + Anda dapat memilih Amazon RDS untuk membuat peran IAM baru untuk Anda. Jika Anda ingin Amazon RDS membuat peran IAM baru untuk Anda, ikuti prosedur yang menggunakan bagian Konsol Manajemen AWS in[Mengimpor data dari Amazon S3 ke instans DB MySQL baru](#MySQL.Procedural.Importing.PerformingImport). 

## Membuat cadangan basis data
<a name="MySQL.Procedural.Importing.Backup"></a>

Gunakan XtraBackup perangkat lunak Percona untuk membuat cadangan Anda. Kami menyarankan Anda menggunakan versi terbaru XtraBackup Percona. Anda dapat menginstal Percona XtraBackup dari [Unduhan Perangkat Lunak](https://www.percona.com/downloads/) di situs web Percona. 

**Awas**  
Saat membuat cadangan basis data, XtraBackup mungkin menyimpan kredensil dalam file xtrabackup\$1info. Pastikan untuk mengonfirmasi bahwa `tool_command` pengaturan dalam file xtrabackup\$1info tidak berisi informasi sensitif apa pun.

 XtraBackup Versi Percona yang Anda gunakan bergantung pada versi MySQL yang Anda cadangkan.
+ **MySQL** 8.4 - Gunakan Percona versi 8.4. XtraBackup
+ **MySQL** 8.0 - Gunakan Percona versi 8.0. XtraBackup
**catatan**  
Percona XtraBackup 8.0.12 dan versi yang lebih tinggi mendukung migrasi semua versi MySQL 8.0. Jika Anda bermigrasi ke RDS untuk MySQL 8.0.32 atau lebih tinggi, Anda harus menggunakan Percona 8.0.12 atau lebih tinggi. XtraBackup 
+ **MySQL** 5.7 - Gunakan Percona versi 2.4. XtraBackup

Anda dapat menggunakan Percona XtraBackup untuk membuat cadangan lengkap file database MySQL Anda. Atau, jika Anda sudah menggunakan Percona XtraBackup untuk mencadangkan file database MySQL Anda, Anda dapat mengunggah direktori dan file cadangan lengkap dan tambahan yang ada. 

Untuk informasi selengkapnya tentang mencadangkan database Anda dengan Percona XtraBackup, lihat Percona [ XtraBackup - Dokumentasi di situs web Percona](https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html). 

### Membuat cadangan lengkap dengan Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full"></a>

Untuk membuat cadangan lengkap file database MySQL Anda yang dapat dipulihkan Amazon RDS dari Amazon S3, gunakan utilitas Percona (). XtraBackup `xtrabackup` 

Misalnya, perintah berikut akan membuat sebuah cadangan basis data MySQL dan menyimpan file-nya dalam folder `/on-premises/s3-restore/backup`. 

```
xtrabackup --backup --user=myuser --password=password --target-dir=/on-premises/s3-restore/backup
```

Jika Anda ingin mengompres cadangan Anda menjadi satu file — yang dapat Anda bagi menjadi beberapa file nanti, jika diperlukan — Anda dapat menyimpan cadangan Anda dalam salah satu format berikut berdasarkan versi MySQL Anda: 
+ **Gzip (.gz)** - Untuk MySQL 5.7 dan versi yang lebih rendah
+ **tar (.tar)** - Untuk MySQL 5.7 dan versi yang lebih rendah
+ **Percona xbstream (.xbstream)** - Untuk semua versi MySQL

**catatan**  
Percona XtraBackup 8.0 dan yang lebih tinggi hanya mendukung Percona xbstream untuk kompresi.

**MySQL 5.7 dan versi yang lebih rendah**

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file Gzip. Ganti nilai dengan informasi Anda sendiri.

```
xtrabackup --backup --user=my_user --password=password --stream=tar \
   --target-dir=/on-premises/s3-restore/backup | gzip - | split -d --bytes=500MB \
   - /on-premises/s3-restore/backup/backup.tar.gz
```

**MySQL 5.7 dan versi yang lebih rendah**

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file tar. Ganti nilai dengan informasi Anda sendiri.

```
xtrabackup --backup --user=my_user --password=password --stream=tar \
   --target-dir=/on-premises/s3-restore/backup | split -d --bytes=500MB \
   - /on-premises/s3-restore/backup/backup.tar
```

**Semua versi MySQL**

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file xbstream. Ganti nilai dengan informasi Anda sendiri.

```
xtrabackup --backup --user=myuser --password=password --stream=xbstream \
   --target-dir=/on-premises/s3-restore/backup | split -d --bytes=500MB \
   - /on-premises/s3-restore/backup/backup.xbstream
```

**catatan**  
Jika Anda melihat kesalahan berikut, mungkin karena Anda mencampur format file dalam perintah Anda:  

```
ERROR:/bin/tar: This does not look like a tar archive
```

### Menggunakan cadangan tambahan dengan Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr"></a>

Jika Anda sudah menggunakan Percona XtraBackup untuk melakukan pencadangan penuh dan bertahap dari file database MySQL Anda, Anda tidak perlu membuat cadangan lengkap dan mengunggah file cadangan ke Amazon S3. Sebagai gantinya, untuk menghemat waktu, salin direktori dan file cadangan yang ada ke bucket Amazon S3 Anda. Untuk informasi selengkapnya tentang membuat cadangan tambahan menggunakan Percona XtraBackup, lihat [Membuat cadangan tambahan](https://docs.percona.com/percona-xtrabackup/LATEST/create-incremental-backup.html) di situs web Percona. 

Saat menyalin file cadangan penuh dan inkremental yang sudah ada ke bucket Amazon S3, Anda harus menyalin konten direktori dasar secara berulang. Konten tersebut mencakup cadangan penuh dan semua direktori dan file cadangan tambahan. Salinan ini harus menjaga struktur direktori di bucket Amazon S3. Amazon RDS melakukan iterasi pada semua file dan direktori. Amazon RDS menggunakan `xtrabackup-checkpoints` file yang disertakan dengan setiap cadangan tambahan untuk mengidentifikasi direktori dasar dan untuk memesan cadangan tambahan berdasarkan rentang nomor urutan log (LSN). 

### Pertimbangan Backup untuk Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations"></a>

Amazon RDS menggunakan file cadangan Anda berdasarkan nama file. Beri nama file cadangan Anda dengan ekstensi file yang sesuai berdasarkan format file. Misalnya, gunakan `.xbstream` untuk file yang disimpan menggunakan format Percona xbstream. 

Amazon RDS menggunakan file cadangan Anda sesuai urutan abjad dan urutan angka alami. Untuk memastikan bahwa file cadangan Anda ditulis dan diberi nama dalam urutan yang benar, gunakan `split` opsi saat Anda mengeluarkan `xtrabackup` perintah. 

Amazon RDS tidak mendukung cadangan sebagian yang dibuat menggunakan Percona. XtraBackup Anda tidak dapat menggunakan opsi berikut untuk membuat cadangan sebagian saat mencadangkan file sumber untuk database Anda: 
+ `--tables`
+ `--tables-exclude`
+ `--tables-file`
+ `--databases`
+ `--databases-exclude`
+ `--databases-file`

## Penciptaan sebuah peran IAM secara manual
<a name="MySQL.Procedural.Importing.Enabling.IAM"></a>

Jika Anda tidak memiliki peran IAM, silakan buat baru secara manual. Namun, jika Anda memulihkan database dengan menggunakan Konsol Manajemen AWS, kami sarankan Anda memilih agar Amazon RDS membuat peran IAM baru ini untuk Anda. Agar Amazon RDS membuat peran ini untuk Anda, ikuti prosedur di [Mengimpor data dari Amazon S3 ke instans DB MySQL baru](#MySQL.Procedural.Importing.PerformingImport) bagian ini.

Untuk membuat peran IAM baru secara manual untuk mengimpor database Anda dari Amazon S3, buat peran untuk mendelegasikan izin dari Amazon RDS ke bucket Amazon S3 Anda. Saat membuat peran IAM, Anda dapat menyematkan kebijakan kepercayaan dan izin. Untuk mengimpor file cadangan dari Amazon S3, gunakan kebijakan kepercayaan dan izin yang serupa dengan contoh berikut. Untuk informasi selengkapnya tentang membuat peran, lihat [Membuat peran untuk mendelegasikan izin ke layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). AWS 

Kebijakan kepercayaan dan izin mengharuskan Anda untuk menyediakan Amazon Resource Name (ARN). Untuk informasi selengkapnya tentang pemformatan ARN, lihat [Amazon Resource Names (ARNs) dan AWS ruang nama](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) layanan. 

**Example kebijakan kepercayaan untuk mengimpor dari Amazon S3**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AssumeRoleForBackup",
      "Effect": "Allow",
      "Principal": {
        "Service": "rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**Example kebijakan izin untuk mengimpor dari Amazon S3 - izin pengguna IAM**  
Dalam contoh berikut, ganti *iam\$1user\$1id* dengan nilai Anda sendiri.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3AccessRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/S3Access"
        }
    ]
}
```

**Example kebijakan izin untuk mengimpor dari Amazon S3 - izin peran**  
Dalam contoh berikut, ganti *amzn-s3-demo-bucket* dan *prefix* dengan nilai Anda sendiri.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        },
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:GetObject"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*"
        },
        {
        "Effect": "Allow",
        "Action":
            [
                "kms:Decrypt"
            ],
        "Resource": [
            "arn:aws:kms:us-east-1:111122223333:key/key_id*"
            ]
        }
    ]
}
```
Jika Anda menyertakan sebuah prefiks nama file, sertakan tanda bintang (\$1) setelah prefiks. Jika Anda tidak ingin menyertakan prefiks, sertakan tanda bintang saja.

## Mengimpor data dari Amazon S3 ke instans DB MySQL baru
<a name="MySQL.Procedural.Importing.PerformingImport"></a>

Anda dapat mengimpor data dari Amazon S3 ke instans MySQL DB baru menggunakan API,, atau RDS. Konsol Manajemen AWS AWS CLI

### Konsol
<a name="MySQL.Procedural.Importing.Console"></a>

**Untuk mengimpor data dari Amazon S3 ke instans DB MySQL baru**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di sudut kanan atas konsol Amazon RDS, pilih Wilayah AWS tempat Anda ingin membuat instans DB Anda. Pilih yang Wilayah AWS sama dengan bucket Amazon S3 yang berisi cadangan database Anda. 

1. Di panel navigasi, pilih **Basis Data**.

1. Pilih **Pulihkan dari S3**.

   Halaman **Buat basis data dengan memulihkan dari S3** akan muncul.  
![\[Buat database dengan memulihkan dari halaman S3 tempat Anda menentukan detail untuk memulihkan instans DB dari S3.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/mys-s3-ingestion.png)

1. Di bawah **sumber S3:**

   1. Pilih **Bucket S3** yang berisi cadangan.

   1. (Opsional) Untuk **awalan S3, masukkan awalan** jalur file untuk file yang disimpan di bucket Amazon S3 Anda.

      Jika Anda tidak menentukan awalan, Amazon RDS akan membuat instans DB Anda menggunakan semua file dan folder di folder root bucket S3. Jika Anda menentukan awalan, Amazon RDS akan membuat instans DB Anda menggunakan file dan folder di bucket S3 tempat jalur untuk file dimulai dengan awalan yang ditentukan.

      Misalnya, Anda menyimpan file cadangan Anda di S3 dalam subfolder bernama backup, dan Anda memiliki beberapa set file cadangan, masing-masing di direktorinya sendiri (gzip\$1backup1, gzip\$1backup2, dan sebagainya). Dalam hal ini, untuk memulihkan dari file di folder gzip\$1backup1, Anda menentukan awalan backups/gzip\$1backup1. 

1. Di bagian **Opsi mesin**:

   1. Untuk **Jenis mesin**, pilih **MySQL**.

   1. Untuk **Versi mesin sumber**, pilih versi utama MySQL basis data sumber Anda.

   1. Untuk **Versi Engine**, pilih versi minor default versi utama MySQL Anda di versi utama MySQL Anda. Wilayah AWS

      Dalam Konsol Manajemen AWS, hanya versi minor default yang tersedia. Setelah menyelesaikan impor, Anda dapat memutakhirkan instans DB Anda.

1. Untuk **peran IAM**, buat atau pilih peran IAM dengan kebijakan kepercayaan dan kebijakan izin yang diperlukan yang memungkinkan Amazon RDS mengakses bucket Amazon S3 Anda. Lakukan salah satu tindakan berikut:
   + (Disarankan) Pilih **Buat peran baru**, dan masukkan **nama peran IAM**. Dengan opsi ini, Amazon RDS secara otomatis membuat peran dengan kebijakan kepercayaan dan kebijakan izin untuk Anda.
   + Pilih peran IAM yang ada. Pastikan bahwa peran ini memenuhi semua kriteria di[Penciptaan sebuah peran IAM secara manual](#MySQL.Procedural.Importing.Enabling.IAM).

1. Tentukan informasi instans DB Anda. Untuk informasi tentang setiap pengaturan, lihat [Pengaturan untuk instans DB](USER_CreateDBInstance.Settings.md). 
**catatan**  
Pastikan untuk mengalokasikan penyimpanan yang cukup untuk instans DB baru Anda sehingga operasi pemulihan dapat berhasil.  
Untuk memungkinkan pertumbuhan masa depan secara otomatis, di bawah **Konfigurasi penyimpanan tambahan**, pilih **Aktifkan penskalaan otomatis penyimpanan**.

1. Pilih pengaturan tambahan sesuai kebutuhan.

1. Pilih **Buat basis data**.

### AWS CLI
<a name="MySQL.Procedural.Importing.CLI"></a>

Untuk mengimpor data dari Amazon S3 ke instans MySQL DB baru dengan menggunakan AWS CLI, jalankan perintah [restore-db-instance-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html) dengan opsi berikut. Untuk informasi tentang setiap pengaturan, lihat [Pengaturan untuk instans DB](USER_CreateDBInstance.Settings.md). 

**catatan**  
Pastikan untuk mengalokasikan penyimpanan yang cukup untuk instans DB baru Anda sehingga operasi pemulihan dapat berhasil.  
Untuk mengaktifkan penskalaan otomatis penyimpanan dan memungkinkan pertumbuhan masa depan secara otomatis, gunakan opsi ini. `--max-allocated-storage`
+ `--allocated-storage`
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--engine`
+ `--master-username`
+ `--manage-master-user-password`
+ `--s3-bucket-name`
+ `--s3-ingestion-role-arn`
+ `--s3-prefix`
+ `--source-engine`
+ `--source-engine-version`

**Example**  
Untuk Linux, macOS, atau Unix:  

```
 1. aws rds restore-db-instance-from-s3 \
 2.     --allocated-storage 250 \
 3.     --db-instance-identifier my_identifier \
 4.     --db-instance-class db.m5.large \
 5.     --engine mysql \
 6.     --master-username admin \
 7.     --manage-master-user-password \
 8.     --s3-bucket-name amzn-s3-demo-bucket \
 9.     --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
10.     --s3-prefix bucket_prefix \
11.     --source-engine my_sql \
12.     --source-engine-version 8.0.32 \
13.     --max-allocated-storage 1000
```
Untuk Windows:  

```
 1. aws rds restore-db-instance-from-s3 ^
 2.     --allocated-storage 250 ^
 3.     --db-instance-identifier my_identifier ^
 4.     --db-instance-class db.m5.large ^
 5.     --engine mysql ^
 6.     --master-username admin ^
 7.     --manage-master-user-password ^
 8.     --s3-bucket-name amzn-s3-demo-bucket ^
 9.     --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename ^
10.     --s3-prefix bucket_prefix ^
11.     --source-engine mysql ^
12.     --source-engine-version 8.0.32 ^
13.     --max-allocated-storage 1000
```

### API RDS
<a name="MySQL.Procedural.Importing.API"></a>

[Untuk mengimpor data dari Amazon S3 ke instans MySQL DB baru dengan menggunakan Amazon RDS API, panggil operasi Restore fromS3. DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)

## Batasan dan pertimbangan untuk mengimpor file cadangan dari Amazon S3 ke Amazon RDS
<a name="MySQL.Procedural.Importing.Limitations"></a>

Batasan dan pertimbangan berikut berlaku untuk mengimpor file cadangan dari Amazon S3 ke RDS untuk instans DB MySQL: 
+ Anda hanya dapat memigrasikan data ke instans DB baru, bukan ke instans DB yang ada.
+ Anda harus menggunakan Percona XtraBackup untuk mencadangkan data Anda ke Amazon S3. Untuk informasi selengkapnya, lihat [Membuat cadangan basis data](#MySQL.Procedural.Importing.Backup).
+ Bucket Amazon S3 dan instans RDS untuk MySQL DB harus sama. Wilayah AWS
+ Anda tidak dapat memulihkan dari sumber berikut:
  + Ekspor snapshot instans DB ke Amazon S3. Anda juga tidak dapat memigrasikan data dari ekspor snapshot instans DB ke bucket Amazon S3.
  + Database sumber terenkripsi. Namun, Anda dapat mengenkripsi data yang sedang dimigrasikan. Anda juga dapat membiarkan data tidak terenkripsi selama proses migrasi.
  + Database MySQL 5.5 atau 5.6.
+ RDS untuk MySQL tidak mendukung Percona Server untuk MySQL sebagai database sumber karena dapat berisi tabel di file. `compression_dictionary*` `mysql schema`
+ RDS untuk MySQL tidak mendukung migrasi mundur untuk versi mayor atau versi minor. Misalnya, Anda tidak dapat bermigrasi dari MySQL versi 8.0 ke RDS untuk MySQL 5.7, dan Anda tidak dapat bermigrasi dari MySQL versi 8.0.32 ke RDS untuk MySQL versi 8.0.26.
+ Amazon RDS tidak mendukung pengimporan pada kelas instans db.t2.micro DB dari Amazon S3. Namun, Anda dapat mengembalikan ke kelas instans DB yang berbeda, dan kemudian mengubah kelas instance DB nanti. Untuk informasi selengkapnya tentang kelas instans, lihat [Spesifikasi perangkat keras untuk kelas instans DB ](Concepts.DBInstanceClass.Summary.md). 
+ Amazon S3 membatasi ukuran file yang diunggah ke bucket Amazon S3 hingga 5 TB. Jika file cadangan melebihi 5 TB, Anda harus membagi file cadangan tersebut ke dalam beberapa file yang lebih kecil.
+ Amazon RDS membatasi jumlah file yang dapat diunggah ke sebuah bucket Amazon S3 hingga 1 juta. Jika data cadangan untuk basis data Anda, termasuk semua pencadangan penuh dan inkremental, melebihi 1 juta file, gunakan sebuah file Gzip (.gz), tar (.tar.gz), atau xbstream Percona (.xbstream) untuk menyimpan file pencadangan penuh dan inkremental dalam bucket Amazon S3. Percona XtraBackup 8.0 hanya mendukung Percona xbstream untuk kompresi.
+ Untuk menyediakan layanan manajemen untuk setiap instans DB, Amazon RDS membuat `rdsadmin` pengguna saat membuat instans DB. Karena `rdsamin` merupakan pengguna yang dicadangkan di Amazon RDS, batasan berikut berlaku:
  + Amazon RDS tidak mengimpor fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan definer. `'rdsadmin'@'localhost'` Untuk informasi selengkapnya, lihat [Objek yang disimpan dengan 'rdsamin'@'localhost' sebagai penentu](#MySQL.Procedural.Importing.StoredObjects) dan [Hak akses akun pengguna master](UsingWithRDS.MasterAccounts.md). 
  + Saat membuat instans DB, Amazon RDS membuat pengguna master dengan hak istimewa maksimum yang didukung. Saat memulihkan dari cadangan, Amazon RDS secara otomatis menghapus hak istimewa yang tidak didukung yang ditetapkan untuk pengguna yang diimpor.

    Untuk mengidentifikasi pengguna yang mungkin terpengaruh oleh hal ini, lihat [Akun pengguna dengan hak akses yang tidak didukung](#MySQL.Migrating.ExtMySQL.Prechecks.Users). Untuk informasi selengkapnya tentang hak istimewa yang didukung di RDS untuk MySQL, lihat. [Model hak istimewa berbasis peran untuk My RDS SQL](Appendix.MySQL.CommonDBATasks.privilege-model.md)
+ Amazon RDS tidak memigrasikan tabel yang dibuat pengguna dalam skema. `mysql`
+ Anda harus mengkonfigurasi `innodb_data_file_path` parameter dengan hanya satu file data yang menggunakan nama file data default`ibdata1:12M:autoextend`. Anda dapat memigrasikan database dengan dua file data, atau dengan file data dengan nama berbeda, menggunakan metode ini.

  Contoh berikut adalah nama file yang tidak diizinkan Amazon RDS: 
  + `innodb_data_file_path=ibdata1:50M`
  + `ibdata2:50M:autoextend`
  + `innodb_data_file_path=ibdata01:50M:autoextend`
+ Anda tidak dapat bermigrasi dari basis data sumber yang memiliki tabel di luar direktori data MySQL default.
+ Ukuran maksimum yang didukung untuk cadangan tidak terkompresi menggunakan metode ini dibatasi hingga 64 TiB. Untuk cadangan terkompresi, batas ini lebih rendah untuk memperhitungkan persyaratan ruang tanpa kompresi. Dalam kasus seperti itu, ukuran cadangan maksimum yang didukung adalah`64 TiB - compressed backup size`. 

  Untuk informasi tentang ukuran database maksimum yang didukung RDS untuk MySQL, lihat dan. [Penyimpanan SSD Tujuan Umum](CHAP_Storage.md#Concepts.Storage.GeneralSSD) [Penyimpanan SSD IOPS yang Tersedia](CHAP_Storage.md#USER_PIOPS) 
+ Amazon RDS tidak mendukung pengimporan MySQL dan komponen dan plugin eksternal lainnya.
+ Amazon RDS tidak memulihkan semuanya dari database Anda. Kami menyarankan Anda menyimpan skema database dan nilai untuk item berikut dari database sistem MySQL sumber Anda, dan kemudian menambahkannya ke RDS yang dipulihkan untuk instance MySQL DB setelah dibuat:
  + Akun pengguna
  + Fungsi
  + Prosedur tersimpan
  + Informasi zona waktu. Informasi zona waktu dimuat dari sistem operasi lokal RDS Anda untuk instance MySQL DB. Untuk informasi selengkapnya, lihat [Zona waktu lokal untuk instans My SQL DB](MySQL.Concepts.LocalTimeZone.md).

### Objek yang disimpan dengan 'rdsamin'@'localhost' sebagai penentu
<a name="MySQL.Procedural.Importing.StoredObjects"></a>

Amazon RDS tidak mengimpor fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan `'rdsadmin'@'localhost'` sebagai definer.

Anda dapat menggunakan skrip SQL berikut pada basis data MySQL sumber Anda untuk menampilkan daftar objek tersimpan yang memiliki pendefinisi yang tidak didukung.

```
-- This SQL query lists routines with `rdsadmin`@`localhost` as the definer.

SELECT
    ROUTINE_SCHEMA,
    ROUTINE_NAME
FROM
    information_schema.routines
WHERE
    definer = 'rdsadmin@localhost';

-- This SQL query lists triggers with `rdsadmin`@`localhost` as the definer.

SELECT
    TRIGGER_SCHEMA,
    TRIGGER_NAME,
    DEFINER
FROM
    information_schema.triggers
WHERE
    DEFINER = 'rdsadmin@localhost';

-- This SQL query lists events with `rdsadmin`@`localhost` as the definer.

SELECT
    EVENT_SCHEMA,
    EVENT_NAME
FROM
    information_schema.events
WHERE
    DEFINER = 'rdsadmin@localhost';

-- This SQL query lists views with `rdsadmin`@`localhost` as the definer.
SELECT
    TABLE_SCHEMA,
    TABLE_NAME
FROM
    information_schema.views
WHERE
    DEFINER = 'rdsadmin@localhost';
```

### Akun pengguna dengan hak akses yang tidak didukung
<a name="MySQL.Migrating.ExtMySQL.Prechecks.Users"></a>

Akun pengguna dengan hak istimewa yang tidak didukung RDS untuk MySQL diimpor tanpa hak istimewa yang tidak didukung. Untuk daftar hak akses yang didukung, lihat [Model hak istimewa berbasis peran untuk My RDS SQL](Appendix.MySQL.CommonDBATasks.privilege-model.md).

Anda dapat menjalankan kueri SQL berikut pada basis data sumber Anda untuk menampilkan daftar akun pengguna yang memiliki hak akses yang tidak didukung.

```
SELECT
    user,
    host
FROM
    mysql.user
WHERE
    Shutdown_priv = 'y'
    OR File_priv = 'y'
    OR Super_priv = 'y'
    OR Create_tablespace_priv = 'y';
```

# Mengimpor data dari database MySQL eksternal ke Amazon RDS for MySQL DB instans
<a name="mysql-importing-data-external-database"></a>

Anda dapat mengimpor data dari database MySQL yang ada ke RDS untuk MySQL DB instance. Anda melakukannya dengan menyalin database dengan [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) dan menyalurkannya langsung ke RDS untuk instance MySQL DB. Utilitas baris `mysqldump` perintah biasanya digunakan untuk membuat cadangan dan mentransfer data dari satu server MySQL ke server MySQL lainnya. Ini disertakan dengan perangkat lunak klien MySQL.

**catatan**  
Jika Anda mengimpor atau mengekspor data dalam jumlah besar dengan instans MySQL DB, lebih andal dan lebih cepat untuk memindahkan data masuk dan keluar dari Amazon RDS dengan menggunakan file cadangan dan Amazon S3. `xtrabackup` Untuk informasi selengkapnya, lihat [Memulihkan cadangan ke instans Amazon RDS for MySQL DB](MySQL.Procedural.Importing.md). 

`mysqldump`Perintah khas untuk memindahkan data dari database eksternal ke instans Amazon RDS DB terlihat mirip dengan contoh berikut. Ganti nilai dengan informasi Anda sendiri.

```
mysqldump -u local_user \
    --databases database_name \
    --single-transaction \
    --compress \
    --order-by-primary  \
    --routines=0 \
    --triggers=0 \
    --events=0 \
    -plocal_password | mysql -u RDS_user \
        --port=port_number \
        --host=host_name \
        -pRDS_password
```

**penting**  
Pastikan tidak ada spasi di antara opsi `-p` dan kata sandi yang dimasukkan.  
Sebagai praktik terbaik keamanan, tentukan kredensil selain petunjuk yang ditunjukkan dalam contoh ini.

Perhatikan rekomendasi dan pertimbangan berikut:
+ Jangan sertakan skema berikut dalam filedump: 
  + `sys`
  + `performance_schema`
  + `information_schema`

  Utilitas `mysqldump` tidak menyertakan skema tersebut 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](https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html)
+ Untuk melakukan impor, pastikan pengguna yang melakukannya memiliki akses ke instans DB. Untuk informasi selengkapnya, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md).

Parameternya adalah sebagai berikut:
+ `-u local_user` – Gunakan untuk menentukan nama pengguna. Dalam penggunaan pertama parameter ini, tentukan nama akun pengguna pada database MySQL lokal yang Anda identifikasi dengan parameter. `--databases`
+ `--databases database_name`— Gunakan untuk menentukan nama database pada instance MySQL lokal yang ingin Anda impor ke Amazon RDS.
+ `--single-transaction` – Gunakan untuk memastikan bahwa semua data yang dimuat dari basis data lokal konsisten dengan satu titik waktu. Jika ada proses lain yang mengubah data saat `mysqldump` membacanya, penggunaan parameter ini dapat membantu menjaga integritas data. 
+ `--compress` – Gunakan untuk mengurangi konsumsi bandwidth jaringan dengan mengompres data dari basis data lokal sebelum mengirimkannya ke Amazon RDS.
+ `--order-by-primary` – Gunakan untuk mengurangi waktu pemuatan dengan mengurutkan setiap tabel data berdasarkan kunci primernya.
+ `--routines`Gunakan jika rutinitas seperti prosedur atau fungsi tersimpan ada dalam database yang Anda salin. Setel parameter ke`0`, yang mengecualikan rutinitas selama proses impor. Kemudian kemudian secara manual membuat ulang rutinitas di database Amazon RDS.
+ `--triggers`— Gunakan jika pemicu ada di database yang Anda salin. Setel parameter ke`0`, yang mengecualikan pemicu selama proses impor. Kemudian kemudian buat ulang pemicu secara manual di database Amazon RDS.
+ `--events`— Gunakan jika peristiwa ada dalam database yang Anda salin. Setel parameter ke`0`, yang mengecualikan peristiwa selama proses impor. Kemudian kemudian buat ulang peristiwa secara manual di database Amazon RDS. 
+ `-plocal_password` – Gunakan untuk menentukan kata sandi. Dalam penggunaan pertama parameter ini, tentukan kata sandi untuk akun pengguna yang Anda identifikasi dengan `-u` parameter pertama.
+ `-u RDS_user` – Gunakan untuk menentukan nama pengguna. Dalam penggunaan kedua parameter ini, tentukan nama akun pengguna pada database default untuk instance MySQL DB yang Anda identifikasi dengan parameter. `--host`
+ `--port port_number`— Gunakan untuk menentukan port untuk instance MySQL DB Anda. Secara default, ini adalah 3306 kecuali Anda mengubah nilai saat membuat instans DB.
+ `--host host_name` – Gunakan untuk menentukan nama Sistem Nama Domain (DNS) dari titik akhir instans DB Amazon RDS, misalnya, `myinstance.123456789012.us-east-1.rds.amazonaws.com`. Anda dapat menemukan nilai endpoint dalam detail instans DB di konsol Amazon RDS.
+ `-pRDS_password` – Gunakan untuk menentukan kata sandi. Saat menggunakan parameter ini untuk kedua kalinya, Anda harus menentukan kata sandi untuk akun pengguna yang diidentifikasi oleh parameter `-u` kedua.

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 parameter berikut dengan `mysqldump` perintah Anda: 
+ `--routines=0`
+ `--triggers=0`
+ `--events=0`

**Contoh**

Contoh berikut menyalin database `world` sampel pada host lokal ke RDS untuk MySQL DB instance. Ganti nilai dengan informasi Anda sendiri.

Untuk Linux, macOS, atau Unix:

```
sudo mysqldump -u local_user \
    --databases world \
    --single-transaction \
    --compress \
    --order-by-primary  \
    --routines=0 \
    --triggers=0 \
    --events=0 \
    -plocal_password | mysql -u rds_user \
        --port=3306 \
        --host=my_instance.123456789012.us-east-1.rds.amazonaws.com \
        -pRDS_password
```

Untuk Windows:

Jalankan perintah berikut dalam prompt perintah yang telah dibuka dengan mengklik kanan **Command Prompt** pada menu program Windows dan memilih **Run as administrator**. Ganti nilai dengan informasi Anda sendiri.

```
mysqldump -u local_user ^
    --databases world ^
    --single-transaction ^
    --compress ^
    --order-by-primary  ^
    --routines=0 ^
    --triggers=0 ^
    --events=0 ^
    -plocal_password | mysql -u RDS_user ^
        --port=3306 ^
        --host=my_instance.123456789012.us-east-1.rds.amazonaws.com ^
        -pRDS_password
```

**catatan**  
Sebagai praktik terbaik keamanan, tentukan kredensil selain petunjuk yang ditampilkan dalam contoh.

# Mengimpor data ke database Amazon RDS for MySQL dengan downtime yang dikurangi
<a name="mysql-importing-data-reduced-downtime"></a>

Dalam beberapa kasus, Anda mungkin perlu mengimpor data dari database MySQL eksternal yang mendukung aplikasi langsung ke 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 diteruskan ke AWS lewat jaringan. 

Dalam prosedur ini, Anda dapat mentransfer salinan data basis data Anda ke instans Amazon EC2 dan mengimpor data ke basis data 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. Konfigurasikan replikasi berdasarkan koordinat log biner.

**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](MySQL.Procedural.Importing.md). 

Diagram berikut menunjukkan mengimpor database MySQL eksternal ke database MySQL di Amazon RDS.

![\[Alur kerja yang menunjukkan mengimpor database MySQL eksternal ke database MySQL di Amazon RDS.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_1.png)


## Tugas 1: Buat salinan database Anda yang ada
<a name="mysql-importing-data-reduced-downtime-copy-database"></a>

Langkah pertama dalam proses migrasi sejumlah besar data ke RDS untuk database MySQL dengan downtime minimal adalah membuat salinan data sumber. 

Diagram berikut menunjukkan membuat cadangan dari database MySQL.

![\[Alur kerja yang menunjukkan pembuatan cadangan database MySQL.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_2.png)


Anda dapat menggunakan utilitas `mysqldump` untuk menciptakan sebuah pencadangan basis data dalam format SQL atau delimited-text. Kami menyarankan Anda melakukan uji coba dengan setiap format di lingkungan non-produksi untuk melihat metode mana yang meminimalkan jumlah waktu yang `mysqldump` berjalan.

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 [Langkah 5: Muat data](mysql-importing-data-any-source.md#mysql-importing-data-any-source-load-data) di prosedur Mengimpor data dari sumber apa pun.

Sebelum Anda memulai operasi pencadangan, pastikan untuk mengatur opsi replikasi pada database 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` dengan `mysqldump` karena dapat memindahkan tahap konsisten dari basis data ke lokasi lain. Untuk memastikan file dump valid, jangan menjalankan pernyataan bahasa definisi data (DDL) saat `mysqldump` sedang berjalan. Anda dapat menjadwalkan sebuah window pemeliharaan untuk operasi ini.
+ Jangan sertakan skema berikut dalam filedump: 
  + `sys`
  + `performance_schema`
  + `information_schema`

  Utilitas `mysqldump` tidak menyertakan skema tersebut 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](https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html)

### Mengatur opsi replikasi
<a name="mysql-importing-data-reduced-downtime-set-replication-options"></a>

1. Edit file `my.cnf` File ini biasanya terletak di bawah`/etc`.

   ```
   sudo vi /etc/my.cnf
   ```

   Tambahkan opsi `log_bin` dan `server_id` ke bagian `[mysqld]`. Opsi `log_bin` menyediakan sebuah pengidentifikasi nama file untuk file log biner. Opsi `server_id` menyediakan pengidentifikasi unik untuk server dalam hubungan sumber-replika.

   Contoh berikut menunjukkan `[mysqld]` bagian diperbarui dari `my.cnf` file:

   ```
   [mysqld]
   log-bin=mysql-bin
   server-id=1
   ```

   Untuk informasi selengkapnya, lihat [Mengatur Konfigurasi Sumber Replikasi](https://dev.mysql.com/doc/refman/8.4/en/replication-howto-masterbaseconfig.html) dalam dokumentasi MySQL.

1. Untuk replikasi dengan cluster DB multi-AZ, atur `GTID_MODE` parameter `ENFORCE_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.

1. Mulai ulang layanan `mysql`.

   ```
   sudo service mysqld restart
   ```

### Untuk menciptakan sebuah salinan cadangan dari basis data yang sudah ada
<a name="mysql-importing-data-reduced-downtime-create-backup"></a>

1. Ciptakan sebuah cadangan dari data Anda menggunakan utilitas `mysqldump`, yang ditentukan dalam format SQL atau delimited-text.

   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 dalam](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html) dokumentasi MySQL.

   Untuk meningkatkan kinerja dan memastikan integritas data, gunakan `--order-by-primary` dan `--single-transaction` opsi untuk`mysqldump`.

   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](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto-mysqldump.html).

   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 \
         -u local_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 ^
         -u local_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 dengan `mysqldump` perintah Anda:   
`--routines=0`
`--triggers=0`
`--events=0`

     Untuk MySQL 8.0.22 dan versi yang lebih rendah, ketika Anda `mysqldump` menjalankan dan menentukan format teks terbatas, komentar dikembalikan. `CHANGE MASTER TO` Komentar ini berisi nama dan posisi file log master. Untuk MySQL 8.0.23 dan versi yang lebih tinggi, ketika Anda `mysqldump` menjalankan menggunakan format teks terbatas, komentar dikembalikan. `CHANGE REPLICATION SOURCE TO` Komentar ini berisi nama file log sumber dan posisi. Jika instance eksternal adalah 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 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 di `CHANGE REPLICATION SOURCE TO` file cadangan. 

1. 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 instans Amazon EC2 yang harus 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 instans Amazon EC2 dan salin database terkompresi
<a name="mysql-importing-data-reduced-downtime-create-ec2-copy-database"></a>

Penyalinan file cadangan basis data terkompresi ke sebuah instans Amazon EC2 membutuhkan lebih sedikit sumber daya jaringan dibandingkan dengan melakukan penyalinan langsung data tidak terkompresi antar instans basis data. Setelah data Anda ada di Amazon EC2, Anda dapat menyalinnya dari sana langsung ke database MySQL Anda. Agar Anda dapat menghemat biaya sumber daya jaringan, instans Amazon EC2 Anda harus Wilayah AWS sama dengan instans Amazon RDS DB Anda. Memiliki instans Amazon EC2 yang Wilayah AWS sama dengan database Amazon RDS Anda juga mengurangi latensi jaringan selama impor.

Diagram berikut menunjukkan penyalinan cadangan database ke instans Amazon EC2.

![\[Alur kerja yang menampilkan penyalinan cadangan database ke instans Amazon EC2.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_3.png)


### Membuat instans Amazon EC2 dan menyalin data Anda
<a name="mysql-importing-data-reduced-downtime-create-ec2"></a>

1. Di Wilayah AWS tempat Anda berencana 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 Amazon](https://console.aws.amazon.com/vpc) untuk membuat dan mengelola VPCs, subnet, dan grup keamanan. Untuk informasi selengkapnya, lihat [Memulai Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#getting-started) di *Panduan Pengguna Amazon Virtual Private Cloud*.

1. Buka [konsol Amazon EC2](https://console.aws.amazon.com/ec2) dan pilih yang berisi Wilayah AWS instans Amazon EC2 dan database Amazon RDS Anda. Luncurkan sebuah instans Amazon EC2 menggunakan VPC, subnet, dan grup keamanan yang Anda buat pada Langkah 1. Pastikan Anda memilih tipe instans dengan penyimpanan yang cukup untuk file cadangan basis data Anda saat tidak terkompresi. Untuk detail tentang instans Amazon EC2, lihat [Memulai Amazon EC2 di Panduan Pengguna Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) *Elastic Compute Cloud*.

1. Untuk terhubung ke basis data Amazon RDS Anda dari instans Amazon EC2 Anda, edit grup keamanan VPC Anda. Tambahkan aturan masuk yang menentukan alamat IP privat instans EC2 Anda. Anda dapat menemukan alamat IP pribadi pada tab **Detail** dari panel **Instans** dalam jendela konsol EC2. Untuk mengedit grup keamanan VPC dan menambahkan aturan masuk, pilih **Grup Keamanan** dalam panel navigasi konsol EC2, pilih grup keamanan Anda, lalu tambahkan aturan masuk untuk MySQL atau Aurora yang menentukan alamat IP privat instans EC2 Anda. Untuk mempelajari cara menambahkan aturan masuk ke grup keamanan VPC, [lihat Aturan grup keamanan di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) *Amazon Virtual Private Cloud*.

1. Salin file cadangan basis data terkompresi Anda dari sistem lokal ke instans Amazon EC2 Anda. Gunakan`chmod`, jika perlu, untuk memastikan bahwa Anda memiliki izin menulis untuk direktori target instans Amazon EC2. Anda dapat menggunakan `scp` atau klien Secure Shell (SSH) untuk menyalin file. Perintah berikut adalah `scp` perintah contoh:

   ```
   scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
   ```
**penting**  
Saat menyalin data sensitif, pastikan untuk menggunakan protokol transfer jaringan yang aman.

1. Hubungkan ke instans Amazon EC2 Anda dan instal pembaruan terkini dan alat klien MySQL dengan menggunakan perintah berikut:

   ```
   sudo yum update -y
   sudo yum install mysql -y
   ```

   Untuk informasi selengkapnya, lihat [Connect ke instans Linux Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux) 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](https://dev.mysql.com/doc/refman/8.4/en/installing.html).

1. Saat terhubung ke instans Amazon EC2, dekompresi file cadangan basis data 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: Membuat database MySQL dan mengimpor data dari instans Amazon EC2
<a name="mysql-importing-data-reduced-downtime-create-database-import-data"></a>

Dengan membuat RDS untuk instans MySQL DB atau RDS untuk kluster DB Multi-AZ MySQL Wilayah AWS sama dengan instans Amazon EC2 Anda, Anda dapat mengimpor file cadangan database dari Amazon EC2 lebih cepat daripada melalui internet.

Diagram berikut menunjukkan mengimpor cadangan dari instans Amazon EC2 ke database MySQL.

![\[Alur kerja yang menunjukkan mengimpor cadangan dari instans EC2 ke database MySQL.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_4.png)


### Untuk membuat database MySQL dan mengimpor data Anda
<a name="mysql-importing-data-reduced-downtime-create-database"></a>

1. 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 database MySQL sumber. Untuk informasi selengkapnya, lihat [ DB](Concepts.DBInstanceClass.md).

1. Buat instans DB atau cluster DB multi-AZ di Wilayah AWS yang berisi instans Amazon EC2 Anda.

   Untuk membuat RDS untuk MySQL Multi-AZ DB cluster, ikuti petunjuk di. [Membuat cluster DB Multi-AZ untuk Amazon RDS](create-multi-az-db-cluster.md)

   Untuk membuat instans RDS untuk MySQL DB, ikuti petunjuk [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md) dan gunakan panduan berikut:
   + Tentukan versi mesin DB yang kompatibel dengan instans DB sumber Anda.
   + Tentukan cloud privat virtual (VPC) dan grup keamanan VPC yang sama untuk instans Amazon EC2 Anda. Pendekatan ini memastikan bahwa instans Amazon EC2 dan instans Amazon RDS Anda terlihat oleh satu sama lain pada 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.

1. 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, lihat[Grup parameter untuk RDS](USER_WorkingWithParamGroups.md). 

1. 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.

1. Hubungkan ke instans Amazon EC2 Anda. Untuk informasi selengkapnya, lihat [Connect ke instans Linux Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux) di *Panduan Pengguna Amazon Elastic Compute Cloud*. 

1. Hubungkan ke basis data Amazon RDS Anda sebagai sebuah host jarak jauh dari instans Amazon EC2 Anda menggunakan perintah `mysql`. Perintah berikut adalah contoh:

   ```
   mysql -h host_name -P 3306 -u db_master_user -p
   ```

   *host\$1name*Ini adalah titik akhir basis data Amazon RDS.

1. Pada `mysql` prompt, jalankan `source` 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> use database_name;
     ```

     Lalu buat tabel.

     ```
     mysql> source table1.sql
     mysql> source table2.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 sama `LOAD DATA LOCAL INFILE` untuk memastikan interpretasi yang tepat dari konten file data.

1. Jalankan `SELECT` kueri sederhana terhadap satu atau dua tabel dalam database yang diimpor untuk memverifikasi bahwa impor berhasil.

Jika Anda tidak lagi memerlukan instans Amazon EC2 yang digunakan dalam prosedur ini, hentikan instans EC2 untuk mengurangi penggunaan sumber daya Anda. AWS Untuk menghentikan instans EC2, lihat [Mengakhiri instance di Panduan Pengguna](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) *Amazon Elastic Compute Cloud*.

## Tugas 4: Replikasi data dari database eksternal Anda ke database Amazon RDS baru Anda
<a name="mysql-importing-data-reduced-downtime-replicate-data"></a>

Database sumber Anda kemungkinan diperbarui selama waktu yang diperlukan untuk menyalin dan mentransfer data ke database MySQL. Dengan demikian, Anda dapat menggunakan replikasi untuk membawa database yang disalin up-to-date dengan database sumber.

![\[Alur kerja yang menunjukkan replikasi data dari database MySQL eksternal ke database di Amazon RDS.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_5.png)


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\$1rds\$1set\$1external\$1master (RDS untuk MySQL mayor versi 8.0 dan lebih rendah)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master) 
+ [](mysql-stored-proc-replicating.md#mysql_rds_set_external_source)
+ [mysql.rds\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md)untuk mengkonfigurasi replikasi dan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) untuk memulai replikasi

### Memulai replikasi
<a name="mysql-importing-data-reduced-downtime-start-replication"></a>

Di Tugas 1, [saat Anda mengatur opsi replikasi](#mysql-importing-data-reduced-downtime-set-replication-options), Anda mengaktifkan logging biner dan menetapkan ID server unik untuk basis data sumber Anda. Sekarang, Anda dapat mengatur database Amazon RDS Anda sebagai replika dengan database langsung Anda sebagai contoh replikasi sumber.

1. Di konsol Amazon RDS, tambahkan alamat IP server yang menghosting database sumber ke grup keamanan VPC untuk database Amazon RDS. Untuk informasi selengkapnya tentang mengonfigurasi grup keamanan VPC, [lihat Mengonfigurasi aturan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html) 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\$1name*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.

1. 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.

1. Untuk instans sumber, berikan hak istimewa `REPLICATION CLIENT` dan `REPLICATION SLAVE` kepada pengguna replikasi Anda. Misalnya, untuk memberikan keistimewaan `REPLICATION CLIENT` dan `REPLICATION 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';
   ```

1. Jadikan basis data Amazon RDS sebagai replika. Connect ke database Amazon RDS sebagai pengguna utama dan identifikasi database sumber sebagai instance replikasi sumber dengan menggunakan prosedur tersimpan Amazon RDS yang sesuai: 
   + [mysql\$1rds\$1set\$1external\$1master (RDS untuk MySQL mayor versi 8.0 dan lebih rendah)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master)
   + [](mysql-stored-proc-replicating.md#mysql_rds_set_external_source)

   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);
   ```

   **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.

1. Pada database Amazon RDS, untuk memulai replikasi, jalankan perintah berikut yang menggunakan prosedur [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) tersimpan:

   ```
   CALL mysql.rds_start_replication;
   ```

1. Pada database Amazon RDS, untuk menentukan kapan replika diperbarui dengan instance replikasi sumber, jalankan perintah [SHOW REPLICA](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) STATUS. Hasil perintah `SHOW REPLICA STATUS` mencakup bidang `Seconds_Behind_Master`. Ketika `Seconds_Behind_Master` bidang mengembalikan 0, maka replika up to date dengan contoh replikasi sumber.
**catatan**  
Versi MySQL sebelumnya menggunakan `SHOW SLAVE STATUS`, bukan `SHOW REPLICA STATUS`. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan `SHOW SLAVE STATUS`. 

1. 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](https://console.aws.amazon.com/rds/) RDS. Untuk informasi selengkapnya, lihat [Pengantar cadangan](USER_WorkingWithAutomatedBackups.md).

## Tugas 5: Arahkan ulang aplikasi langsung Anda ke instans Amazon RDS Anda
<a name="mysql-importing-data-reduced-downtime-redirect-app"></a>

Setelah database MySQL diperbarui dengan instance replikasi sumber, Anda sekarang dapat memperbarui aplikasi langsung Anda untuk menggunakan instans Amazon RDS. 

![\[Alur kerja yang menunjukkan penghentian replikasi dan mengarahkan aplikasi langsung ke database di Amazon RDS.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/MigrateMySQLToRDS_6.png)


### Untuk mengarahkan aplikasi langsung Anda ke database MySQL Anda dan menghentikan replikasi
<a name="mysql-importing-data-reduced-downtime-redirect-app-stop-app"></a>

1. 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](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html) di Panduan Pengguna *Amazon Virtual Private Cloud*. 

1. Verifikasi bahwa `Seconds_Behind_Master` bidang dalam hasil perintah [SHOW REPLICA STATUS](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) adalah 0, yang menunjukkan bahwa replika sudah up to date dengan instance replikasi sumber.

   ```
   SHOW REPLICA STATUS;
   ```
**catatan**  
Versi MySQL sebelumnya menggunakan `SHOW SLAVE STATUS`, bukan `SHOW REPLICA STATUS`. Jika Anda menggunakan versi MySQL sebelum 8.0.23, gunakan `SHOW SLAVE STATUS`. 

1. Tutup semua koneksi ke sumber setelah transaksi selesai.

1. 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.

1. Hubungkan ke instans DB.

   Untuk klaster DB Multi-AZ, hubungkan ke instans DB penulis.

1. Hentikan replikasi untuk instans Amazon RDS dengan menjalankan perintah berikut yang menggunakan prosedur [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) tersimpan:

   ```
   CALL mysql.rds_stop_replication;
   ```

1. Setel ulang konfigurasi replikasi sehingga instance ini tidak lagi diidentifikasi sebagai replika dengan menggunakan prosedur tersimpan Amazon RDS yang sesuai di database Amazon RDS Anda:
   +  [mysql\$1rds\$1reset\$1external\$1master (RDS untuk MySQL mayor versi 8.0 dan lebih rendah)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) 
   + [](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source)

   **MySQL 8.4 dan versi yang lebih tinggi**

   ```
   CALL mysql.rds_reset_external_source;
   ```

   **MySQL 8.0 dan versi yang lebih rendah**

   ```
   CALL mysql.rds_reset_external_master;
   ```

1. 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](Concepts.MultiAZ.md) dan [Menggunakan replika baca instans DB](USER_ReadRepl.md).

# Mengimpor data dari sumber apa pun ke Amazon RDS for MySQL DB instans
<a name="mysql-importing-data-any-source"></a>

Dengan Amazon RDS, Anda dapat memigrasikan data MySQL yang ada dari sumber apa pun ke RDS untuk instans DB MySQL. Anda dapat mentransfer data dari database lokal, penyedia cloud lain, atau RDS yang ada untuk instans MySQL DB ke RDS target untuk instans MySQL DB. Dengan fungsi ini, Anda dapat mengkonsolidasikan database, menerapkan solusi pemulihan bencana, atau transisi dari database yang dikelola sendiri. Skenario umum termasuk pindah dari server MySQL yang dihosting sendiri ke instans Amazon RDS DB yang dikelola sepenuhnya, mengkonsolidasikan beberapa database MySQL ke dalam satu instans DB, atau membuat lingkungan pengujian dengan data produksi. Bagian berikut memberikan step-by-step petunjuk untuk mengimpor data MySQL Anda menggunakan metode `mysqldump` seperti, file cadangan, atau replikasi.

## Langkah 1: Buat file datar yang berisi data yang akan dimuat
<a name="mysql-importing-data-any-source-create-flat-files"></a>

Gunakan format umum, seperti CSV (Comma-Separated Values), untuk menyimpan data yang akan dimuat. Setiap tabel harus memiliki file sendiri—Anda tidak dapat menggabungkan data untuk beberapa tabel dalam file yang sama. Beri setiap file nama yang sama dengan tabelnya. Ekstensi file dapat berupa apa pun yang Anda inginkan. Misalnya, jika nama tabelnya`sales`, nama file bisa jadi `sales.csv` atau`sales.txt`.

Jika memungkinkan, urutkan data dengan kunci utama tabel yang sedang dimuat. Tindakan ini secara drastis meningkatkan waktu pemuatan dan meminimalkan kebutuhan penyimpanan disk. 

Kecepatan dan efisiensi prosedur ini ditentukan oleh kemampuan untuk mempertahankan ukuran file tetap kecil. Jika ukuran file individual yang tidak terkompresi lebih besar dari 1 GiB, bagilah ke dalam beberapa file dan muat setiap file secara terpisah.

Pada sistem seperti Unix (termasuk Linux), gunakan perintah `split`. Misalnya, perintah berikut membagi file `sales.csv` menjadi beberapa file berukuran kurang dari 1 GiB, yang hanya membagi pada jeda baris (-C 1024m). Nama-nama file baru termasuk sufiks numerik menaik. Perintah berikut menghasilkan file dengan nama seperti `sales.part_00` dan`sales.part_01`. 

```
split -C 1024m -d sales.csv sales.part_ 
```

Utilitas yang serupa juga tersedia untuk sistem operasi lain.

Anda dapat menyimpan file datar di mana saja. Namun, ketika Anda memuat data di [Langkah 5](#mysql-importing-data-any-source-load-data), Anda harus memanggil `mysql` shell dari lokasi yang sama di mana file ada, atau menggunakan jalur absolut untuk file saat Anda menjalankan`LOAD DATA LOCAL INFILE`.

## Langkah 2: Hentikan aplikasi apa pun dari mengakses instans DB target
<a name="mysql-importing-data-any-source-stop-apps"></a>

Sebelum memulai pemuatan besar, hentikan semua aktivitas aplikasi mengakses instans DB target yang Anda rencanakan untuk dimuat. Kami menyarankan hal ini terutama jika sesi lain akan memodifikasi tabel yang sedang dimuat atau tabel yang menjadi rujukan. Tindakan ini dapat mengurangi risiko pelanggaran pembatasan yang terjadi selama pemuatan dan meningkatkan performa pemuatan. Tindakan ini juga memungkinkan untuk memulihkan instans DB ke titik tepat sebelum pemuatan tanpa kehilangan perubahan yang dibuat oleh proses yang tidak terlibat dalam pemuatan. 

Tentu saja, terkadang ini tidak memungkinkan atau tidak praktis. Jika Anda tidak dapat menghentikan aplikasi dari mengakses instans DB sebelum pemuatan, lakukan langkah-langkah untuk memastikan ketersediaan dan integritas data Anda. Langkah-langkah tertentu yang dibutuhkan dapat bervariasi tergantung kasus penggunaan dan persyaratan situs tertentu. 

## Langkah 3: Buat snapshot DB
<a name="mysql-importing-data-any-source-create-snapshot"></a>

Jika Anda berencana memuat data ke dalam instans DB baru yang tidak berisi data, Anda dapat melompati langkah ini. Jika tidak, sebaiknya Anda membuat snapshot DB dari instans Amazon RDS DB target sebelum dan sesudah pemuatan data. Snapshot Amazon RDS DB adalah cadangan lengkap instans DB Anda yang dapat Anda gunakan untuk memulihkan instans DB Anda ke status yang diketahui. Saat Anda memulai snapshot DB, I/O operasi ke instans DB Anda ditangguhkan sementara saat database Anda dicadangkan. 

Jika perlu, segera buat sebuah snapshot DB sebelum pemuatan agar Anda dapat memulihkan basis data ke statusnya sebelum pemuatan. Dengan snapshot DB yang diambil segera setelah pemuatan, Anda tidak perlu memuat data lagi jika terjadi hal yang tidak diinginkan. Anda juga dapat menggunakan snapshot DB setelah pemuatan untuk mengimpor data ke instance database baru. 

Contoh berikut menjalankan AWS CLI [create-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-snapshot.html)perintah untuk membuat snapshot DB dari `AcmeRDS` instance dan memberikan snapshot DB pengenal. `"preload"`

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-snapshot \
    --db-instance-identifier AcmeRDS \
    --db-snapshot-identifier preload
```

Untuk Windows:

```
aws rds create-db-snapshot ^
    --db-instance-identifier AcmeRDS ^
    --db-snapshot-identifier preload
```

Anda juga dapat menggunakan pemulihan dari fungsionalitas snapshot DB untuk membuat instans DB pengujian untuk melakukan dry run atau untuk membatalkan perubahan yang dibuat selama pemuatan. 

Harap diingat bahwa pemulihan basis data dari sebuah snapshot DB akan menciptakan sebuah instans DB baru yang, seperti semua instans DB, memiliki pengidentifikasi yang unik dan titik akhir. Untuk memulihkan instans DB tanpa mengubah titik akhir, pertama-tama hapus instans DB sehingga Anda dapat menggunakan ulang titik akhir. 

Misalnya, untuk membuat instans DB untuk dry run atau pengujian lainnya, beri instans DB tersebut pengidentifikasinya sendiri. Dalam contoh ini, `AcmeRDS-2`" adalah pengidentifikasinya. Contoh ini terhubung ke instans DB menggunakan titik akhir yang terkait dengan `AcmeRDS-2`. Untuk informasi selengkapnya, lihat [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html).

Untuk Linux, macOS, atau Unix:

```
aws rds restore-db-instance-from-db-snapshot \
    --db-instance-identifier AcmeRDS-2 \
    --db-snapshot-identifier preload
```

Untuk Windows:

```
aws rds restore-db-instance-from-db-snapshot ^
    --db-instance-identifier AcmeRDS-2 ^
    --db-snapshot-identifier preload
```

Untuk menggunakan ulang titik akhir yang sudah ada, pertama-tama hapus instans DB kemudian berikan pengidentifikasi yang sama kepada basis data yang dipulihkan. Untuk informasi selengkapnya, lihat [delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html). 

Contoh berikut juga mengambil snapshot DB akhir dari instans DB sebelum menghapusnya. Ini adalah langkah opsional, tetapi direkomendasikan. 

Untuk Linux, macOS, atau Unix:

```
aws rds delete-db-instance \
    --db-instance-identifier AcmeRDS \
    --final-db-snapshot-identifier AcmeRDS-Final

aws rds restore-db-instance-from-db-snapshot \
    --db-instance-identifier AcmeRDS \
    --db-snapshot-identifier preload
```

Untuk Windows:

```
aws rds delete-db-instance ^
    --db-instance-identifier AcmeRDS ^
    --final-db-snapshot-identifier AcmeRDS-Final

aws rds restore-db-instance-from-db-snapshot ^
    --db-instance-identifier AcmeRDS ^
    --db-snapshot-identifier preload
```

## Langkah 4 (Opsional): Matikan cadangan otomatis Amazon RDS
<a name="mysql-importing-data-any-source-turn-off-automated-backups"></a>

**Awas**  
Jangan mematikan pencadangan otomatis jika Anda perlu melakukan point-in-time pemulihan.

Mematikan pencadangan otomatis adalah pengoptimalan kinerja dan tidak diperlukan untuk pemuatan data. Mematikan backup otomatis menghapus semua backup yang ada. Akibatnya, setelah Anda mematikan pencadangan otomatis, point-in-time pemulihan tidak mungkin dilakukan. Snapshot DB manual tidak terpengaruh dengan menonaktifkan pencadangan otomatis. Semua snapshot DB manual yang sudah ada tetap tersedia untuk pemulihan.

Penonaktifan pencadangan otomatis mengurangi waktu pemuatan sekitar 25 persen dan mengurangi jumlah ruang penyimpanan yang dibutuhkan selama pemuatan. Jika Anda berencana memuat data ke dalam sebuah instans DB baru yang tidak berisi data, penonaktifan pencadangan adalah cara yang mudah untuk mempercepat pemuatan dan menghindari penggunaan penyimpanan tambahan yang diperlukan untuk pencadangan. Namun, dalam beberapa kasus Anda mungkin berencana untuk melakukan pemuatan ke dalam instans DB yang sudah berisi data. Jika demikian, pertimbangkan manfaat mematikan cadangan terhadap dampak kehilangan kemampuan untuk melakukan. point-in-time-recovery 

Instans DB memiliki pencadangan otomatis yang diaktifkan secara default (dengan periode retensi satu hari). Untuk menonaktifkan pencadangan otomatis, atur periode retensi pencadangan ke nol. Setelah pemuatan selesai, Anda dapat mengaktifkan kembali pencadangan dengan mengatur periode retensi pencadangan ke nilai selain nol. Untuk mengaktifkan atau mematikan cadangan, Amazon RDS mematikan instans DB dan kemudian memulai ulang untuk mengaktifkan atau menonaktifkan pencatatan MySQL. 

Jalankan AWS CLI `modify-db-instance` perintah untuk mengatur retensi cadangan ke nol dan segera terapkan perubahan. Untuk mengatur periode retensi menjadi nol diperlukan mulai ulang instans DB, jadi tunggu hingga mulai ulang selesai sebelum melanjutkan. Untuk informasi selengkapnya, lihat [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html).

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier AcmeRDS \
    --apply-immediately \
    --backup-retention-period 0
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier AcmeRDS ^
    --apply-immediately ^
    --backup-retention-period 0
```

Anda dapat memeriksa status instans DB Anda dengan AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)perintah. Contoh berikut menampilkan status instans DB dari instans `AcmeRDS` DB:

```
aws rds describe-db-instances --db-instance-identifier AcmeRDS --query "*[].{DBInstanceStatus:DBInstanceStatus}"
```

Ketika status instans DB`available`, Anda siap untuk melanjutkan ke langkah berikutnya. 

## Langkah 5: Muat data
<a name="mysql-importing-data-any-source-load-data"></a>

Untuk membaca baris dari file datar Anda ke dalam tabel database, gunakan pernyataan MySQL`LOAD DATA LOCAL INFILE`.

**catatan**  
Anda harus memanggil `mysql` shell dari lokasi yang sama di mana file datar Anda ada, atau menggunakan jalur absolut untuk file saat Anda menjalankan`LOAD DATA LOCAL INFILE`.

Contoh berikut menunjukkan cara memuat data dari file bernama `sales.txt` ke dalam tabel bernama `Sales` dalam database:

```
mysql> LOAD DATA LOCAL INFILE 'sales.txt' INTO TABLE Sales FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\\';
Query OK, 1 row affected (0.01 sec)
Records: 1  Deleted: 0  Skipped: 0  Warnings: 0
```

Untuk informasi selengkapnya tentang `LOAD DATA` pernyataan tersebut, lihat [MEMUAT Pernyataan DATA](https://dev.mysql.com/doc/refman/8.4/en/load-data.html) dalam dokumentasi MySQL.

## Langkah 6: Hidupkan kembali backup otomatis Amazon RDS
<a name="mysql-importing-data-any-source-turn-on-automated-backups"></a>

Jika Anda mematikan pencadangan otomatis Amazon RDS di [Langkah 4](#mysql-importing-data-any-source-turn-off-automated-backups), setelah pemuatan selesai, aktifkan pencadangan otomatis dengan menyetel periode retensi cadangan kembali ke nilai pramuatnya. Seperti disebutkan di Langkah 4, Amazon RDS memulai ulang instans DB, jadi bersiaplah untuk pemadaman singkat. 

Contoh berikut menjalankan AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)perintah untuk mengaktifkan backup otomatis untuk instans `AcmeRDS` DB dan mengatur periode retensi menjadi satu hari:

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier AcmeRDS \
    --backup-retention-period 1 \
    --apply-immediately
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier AcmeRDS ^
    --backup-retention-period 1 ^
    --apply-immediately
```