

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

# Memigrasikan data dari basis data MySQL eksternal ke klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL"></a>

Jika basis data Anda mendukung ruang tabel InnoDB atau MyISAM, Anda memiliki opsi ini untuk memigrasikan data Anda ke klaster DB Amazon Aurora MySQL: 
+ Anda dapat membuat dump data menggunakan utilitas `mysqldump`, lalu mengimpor data tersebut ke klaster DB Amazon Aurora MySQL yang ada. Untuk informasi selengkapnya, lihat [Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump](AuroraMySQL.Migrating.ExtMySQL.mysqldump.md).
+ Anda dapat menyalin file cadangan penuh dan cadangan inkremental dari basis data Anda ke bucket Amazon S3, lalu memulihkan klaster DB Amazon Aurora MySQL dari file tersebut. Opsi ini dapat jauh lebih cepat dibandingkan memigrasikan data menggunakan `mysqldump`. Untuk informasi selengkapnya, lihat [Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md).

**Topics**
+ [Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md)
+ [Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump](AuroraMySQL.Migrating.ExtMySQL.mysqldump.md)

# Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3
<a name="AuroraMySQL.Migrating.ExtMySQL.S3"></a>

Anda dapat menyalin file cadangan penuh dan inkremental dari basis data sumber MySQL versi 5.7 atau 8.0 ke bucket Amazon S3. Kemudian, Anda dapat memulihkan ke klaster DB Amazon Aurora MySQL dengan versi mesin DB mayor yang sama dari file-file tersebut.

Opsi ini bisa jadi jauh lebih cepat dibandingkan memigrasi data menggunakan `mysqldump` karena penggunaan `mysqldump` akan mengulangi semua perintah untuk membuat kembali skema dan data dari basis data sumber di klaster DB Aurora MySQL baru Anda. Dengan menyalin file data MySQL sumber Anda, Aurora MySQL dapat segera menggunakan file tersebut sebagai data untuk klaster DB Aurora MySQL.

Anda juga dapat meminimalkan waktu henti dengan menggunakan replikasi log biner selama proses migrasi. Jika Anda menggunakan replikasi log biner, basis data MySQL eksternal tetap terbuka untuk transaksi saat data sedang dimigrasi ke klaster DB Aurora MySQL. Setelah klaster DB Aurora MySQL dibuat, gunakan replikasi log biner untuk menyinkronkan klaster DB Aurora MySQL dengan transaksi yang terjadi setelah pencadangan. Saat klaster DB Aurora MySQL sinkron dengan basis data MySQL, selesaikan migrasi dengan sepenuhnya beralih ke klaster DB Aurora MySQL untuk transaksi baru. Untuk informasi selengkapnya, lihat [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync).

**Contents**
+ [Pertimbangan dan batasan](#AuroraMySQL.Migrating.ExtMySQL.S3.Limits)
+ [Sebelum Anda memulai](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs)
  + [Instalasi Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup)
  + [Izin yang diperlukan](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.Permitting)
  + [Membuat peran layanan IAM](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.CreateRole)
+ [Mencadangkan file untuk dipulihkan sebagai klaster DB Amazon Aurora MySQL](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup)
  + [Membuat cadangan lengkap dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full)
  + [Menggunakan cadangan tambahan dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr)
  + [Pertimbangan cadangan](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations)
+ [Memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3](#AuroraMySQL.Migrating.ExtMySQL.S3.Restore)
+ [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync)
  + [Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption)
  + [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing)
+ [Mengurangi waktu migrasi fisik ke Amazon Aurora MySQL](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md)
  + [Jenis tabel yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Tables)
  + [Akun pengguna dengan hak akses yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Users)
  + [Hak akses dinamis di Aurora MySQL versi 3](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic)
  + [Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects)

## Pertimbangan dan batasan
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Limits"></a>

Batasan dan pertimbangan berikut berlaku untuk memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3:
+ Anda dapat memigrasikan data Anda hanya ke klaster DB baru, bukan klaster DB yang sudah ada.
+ Anda harus menggunakan Percona XtraBackup untuk mencadangkan data Anda ke S3. Untuk informasi selengkapnya, lihat [Instalasi Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup).
+ Bucket Amazon S3 dan cluster DB MySQL Aurora harus berada di Wilayah yang sama. AWS 
+ Anda tidak dapat memulihkan dari hal berikut:
  + Ekspor snapshot klaster DB ke Amazon S3. Anda juga tidak dapat memigrasikan data dari ekspor snapshot klaster DB ke bucket S3 Anda.
  + Basis data sumber terenkripsi, tetapi Anda dapat mengenkripsi data yang sedang dimigrasikan. Anda juga dapat membiarkan data tidak terenkripsi selama proses migrasi.
  + Basis data MySQL 5.5 atau 5.6
+ Percona Server untuk MySQL tidak didukung sebagai database sumber, karena dapat berisi tabel dalam skema. `compression_dictionary*` `mysql`
+ Anda tidak dapat memulihkan ke klaster DB Aurora Serverless.
+ Migrasi mundur tidak didukung untuk versi mayor atau versi minor. Misalnya, Anda tidak dapat bermigrasi dari MySQL versi 8.0 ke Aurora MySQL versi 2 (kompatibel dengan MySQL 5.7), dan Anda tidak dapat bermigrasi dari MySQL versi 8.0.32 ke Aurora MySQL versi 3.03, yang kompatibel dengan MySQL komunitas versi 8.0.26.
+ Anda tidak dapat bermigrasi ke MySQL versi 3.05 dan yang lebih tinggi dari beberapa versi MySQL 8.0 yang lebih lama, termasuk 8.0.11, 8.0.13, dan 8.0.15. Kami menyarankan agar Anda meningkatkan ke MySQL 8.0.28 sebelum migrasi.
+ Pengimporan dari Amazon S3 tidak didukung di kelas instans DB db.t2.micro. Namun, Anda dapat memulihkan ke kelas instans DB yang berbeda, dan mengubah kelas instans DB di lain waktu. Untuk informasi selengkapnya tentang kelas instans DB, lihat [Kelas instans Amazon Aurora DB](Concepts.DBInstanceClass.md).
+ Amazon S3 membatasi ukuran file yang diunggah ke bucket S3 hingga 5 TB. Jika sebuah file cadangan melebihi 5 TB, maka Anda harus membagi file cadangan ke dalam beberapa file yang lebih kecil.
+ Amazon RDS membatasi jumlah file yang dapat diunggah ke sebuah bucket S3 hingga 1 juta. Jika data cadangan untuk basis data Anda, termasuk semua cadangan penuh dan inkremental, melebihi 1 juta file, gunakan sebuah file Gzip (.gz), tar (.tar.gz), atau Percona xbstream (.xbstream) untuk menyimpan file cadangan penuh dan inkremental dalam bucket Amazon S3. Percona XtraBackup 8.0 hanya mendukung Percona xbstream untuk kompresi.
+ Untuk menyediakan layanan manajemen untuk setiap klaster DB, pengguna `rdsadmin` dibuat saat klaster DB dibuat. Karena ini adalah pengguna yang dicadangkan di RDS, batasan berikut berlaku:
  + Fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan pendefinisi `'rdsadmin'@'localhost'` tidak diimpor. Untuk informasi selengkapnya, lihat [Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects) dan [Hak akses pengguna master Amazon Aurora MySQL](AuroraMySQL.Security.md#AuroraMySQL.Security.MasterUser).
  + Ketika klaster DB Aurora MySQL dibuat, pengguna master akan dibuat dengan hak akses paling tinggi yang didukung. Saat memulihkan dari cadangan, hak akses yang tidak didukung yang diberikan kepada pengguna yang diimpor akan dihapus secara otomatis selama impor.

    Untuk mengidentifikasi pengguna yang mungkin terpengaruh oleh hal ini, lihat [Akun pengguna dengan hak akses yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Users). Untuk informasi selengkapnya tentang hak akses yang didukung di Aurora MySQL, lihat [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model).
+ Untuk Aurora MySQL versi 3, hak akses dinamis tidak diimpor. Hak akses dinamis yang didukung Aurora dapat diimpor setelah migrasi. Untuk informasi selengkapnya, lihat [Hak akses dinamis di Aurora MySQL versi 3](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic).
+ Tabel yang dibuat pengguna dalam skema `mysql` tidak dimigrasikan.
+ Parameter `innodb_data_file_path` harus dikonfigurasi dengan hanya satu file data yang menggunakan nama file data default `ibdata1:12M:autoextend`. Basis data dengan dua file data, atau dengan file data yang memiliki nama yang berbeda, tidak dapat dimigrasikan menggunakan metode ini.

  Berikut ini adalah contoh nama file yang tidak diizinkan: `innodb_data_file_path=ibdata1:50M`, `ibdata2:50M:autoextend` dan `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 yang tidak terkompresi menggunakan metode ini saat ini terbatas pada 64 TiB. Untuk cadangan terkompresi, batas ini lebih rendah untuk memperhitungkan persyaratan ruang yang tidak terkompresi. Dalam kasus seperti itu, ukuran cadangan maksimum yang didukung adalah (`64 TiB – compressed backup size`).
+ Aurora MySQL tidak mendukung pengimporan komponen dan plugin MySQL serta komponen dan plugin eksternal lainnya.
+ Aurora MySQL tidak memulihkan semuanya dari basis data Anda. Kami menyarankan agar Anda menyimpan skema dan nilai basis data untuk item berikut dari basis data MySQL sumber Anda, lalu menambahkannya ke klaster DB Aurora MySQL yang dipulihkan setelah dibuat:
  + Akun pengguna
  + Fungsi
  + Prosedur tersimpan
  + Informasi zona waktu. Informasi zona waktu dimuat dari sistem operasi lokal klaster DB Aurora MySQL Anda. Untuk informasi selengkapnya, lihat [Zona waktu lokal untuk klaster DB Amazon Aurora](Concepts.RegionsAndAvailabilityZones.md#Aurora.Overview.LocalTimeZone).

## Sebelum Anda memulai
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs"></a>

Sebelum Anda dapat menyalin data ke bucket Amazon S3 dan memulihkan klaster DB dari file tersebut, Anda harus melakukan hal berikut:
+ Instal Percona XtraBackup di server lokal Anda.
+ Izinkan Aurora MySQL untuk mengakses bucket Amazon S3 atas nama Anda.

### Instalasi Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup"></a>

Amazon Aurora dapat memulihkan cluster DB dari file yang dibuat menggunakan Percona. XtraBackup Anda dapat menginstal Percona XtraBackup dari [Unduhan Perangkat Lunak -](https://www.percona.com/downloads) Percona.

Untuk migrasi MySQL 5.7, gunakan Percona 2.4. XtraBackup 

Untuk migrasi MySQL 8.0, gunakan Percona 8.0. XtraBackup Pastikan bahwa versi Percona kompatibel dengan XtraBackup versi mesin database sumber Anda.

### Izin yang diperlukan
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.Permitting"></a>

Untuk memigrasikan data MySQL Anda ke klaster DB Amazon Aurora MySQL, beberapa izin diperlukan:
+ Pengguna yang meminta Aurora membuat cluster baru dari bucket Amazon S3 harus memiliki izin untuk membuat daftar bucket untuk akun Anda. AWS Anda memberikan izin ini kepada pengguna menggunakan kebijakan AWS Identity and Access Management (IAM).
+ Aurora memerlukan izin untuk bertindak atas nama Anda untuk mengakses Amazon S3 bucket tempat Anda menyimpan file yang digunakan untuk membuat klaster DB Amazon Aurora MySQL Anda. Anda memberikan izin yang diperlukan Aurora menggunakan peran layanan IAM. 
+ Pengguna yang mengajukan permintaan juga harus memiliki izin untuk menampilkan daftar peran IAM untuk akun AWS Anda.
+ Jika pengguna yang mengajukan permintaan tersebut bertujuan untuk membuat peran layanan IAM atau meminta Aurora membuat peran layanan IAM (dengan menggunakan konsol), pengguna tersebut harus memiliki izin untuk membuat peran IAM bagi akun AWS Anda.
+ Jika Anda berencana untuk mengenkripsi data selama proses migrasi, perbarui kebijakan IAM pengguna yang akan melakukan migrasi untuk memberikan akses RDS ke yang AWS KMS keys digunakan untuk mengenkripsi cadangan. Untuk petunjuk, lihat [Membuat kebijakan IAM untuk mengakses sumber daya AWS KMS](AuroraMySQL.Integrating.Authorizing.IAM.KMSCreatePolicy.md).

Misalnya, kebijakan IAM berikut memberikan izin minimum yang diperlukan pengguna untuk menggunakan konsol untuk menampilkan daftar peran IAM, membuat peran IAM, menampilkan daftar bucket Amazon S3 untuk akun Anda, dan menampilkan daftar kunci KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListRoles",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy",
                "s3:ListBucket",
                "kms:ListKeys"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Selain itu, bagi pengguna yang ingin mengaitkan peran IAM dengan bucket Amazon S3, pengguna IAM harus memiliki izin `iam:PassRole` untuk peran IAM tersebut. Izin ini memungkinkan administrator membatasi peran IAM mana yang dapat dikaitkan dengan bucket Amazon S3. 

Misalnya, kebijakan IAM berikut mengizinkan pengguna mengaitkan peran bernama `S3Access` dengan bucket Amazon S3.

------
#### [ JSON ]

****  

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

------

Untuk informasi selengkapnya tentang izin pengguna IAM, lihat [Mengelola akses menggunakan kebijakan](UsingWithRDS.IAM.md#security_iam_access-manage).

### Membuat peran layanan IAM
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.CreateRole"></a>

Anda dapat Konsol Manajemen AWS membuat peran untuk Anda dengan memilih opsi **Buat Peran Baru** (ditampilkan nanti dalam topik ini). Jika Anda memilih opsi ini dan menentukan nama untuk peran baru, Aurora akan membuat peran layanan IAM yang diperlukan Aurora untuk mengakses bucket Amazon S3 Anda dengan nama yang Anda berikan.

Sebagai alternatif, Anda dapat membuat peran secara manual menggunakan prosedur berikut.

**Untuk membuat peran IAM bagi Aurora untuk mengakses Amazon S3**

1. Selesaikan langkah-langkah dalam [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md).

1. Selesaikan langkah-langkah dalam [Membuat peran IAM untuk memungkinkan Amazon Aurora mengakses layanan AWS](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md).

1. Selesaikan langkah-langkah dalam [Mengaitkan peran IAM dengan klaster DB Amazon Aurora MySQL](AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.md).

## Mencadangkan file untuk dipulihkan sebagai klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup"></a>

Anda dapat membuat cadangan lengkap file database MySQL Anda menggunakan XtraBackup Percona dan mengunggah file cadangan ke bucket Amazon S3. 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 ke bucket Amazon S3.

**Topics**
+ [Membuat cadangan lengkap dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full)
+ [Menggunakan cadangan tambahan dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr)
+ [Pertimbangan cadangan](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations)

### 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 dari Amazon S3 untuk membuat cluster DB MySQL Aurora, gunakan utilitas Percona () untuk mencadangkan database Anda. XtraBackup `xtrabackup` 

Misalnya, perintah berikut akan membuat cadangan dari 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 mengompresi cadangan Anda ke dalam satu file (yang dapat dibagi, jika perlu), Anda dapat menggunakan opsi `--stream` untuk menyimpan cadangan Anda dalam salah satu format berikut:
+ Gzip (.gz)
+ tar (.tar)
+ Percona xbstream (.xbstream)

Perintah berikut membuat cadangan basis data MySQL Anda yang dibagi menjadi beberapa file Gzip.

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

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file tar.

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

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file xbstream.

```
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, ini mungkin disebabkan perbedaan format file dalam perintah Anda:  

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

Setelah mencadangkan database MySQL menggunakan utilitas XtraBackup Percona, Anda dapat menyalin direktori dan file cadangan ke bucket Amazon S3.

Untuk informasi tentang membuat dan mengunggah file ke bucket Amazon S3, lihat [Memulai Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dalam *Panduan Memulai Amazon S3*.

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

Amazon Aurora MySQL mendukung cadangan penuh dan tambahan yang dibuat menggunakan Percona. XtraBackup 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, Anda dapat menghemat cukup banyak waktu dengan menyalin direktori dan file cadangan yang ada untuk cadangan penuh dan inkremental ke bucket Amazon S3. Untuk informasi selengkapnya, lihat [Buat cadangan inkremental](https://docs.percona.com/percona-xtrabackup/8.0/create-incremental-backup.html) di situs web Percona.

Saat menyalin file cadangan penuh dan inkremental ke bucket Amazon S3, Anda harus menyalin konten direktori dasar secara berulang. Konten tersebut termasuk cadangan penuh dan juga semua direktori dan file cadangan inkremental. Salinan ini harus mempertahankan struktur direktori di bucket Amazon S3. Aurora melakukan iterasi ke semua file dan direktori. Aurora menggunakan file `xtrabackup-checkpoints` yang disertakan dengan setiap cadangan inkremental untuk mengidentifikasi direktori dasar dan untuk mengurutkan cadangan inkremental berdasarkan rentang nomor urutan log (LSN).

Untuk informasi tentang membuat dan mengunggah file ke bucket Amazon S3, lihat [Memulai Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dalam *Panduan Memulai Amazon S3*.

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

Aurora tidak mendukung cadangan sebagian yang dibuat menggunakan Percona. XtraBackup Anda tidak dapat menggunakan opsi berikut untuk membuat cadangan parsial saat mencadangkan file sumber untuk basis data Anda: `--tables`, `--tables-exclude`, `--tables-file`, `--databases`, `--databases-exclude`, atau `--databases-file`.

Untuk informasi selengkapnya tentang mencadangkan database Anda dengan Percona XtraBackup, lihat [Percona XtraBackup - Dokumentasi](https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html) dan [Bekerja dengan log biner](https://docs.percona.com/percona-xtrabackup/8.0/working-with-binary-logs.html) di situs web Percona.

Aurora mendukung backup tambahan yang dibuat menggunakan Percona. XtraBackup Untuk informasi selengkapnya, lihat [Buat cadangan inkremental](https://docs.percona.com/percona-xtrabackup/8.0/create-incremental-backup.html) di situs web Percona.

Aurora menggunakan file cadangan Anda berdasarkan nama file. Pastikan untuk menamai file cadangan Anda dengan ekstensi file yang sesuai berdasarkan format file—misalnya, `.xbstream` untuk file yang disimpan menggunakan format Percona xbstream.

Aurora menggunakan file cadangan Anda dalam urutan abjad dan juga dalam urutan angka alami. Selalu gunakan opsi `split` saat Anda mengeluarkan perintah `xtrabackup` untuk memastikan bahwa file cadangan Anda ditulis dan diberi nama sesuai urutan yang benar.

Amazon S3 membatasi ukuran file yang diunggah ke bucket Amazon S3 hingga 5 TB. Jika data cadangan untuk basis data Anda melebihi 5 TB, gunakan perintah `split` untuk membagi file cadangan menjadi beberapa file dengan ukuran masing-masing kurang dari 5 TB.

Aurora membatasi jumlah file sumber yang diunggah ke bucket Amazon S3 hingga 1 juta file. Dalam beberapa kasus, data cadangan untuk basis data Anda, termasuk semua cadangan penuh dan inkremental, dapat menghasilkan jumlah file yang besar. Dalam hal ini, gunakan file tarball (.tar.gz) untuk menyimpan file cadangan penuh dan inkremental di bucket Amazon S3.

Saat Anda mengunggah file ke bucket Amazon S3, Anda dapat menggunakan enkripsi di sisi server untuk mengenkripsi data. Anda kemudian dapat memulihkan klaster DB Amazon Aurora MySQL dari file terenkripsi tersebut. Amazon Aurora MySQL dapat memulihkan klaster DB dengan file terenkripsi menggunakan jenis enkripsi di sisi server berikut:
+ Enkripsi di sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3) – Setiap objek dienkripsi dengan kunci unik yang menggunakan enkripsi multifaktor yang kuat.
+ Enkripsi sisi server dengan kunci yang AWS KMS dikelola (SSE-KMS) — Mirip dengan SSE-S3, tetapi Anda memiliki opsi untuk membuat dan mengelola kunci enkripsi sendiri, dan juga perbedaan lainnya.

Untuk informasi tentang menggunakan enkripsi di sisi server saat mengunggah file ke bucket Amazon S3, lihat [Melindungi data menggunakan enkripsi di sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dalam *Panduan Developer Amazon S3*.

## Memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Restore"></a>

Anda dapat memulihkan file cadangan dari bucket Amazon S3 untuk membuat klaster DB Amazon Aurora MySQL baru dengan menggunakan konsol Amazon RDS. 

**Untuk memulihkan klaster DB Amazon Aurora MySQL dari file di bucket Amazon S3**

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 AWS Wilayah tempat membuat cluster DB Anda. Pilih AWS Wilayah yang sama dengan bucket Amazon S3 yang berisi cadangan database Anda. 

1. Di panel navigasi, pilih **Basis data**, lalu pilih **Pulihkan dari S3**.

1. Pilih **Pulihkan dari S3**.

   Halaman **Buat basis data dengan memulihkan dari S3** akan muncul.  
![\[Halaman ini adalah tempat Anda menentukan detail untuk memulihkan klaster DB dari S3\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/AuroraMigrateS3_01.png)

1. Di bagian **Tujuan S3**:

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

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

      Jika Anda tidak menentukan prefiks, RDS akan membuat instans DB Anda menggunakan semua file dan folder di folder root bucket S3. Jika Anda menentukan prefiks, RDS akan membuat instans DB Anda menggunakan file dan folder dalam bucket S3 yang jalur file-nya dimulai dengan prefiks yang ditentukan.

      Misalnya, Anda menyimpan file cadangan di S3 dalam subfolder bernama “cadangan”, dan Anda memiliki beberapa set file cadangan, masing-masing memiliki direktori tersendiri (gzip\$1backup1, gzip\$1backup2, dan sebagainya). Dalam kasus ini, Anda menentukan prefiks backup/gzip\$1backup1 untuk memulihkan dari file di folder gzip\$1backup1. 

1. Di bagian **Opsi mesin**:

   1. Untuk **Tipe mesin**, pilih **Amazon Aurora**.

   1. Untuk **Versi**, pilih versi mesin Aurora MySQL untuk instans DB Anda yang dipulihkan.

1. Untuk **Peran IAM**, Anda dapat memilih peran IAM yang sudah ada.

1. (Opsional) Anda juga dapat dibuatkan peran IAM dengan memilih **Buat peran baru**. Jika demikian:

   1. Masukkan **Nama peran IAM**.

   1.  Pilih opsi untuk **Izinkan akses ke kunci KMS**:
      + Jika Anda tidak mengenkripsi file cadangan, pilih **Tidak**.
      + Jika Anda mengenkripsi file cadangan dengan AES-256 (SSE-S3) saat mengunggahnya ke Amazon S3, pilih **Tidak**. Dalam kasus ini, data didekripsi secara otomatis.
      + **Jika Anda mengenkripsi file cadangan dengan enkripsi sisi server AWS KMS (SSE-KMS) saat Anda mengunggahnya ke Amazon S3, pilih Ya.** Selanjutnya, pilih kunci KMS yang benar untuk **AWS KMS key**.

         Konsol Manajemen AWS Membuat kebijakan IAM yang memungkinkan Aurora untuk mendekripsi data.

      Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi di sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dalam *Panduan Developer Amazon S3*.

1. Pilih pengaturan untuk klaster DB Anda, seperti konfigurasi penyimpanan klaster DB, kelas instans DB, pengidentifikasi klaster DB, dan kredensial login. Untuk informasi tentang setiap pengaturan, lihat [Pengaturan untuk klaster Aurora DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings).

1. Sesuaikan pengaturan tambahan untuk klaster DB Aurora MySQL Anda berdasarkan kebutuhan.

1. Pilih **Buat basis data** untuk meluncurkan instans DB Aurora Anda.

Pada konsol Amazon RDS, instans DB baru muncul dalam daftar instans DB. Instans DB memiliki status **membuat** hingga instans DB dibuat dan siap digunakan. Saat statusnya berubah menjadi **tersedia**, Anda dapat terhubung ke instans primer untuk klaster DB Anda. Bergantung pada kelas instans DB dan penyimpanan yang dialokasikan, perlu waktu beberapa menit agar instans baru tersedia.

Untuk melihat klaster yang baru dibuat, pilih tampilan **Basis data** di konsol Amazon RDS lalu pilih klaster DB. Untuk informasi selengkapnya, lihat [Melihat klaster DB Amazon Aurora](accessing-monitoring.md#Aurora.Viewing).

![\[Daftar Instans DB Amazon Aurora\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/AuroraLaunch04.png)


Catat port dan titik akhir penulis dari klaster DB. Gunakan titik akhir dan port klaster DB tersebut dalam string koneksi JDBC dan ODBC Anda untuk aplikasi apa pun yang menjalankan operasi tulis atau baca.

## Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync"></a>

Untuk mempersingkat atau meniadakan waktu henti selama migrasi, Anda dapat mereplikasi transaksi yang dilakukan pada basis data MySQL Anda ke klaster DB Aurora MySQL Anda. Replikasi memungkinkan klaster DB disinkronkan dengan transaksi di basis data MySQL yang terjadi selama migrasi. Ketika klaster DB telah sepenuhnya sinkron, Anda dapat menghentikan replikasi dan menyelesaikan migrasi ke Aurora MySQL.

**Topics**
+ [Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption)
+ [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing)

### Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption"></a>

Untuk mereplikasi data dengan aman, Anda dapat menggunakan replikasi terenkripsi.

**catatan**  
Jika Anda tidak perlu menggunakan replikasi terenkripsi, Anda dapat melewatkan langkah-langkah ini dan melanjutkan ke petunjuk dalam [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing).

Berikut ini adalah prasyarat untuk menggunakan replikasi terenkripsi:
+ Lapisan Soket Aman (SSL) harus diaktifkan di basis data primer MySQL eksternal.
+ Kunci klien dan sertifikat klien harus disiapkan untuk klaster DB Aurora MySQL.

Selama replikasi terenkripsi, klaster DB Aurora MySQL berperan sebagai klien untuk server basis data MySQL. Sertifikat dan kunci untuk klien Aurora MySQL ada di dalam file dengan format .pem.

**Untuk mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi**

1. Pastikan bahwa Anda siap untuk replikasi terenkripsi:
   + Jika Anda tidak mengaktifkan SSL di basis data primer MySQL eksternal dan tidak menyiapkan kunci klien dan sertifikat klien, aktifkan SSL di server basis data MySQL dan buat kunci klien dan sertifikat klien yang diperlukan.
   + Jika SSL diaktifkan pada primer eksternal, berikan kunci klien dan sertifikat untuk klaster DB Aurora MySQL. Jika Anda tidak memilikinya, buat kunci dan sertifikat baru untuk klaster DB Aurora MySQL. Untuk menandatangani sertifikat klien, Anda harus memiliki kunci otoritas sertifikat yang Anda gunakan untuk mengonfigurasi SSL di basis data primer MySQL eksternal.

   Untuk informasi selengkapnya, lihat [Creating SSL certificates and keys using openssl](https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html) dalam dokumentasi MySQL.

   Anda memerlukan sertifikat otoritas sertifikat, kunci klien, dan sertifikat klien.

1. Hubungkan ke klaster DB Aurora MySQL sebagai pengguna primer menggunakan SSL.

   Untuk informasi tentang menghubungkan ke klaster DB Aurora MySQL dengan SSL, lihat [Koneksi TLS ke cluster DB MySQL Aurora](AuroraMySQL.Security.md#AuroraMySQL.Security.SSL).

1. Jalankan prosedur tersimpan [mysql.rds\$1import\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_import_binlog_ssl_material) untuk mengimpor informasi SSL ke dalam klaster DB Aurora MySQL.

   Untuk parameter `ssl_material_value`, masukkan informasi dari file format .pem untuk klaster DB Aurora MySQL di payload JSON yang benar.

   Contoh berikut mengimpor informasi SSL ke dalam klaster DB Aurora MySQL. Dalam file berformat .pem, kode konten biasanya lebih panjang dari kode konten yang ditunjukkan dalam contoh.

   ```
   call mysql.rds_import_binlog_ssl_material(
   '{"ssl_ca":"-----BEGIN CERTIFICATE-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END RSA PRIVATE KEY-----\n"}');
   ```

   Untuk informasi selengkapnya, lihat [mysql.rds\$1import\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_import_binlog_ssl_material) dan [Koneksi TLS ke cluster DB MySQL Aurora](AuroraMySQL.Security.md#AuroraMySQL.Security.SSL).
**catatan**  
Setelah menjalankan prosedur ini, rahasia disimpan dalam file. Untuk menghapus file nanti, Anda dapat menjalankan prosedur tersimpan [mysql.rds\$1remove\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_remove_binlog_ssl_material).

### Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing"></a>

Anda dapat menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi.

**Untuk menyinkronkan klaster DB Aurora MySQL Anda dengan basis data MySQL menggunakan replikasi**

1. Pastikan file /etc/my.cnf untuk basis data MySQL eksternal memiliki entri yang relevan.

   Jika replikasi terenkripsi tidak diperlukan, pastikan basis data MySQL eksternal dimulai dengan log biner (binlog) diaktifkan dan SSL dinonaktifkan. Berikut ini adalah entri yang relevan dalam file /etc/my.cnf untuk data yang tidak terenkripsi.

   ```
   log-bin=mysql-bin
   server-id=2133421
   innodb_flush_log_at_trx_commit=1
   sync_binlog=1
   ```

   Jika replikasi terenkripsi diperlukan, pastikan basis data MySQL eksternal dimulai dengan SSL dan binlog diaktifkan. Entri dalam file /etc/my.cnf mencakup lokasi file .pem untuk server basis data MySQL.

   ```
   log-bin=mysql-bin
   server-id=2133421
   innodb_flush_log_at_trx_commit=1
   sync_binlog=1
   
   # Setup SSL.
   ssl-ca=/home/sslcerts/ca.pem
   ssl-cert=/home/sslcerts/server-cert.pem
   ssl-key=/home/sslcerts/server-key.pem
   ```

   Anda dapat memverifikasi bahwa SSL diaktifkan dengan perintah berikut.

   ```
   mysql> show variables like 'have_ssl';
   ```

   Output Anda harus serupa dengan berikut ini.

   ```
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   | Variable_name | Value |
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   | have_ssl      | YES   |
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   1 row in set (0.00 sec)
   ```

1. Tentukan posisi log biner awal untuk replikasi. Anda menentukan posisi untuk memulai replikasi di langkah selanjutnya.

   **Menggunakan Konsol Manajemen AWS**

   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 panel navigasi, pilih **Peristiwa**.

   1. Di daftar **Peristiwa**, catat posisi di peristiwa **Dipulihkan dari nama file log biner**.  
![\[Lihat MySQL utama\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/aurora-mysql-rep-binary-log-position.png)

   **Menggunakan AWS CLI**

   Anda juga bisa mendapatkan nama dan posisi file binlog dengan menggunakan [perintah AWS CLI describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html). Hal berikut menunjukkan contoh perintah `describe-events`.

   ```
   PROMPT> aws rds describe-events
   ```

   Pada output, identifikasi peristiwa yang menunjukkan posisi binlog.

1. Saat terhubung dengan basis data MySQL eksternal, buat pengguna yang akan digunakan untuk replikasi. Akun ini digunakan hanya untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Berikut adalah contohnya.

   ```
   mysql> CREATE USER '<user_name>'@'<domain_name>' IDENTIFIED BY '<password>';
   ```

   Pengguna memerlukan hak akses `REPLICATION CLIENT` dan `REPLICATION SLAVE`. Berikan hak akses ini kepada pengguna.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>'@'<domain_name>';
   ```

   Jika Anda perlu menggunakan replikasi terenkripsi, wajibkan koneksi SSL untuk pengguna replikasi. Misalnya, Anda dapat menggunakan pernyataan berikut untuk mewajibkan koneksi SSL pada akun pengguna `<user_name>`.

   ```
   GRANT USAGE ON *.* TO '<user_name>'@'<domain_name>' REQUIRE SSL;
   ```
**catatan**  
Jika `REQUIRE SSL` tidak disertakan, koneksi replikasi dapat kembali ke koneksi yang tidak terenkripsi tanpa peringatan.

1. Di konsol Amazon RDS, tambahkan alamat IP server yang meng-host basis data MySQL eksternal ke grup keamanan VPC untuk klaster DB Aurora MySQL. Untuk informasi selengkapnya tentang memodifikasi grup keamanan VPC, lihat [Grup keamanan untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) dalam *Panduan Pengguna Amazon Virtual Private Cloud*. 

   Anda mungkin juga perlu mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP klaster DB Aurora MySQL Anda agar klaster DB ini dapat berkomunikasi dengan instans MySQL eksternal Anda. Untuk menemukan alamat IP klaster DB Aurora MySQL, gunakan perintah `host`.

   ```
   host <db_cluster_endpoint>
   ```

   Nama host adalah nama DNS dari titik akhir klaster DB Aurora MySQL.

1. Aktifkan replikasi log biner dengan menjalankan prosedur tersimpan [mysql.rds\$1reset\$1external\$1master versi 2)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) atau [mysql.rds\$1reset\$1external\$1source ( 3)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source). Prosedur tersimpan ini memiliki sintaksis berikut.

   ```
   CALL mysql.rds_set_external_master (
     host_name
     , host_port
     , replication_user_name
     , replication_user_password
     , mysql_binary_log_file_name
     , mysql_binary_log_file_location
     , ssl_encryption
   );
   
   CALL mysql.rds_set_external_source (
     host_name
     , host_port
     , replication_user_name
     , replication_user_password
     , mysql_binary_log_file_name
     , mysql_binary_log_file_location
     , ssl_encryption
   );
   ```

   Untuk informasi tentang parameter, lihat [mysql.rds\$1reset\$1external\$1master versi 2)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) dan [mysql.rds\$1reset\$1external\$1source ( 3)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source).

   Untuk `mysql_binary_log_file_name` dan `mysql_binary_log_file_location`, gunakan posisi dalam peristiwa **Dipulihkan dari nama file log biner** yang Anda catat sebelumnya.

   Jika data dalam klaster DB Aurora MySQL tidak dienkripsi, parameter `ssl_encryption` harus diatur ke `0`. Jika data dienkripsi, parameter `ssl_encryption` harus diatur ke `1`.

   Contoh berikut menjalankan prosedur untuk klaster DB Aurora MySQL yang memiliki data terenkripsi.

   ```
   CALL mysql.rds_set_external_master(
     'Externaldb.some.com',
     3306,
     'repl_user'@'mydomain.com',
     'password',
     'mysql-bin.000010',
     120,
     1);
   
   CALL mysql.rds_set_external_source(
     'Externaldb.some.com',
     3306,
     'repl_user'@'mydomain.com',
     'password',
     'mysql-bin.000010',
     120,
     1);
   ```

   Prosedur tersimpan ini menetapkan parameter yang digunakan klaster DB Aurora MySQL untuk menghubungkan ke basis data MySQL eksternal dan membaca log binernya. Jika data dienkripsi, prosedur ini juga akan mengunduh sertifikat otoritas sertifikat SSL, sertifikat klien, dan kunci klien ke disk lokal. 

1. Mulai replikasi log biner dengan menjalankan prosedur tersimpan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication).

   ```
   CALL mysql.rds_start_replication;
   ```

1. Pantau seberapa jauh klaster DB Aurora MySQL tertinggal dari basis data primer replikasi MySQL. Untuk melakukannya, hubungkan ke klaster DB Aurora MySQL dan jalankan perintah berikut.

   ```
   Aurora MySQL version 2:
   SHOW SLAVE STATUS;
   
   Aurora MySQL version 3:
   SHOW REPLICA STATUS;
   ```

   Dalam output perintah, bidang `Seconds Behind Master` menunjukkan seberapa jauh klaster DB Aurora MySQL tertinggal dari basis data primer MySQL. Ketika nilai ini `0` (nol), klaster DB Aurora MySQL telah sinkron dengan basis data primer, dan Anda dapat melanjutkan ke langkah berikutnya untuk menghentikan replikasi.

1. Hubungkan ke basis data primer replikasi MySQL dan hentikan replikasi. Untuk melakukannya, jalankan prosedur tersimpan [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication).

   ```
   CALL mysql.rds_stop_replication;
   ```

# Mengurangi waktu migrasi fisik ke Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks"></a>

Anda dapat membuat modifikasi basis data berikut untuk mempercepat proses migrasi basis data ke Amazon Aurora MySQL.

**penting**  
Pastikan untuk melakukan pembaruan ini pada salinan basis data produksi, bukan pada basis data produksi. Kemudian, Anda dapat mencadangkan salinan ini dan memulihkannya ke klaster DB Aurora MySQL untuk menghindari gangguan layanan apa pun pada basis data produksi Anda.

## Jenis tabel yang tidak didukung
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Tables"></a>

Aurora MySQL hanya mendukung mesin InnoDB untuk tabel basis data. Jika Anda memiliki tabel MyISAM di basis data Anda, tabel tersebut harus dikonversi sebelum bermigrasi ke Aurora MySQL. Proses konversi memerlukan ruang tambahan untuk konversi MyISAM ke InnoDB selama prosedur migrasi.

Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, konversikan semua tabel MyISAM Anda ke tabel InnoDB sebelum memigrasikannya. Ukuran tabel InnoDB yang dihasilkan akan setara dengan ukuran yang diperlukan oleh Aurora MySQL untuk tabel tersebut. Untuk mengonversi tabel MyISAM ke InnoDB, jalankan perintah berikut:

```
ALTER TABLE schema.table_name engine=innodb, algorithm=copy;
```

Aurora MySQL tidak mendukung tabel atau halaman terkompresi, yaitu tabel yang dibuat dengan `ROW_FORMAT=COMPRESSED` atau `COMPRESSION = {"zlib"|"lz4"}`.

Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, perluas tabel terkompresi Anda dengan mengatur `ROW_FORMAT` ke `DEFAULT`, `COMPACT`, `DYNAMIC`, atau `REDUNDANT`. Untuk halaman terkompresi, atur `COMPRESSION="none"`.

Untuk informasi selengkapnya, lihat [InnoDB row formats](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html) dan [InnoDB table and page compression](https://dev.mysql.com/doc/refman/8.0/en/innodb-compression.html) dalam dokumentasi MySQL.

Anda dapat menggunakan skrip SQL berikut pada instans DB MySQL yang ada untuk menampilkan daftar tabel dalam basis data Anda yang merupakan tabel MyISAM atau tabel terkompresi.

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Aurora MySQL.
-- It must be run from an account that has read permission for the
-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`
from
  (
  select
    'This script should be run on MySQL version 5.6 or higher. ' +
    'Earlier versions are not supported.' as msg,
    cast(substring_index(version(), '.', 1) as unsigned) * 100 +
      cast(substring_index(substring_index(version(), '.', 2), '.', -1)
      as unsigned)
    as major_minor
  ) as T
where major_minor <> 506;


-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,
round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"
from INFORMATION_SCHEMA.TABLES
where
  ENGINE <> 'InnoDB'
  and
  (
    -- User tables
    TABLE_SCHEMA not in ('mysql', 'performance_schema',
                         'information_schema')
    or
    -- Non-standard system tables
    (
      TABLE_SCHEMA = 'mysql' and TABLE_NAME not in
        (
          'columns_priv', 'db', 'event', 'func', 'general_log',
          'help_category', 'help_keyword', 'help_relation',
          'help_topic', 'host', 'ndb_binlog_index', 'plugin',
          'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log',
          'tables_priv', 'time_zone', 'time_zone_leap_second',
          'time_zone_name', 'time_zone_transition',
          'time_zone_transition_type', 'user'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

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

Akun pengguna dengan hak akses yang tidak didukung oleh Aurora MySQL akan diimpor tanpa hak akses yang tidak didukung. Untuk daftar hak akses yang didukung, lihat [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model).

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

## Hak akses dinamis di Aurora MySQL versi 3
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic"></a>

Hak akses dinamis tidak akan diimpor. Aurora MySQL versi 3 mendukung hak akses dinamis berikut.

```
'APPLICATION_PASSWORD_ADMIN',
'CONNECTION_ADMIN',
'REPLICATION_APPLIER',
'ROLE_ADMIN',
'SESSION_VARIABLES_ADMIN',
'SET_USER_ID',
'XA_RECOVER_ADMIN'
```

Contoh skrip berikut memberikan hak akses dinamis yang didukung ke akun pengguna di klaster DB Aurora MySQL.

```
-- This script finds the user accounts that have Aurora MySQL supported dynamic privileges 
-- and grants them to corresponding user accounts in the Aurora MySQL DB cluster.

/home/ec2-user/opt/mysql/8.0.26/bin/mysql -uusername -pxxxxx -P8026 -h127.0.0.1 -BNe "SELECT
  CONCAT('GRANT ', GRANTS, ' ON *.* TO ', GRANTEE ,';') AS grant_statement
  FROM (select GRANTEE, group_concat(privilege_type) AS GRANTS FROM information_schema.user_privileges 
      WHERE privilege_type IN (
        'APPLICATION_PASSWORD_ADMIN',
        'CONNECTION_ADMIN',
        'REPLICATION_APPLIER',
        'ROLE_ADMIN',
        'SESSION_VARIABLES_ADMIN',
        'SET_USER_ID',
        'XA_RECOVER_ADMIN')
      AND GRANTEE NOT IN (\"'mysql.session'@'localhost'\",\"'mysql.infoschema'@'localhost'\",\"'mysql.sys'@'localhost'\") GROUP BY GRANTEE)
      AS PRIVGRANTS; " | /home/ec2-user/opt/mysql/8.0.26/bin/mysql -u master_username -p master_password -h DB_cluster_endpoint
```

## Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects"></a>

Fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan `'rdsadmin'@'localhost'` sebagai pendefinisi tidak akan diimpor.

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

# Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump
<a name="AuroraMySQL.Migrating.ExtMySQL.mysqldump"></a>

Karena Amazon Aurora MySQL adalah database yang kompatibel dengan MySQL, Anda dapat menggunakan utilitas untuk menyalin data dari database MySQL Anda atau utilitas `mysqldump` untuk menyalin data Anda dari database MariaDB Anda ke cluster DB Aurora MySQL yang ada. `mariadb-dump`

*Untuk diskusi tentang cara melakukannya dengan database MySQL atau MariaDB yang sangat besar, lihat topik berikut di Panduan Pengguna Amazon Relational Database Service:*
+ MySQL [- Mengimpor data ke Amazon RDS untuk database MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-reduced-downtime.html) dengan downtime yang dikurangi
+ MariaDB [- Mengimpor data ke database Amazon RDS for MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mariadb-importing-data-reduced-downtime.html) dengan waktu henti yang dikurangi

*Untuk database MySQL atau MariaDB yang memiliki jumlah data lebih kecil, lihat topik berikut di Panduan Pengguna Layanan Amazon Relational Database Service:*
+ MySQL [- Mengimpor data dari database MySQL eksternal ke Amazon RDS for MySQL DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-external-database.html) instance
+ MariaDB [- Mengimpor data dari database MariaDB eksternal ke instans Amazon RDS for MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mariadb-importing-data-external-database.html)