Memigrasikan snapshot RDS for MySQL ke Aurora - Amazon Aurora

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

Memigrasikan snapshot RDS for MySQL ke Aurora

Anda dapat memigrasikan snapshot DB dari instans DB RDS for MySQL untuk membuat klaster DB Aurora MySQL. Klaster DB Aurora MySQL yang baru akan diisi dengan data dari instans DB RDS for MySQL asli. Snapshot DB ini harus dibuat dari instans DB Amazon RDS yang menjalankan versi MySQL yang kompatibel dengan Aurora MySQL.

Anda dapat memigrasikan snapshot DB manual atau otomatis. Setelah klaster DB dibuat, Anda dapat membuat Replika Aurora opsional.

catatan

Anda juga dapat memigrasikan instans DB RDS for MySQL ke klaster DB Aurora MySQL dengan membuat replika baca Aurora dari instans DB RDS for MySQL sumber Anda. Untuk informasi selengkapnya, lihat Memigrasi data dari instans RDS for My SQL DB ke cluster Amazon Aurora SQL My DB dengan menggunakan replika baca Aurora.

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 meng-upgrade ke MySQL 8.0.28 sebelum migrasi.

Langkah-langkah umum yang harus Anda ambil adalah sebagai berikut:

  1. Tentukan jumlah ruang yang perlu disediakan untuk klaster DB Aurora MySQL Anda. Untuk informasi selengkapnya, lihat Berapa banyak ruang yang saya butuhkan?.

  2. Gunakan konsol untuk membuat snapshot di Wilayah AWS tempat instans Amazon RDS MySQL berada. Untuk informasi tentang membuat snapshot DB, lihat Membuat snapshot DB.

  3. Jika snapshot DB tidak berada di Wilayah AWS yang sama dengan klaster DB Anda, gunakan konsol Amazon RDS untuk menyalin snapshot DB ke Wilayah AWS tersebut. Untuk informasi tentang menyalin snapshot DB, lihat Menyalin snapshot DB.

  4. Gunakan konsol untuk memigrasikan snapshot DB dan membuat klaster DB Aurora MySQL dengan basis data yang sama dengan instans DB MySQL asli.

Awas

Amazon RDS membatasi setiap akun AWS ke satu salinan snapshot di setiap Wilayah AWS pada satu waktu.

Berapa banyak ruang yang saya butuhkan?

Saat Anda memigrasikan snapshot dari instans DB MySQL ke dalam klaster DB Aurora MySQL, Aurora akan menggunakan volume Amazon Elastic Block Store (Amazon EBS) untuk memformat data dari snapshot ini sebelum memigrasikannya. Dalam beberapa kasus, ruang tambahan diperlukan untuk memformat data untuk migrasi.

Tabel yang bukan berupa tabel MyISAM dan tidak dikompresi dapat berukuran hingga 16 TB. Jika Anda memiliki tabel MyISAM, Aurora harus menggunakan ruang tambahan dalam volume untuk mengonversi tabel ini agar kompatibel dengan Aurora MySQL. Jika Anda memiliki tabel yang dikompresi, Aurora harus menggunakan ruang tambahan dalam volume untuk memperluas tabel tersebut sebelum menyimpannya di volume klaster Aurora. Karena persyaratan ruang tambahan ini, Anda harus memastikan bahwa tidak ada tabel MyISAM dan tabel terkompresi yang dimigrasikan dari instans DB MySQL Anda yang berukuran lebih dari 8 TB.

Mengurangi jumlah ruang yang diperlukan untuk memigrasikan data ke Amazon Aurora MySQL

Anda sebaiknya memodifikasi skema basis data Anda sebelum memigrasikannya ke Amazon Aurora. Modifikasi tersebut dapat membantu dalam kasus berikut:

  • Anda ingin mempercepat proses migrasi.

  • Anda tidak yakin berapa banyak ruang yang perlu disediakan.

  • Anda telah mencoba memigrasikan data Anda dan migrasi gagal karena kurangnya ruang terprovisi.

Anda dapat membuat perubahan berikut untuk meningkatkan proses migrasi basis data ke Amazon Aurora.

penting

Pastikan untuk melakukan pembaruan ini pada instans DB baru yang dipulihkan dari snapshot basis data produksi, alih-alih pada instans produksi. Kemudian, Anda dapat memigrasikan data dari snapshot instans DB baru Anda ke dalam klaster DB Aurora untuk menghindari gangguan layanan apa pun pada basis data produksi Anda.

Jenis tabel Batasan atau pedoman

Tabel MyISAM

Aurora MySQL hanya mendukung tabel InnoDB. Jika Anda memiliki tabel MyISAM di basis data Anda, tabel tersebut harus dikonversi sebelum dimigrasikan 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;

Tabel terkompresi

Aurora MySQL tidak mendukung tabel terkompresi (yaitu, tabel yang dibuat dengan ROW_FORMAT=COMPRESSED).

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 informasi selengkapnya, lihat InnoDB row formats 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 Amazon Aurora. -- It needs to 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' );

Skrip ini menghasilkan output yang mirip dengan output dalam contoh berikut. Contoh ini menunjukkan dua tabel yang harus dikonversi dari MyISAM ke InnoDB. Output-nya juga berisi perkiraan ukuran setiap tabel dalam megabyte (MB).

+---------------------------------+------------------+ | ==> MyISAM or Compressed Tables | Approx size (MB) | +---------------------------------+------------------+ | test.name_table | 2102.25 | | test.my_table | 65.25 | +---------------------------------+------------------+ 2 rows in set (0.01 sec)

Memigrasikan snapshot DB RDS for MySQL ke klaster DB Aurora MySQL

Anda dapat memigrasikan snapshot DB dari instans DB RDS for MySQL untuk membuat klaster DB Aurora MySQL menggunakan AWS Management Console atau AWS CLI. Klaster DB Aurora MySQL yang baru akan diisi dengan data dari instans DB RDS for MySQL asli. Untuk informasi tentang membuat snapshot DB, lihat Membuat snapshot DB.

Jika DB snapshot tidak berada di Wilayah AWS tempat Anda ingin menempatkan data Anda, salin snapshot DB ini ke Wilayah AWS tersebut. Untuk informasi tentang menyalin snapshot DB, lihat Menyalin snapshot DB.

Saat Anda memigrasikan snapshot DB dengan menggunakan AWS Management Console, konsol akan mengambil tindakan yang diperlukan untuk membuat klaster DB dan instans primer.

Anda juga dapat memilih klaster DB Aurora MySQL baru Anda untuk dienkripsi saat diam menggunakan AWS KMS key.

Untuk memigrasikan snapshot DB MySQL dengan menggunakan AWS Management Console
  1. Masuk ke AWS Management Console lalu buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Mulai migrasi dari instans DB MySQL atau dari snapshot:

    Untuk memulai migrasi dari instans DB:

    1. Di panel navigasi, pilih Basis data, lalu pilih instans DB MySQL.

    2. Untuk Tindakan, pilih Migrasikan snapshot terbaru.

    Untuk memulai migrasi dari snapshot:

    1. Pilih Snapshot.

    2. Di Snapshot, pilih snapshot yang ingin Anda migrasikan ke klaster DB Aurora MySQL.

    3. Pilih Tindakan Snapshot, lalu pilih Migrasikan Snapshot.

    Halaman Migrasikan Basis Data akan muncul.

  3. Tetapkan nilai-nilai berikut pada halaman Migrasikan Basis Data:

    • Migrasikan ke Mesin DB: Pilih aurora.

    • Versi Mesin DB: Pilih versi mesin DB untuk klaster DB Aurora MySQL.

    • Kelas Instans DB: Pilih kelas instans DB yang memiliki penyimpanan dan kapasitas yang diperlukan untuk basis data Anda, misalnya db.r3.large. Volume klaster Aurora secara otomatis bertambah seiring peningkatan jumlah data dalam basis data Anda. Volume klaster Aurora dapat bertambah hingga ukuran maksimum 128 tebibyte (TiB). Jadi, Anda hanya perlu memilih kelas instans DB yang memenuhi persyaratan penyimpanan Anda saat ini. Untuk informasi selengkapnya, lihat Gambaran umum penyimpanan Amazon Aurora.

    • Pengidentifikasi Instans DB: Ketikkan nama untuk klaster DB yang unik untuk akun Anda di Wilayah AWS yang Anda pilih. Pengidentifikasi ini digunakan di alamat titik akhir untuk instans di klaster DB Anda. Anda dapat memilih untuk menambahkan beberapa detail ke nama ini, seperti menyertakan Wilayah AWS dan mesin DB yang Anda pilih, misalnya aurora-cluster1.

      Pengidentifikasi instans DB memiliki batasan berikut:

      • Pengidentifikasi ini harus berisi 1 hingga 63 karakter alfanumerik atau tanda hubung.

      • Karakter pertamanya harus berupa huruf.

      • Pengidentifikasi ini tidak boleh diakhiri dengan tanda hubung atau mengandung dua tanda hubung berturut-turut.

      • Pengidentifikasi ini harus unik untuk semua instans DB per akun AWS, per Wilayah AWS.

    • Cloud Privat Virtual (VPC): Jika Anda sudah memiliki VPC, Anda dapat menggunakan VPC tersebut dengan klaster DB Aurora MySQL dengan memilih pengidentifikasi VPC Anda, misalnya vpc-a464d1c1. Untuk informasi tentang membuat VPC, lihat Tutorial: Membuat VPC untuk digunakan dengan klaster DB (khusus IPv4).

      Atau, Anda dapat memilih agar Aurora membuat VPC untuk Anda dengan memilih Buat VPC baru.

    • Grup subnet: Jika Anda memiliki grup subnet yang ada, Anda dapat menggunakan grup subnet tersebut dengan klaster DB Aurora MySQL Anda dengan memilih pengidentifikasi grup subnet Anda, misalnya gs-subnet-group1.

      Jika tidak, Anda dapat memilih agar Aurora membuat grup subnet untuk Anda dengan memilih Buat grup subnet baru.

    • Aksesibilitas publik: Pilih Tidak untuk menentukan bahwa instans di klaster DB Anda hanya dapat diakses oleh sumber daya di dalam VPC Anda. Pilih Ya untuk menentukan bahwa instans dalam klaster DB Anda dapat diakses oleh sumber daya di jaringan publik. Default-nya adalah Ya.

      catatan

      Klaster DB produksi Anda mungkin tidak perlu berada di subnet publik karena hanya server aplikasi Anda yang memerlukan akses ke klaster DB Anda. Jika klaster DB Anda tidak perlu berada di subnet publik, tetapkan Dapat Diakses Publik ke Tidak.

    • Ketersediaan Zona: Pilih Zona Ketersediaan guna meng-host instans primer untuk klaster DB Aurora MySQL Anda. Agar Aurora memilih Zona Ketersediaan untuk Anda, pilih Tidak Ada Preferensi.

    • Port Basis Data: Ketik port default yang akan digunakan saat menghubungkan ke instans di klaster DB Aurora MySQL. Default-nya adalah 3306.

      catatan

      Anda mungkin berada di belakang firewall perusahaan yang tidak mengizinkan akses ke port default seperti port default MySQL, 3306. Dalam hal ini, berikan nilai port yang diizinkan oleh firewall perusahaan Anda. Ingat nilai port tersebut nanti saat Anda terhubung ke klaster DB Aurora MySQL.

    • Enkripsi: Pilih Aktifkan Enkripsi untuk klaster DB Aurora MySQL baru Anda agar dienkripsi saat diam. Jika Anda memilih Aktifkan Enkripsi, Anda harus memilih kunci KMS sebagai nilai AWS KMS key.

      Jika snapshot DB Anda tidak terenkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam.

      Jika snapshot DB Anda dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi yang ditentukan. Anda dapat menentukan kunci enkripsi yang digunakan oleh snapshot DB atau kunci yang berbeda. Anda tidak dapat membuat klaster DB yang tidak terenkripsi dari snapshot DB terenkripsi.

    • Peningkatan Versi Minor Otomatis: Pengaturan ini tidak berlaku untuk klaster DB Aurora MySQL.

      Untuk informasi selengkapnya tentang pembaruan mesin untuk Aurora MySQL, lihat Pembaruan mesin database untuk Amazon Aurora My SQL.

  4. Pilih Migrasikan untuk memigrasikan snapshot DB Anda.

  5. Pilih Instans, lalu pilih ikon panah untuk menampilkan detail klaster DB dan memantau progres migrasi. Di halaman detail, Anda dapat menemukan titik akhir klaster yang digunakan untuk terhubung ke instans primer klaster DB. Untuk informasi selengkapnya tentang menghubungkan ke klaster DB Aurora MySQL, lihat Menghubungkan ke klaster DB Amazon Aurora.

Anda dapat membuat klaster DB Aurora dari snapshot DB milik instans DB RDS for MySQL menggunakan perintah restore-db-cluster-from-snapshot dengan parameter berikut:

  • --db-cluster-identifier – Nama klaster DB yang akan dibuat.

  • --engine aurora-mysql – Untuk klaster DB yang kompatibel dengan MySQL 5.7 atau yang kompatibel dengan MySQL 8.0.

  • --kms-key-id – AWS KMS key yang digunakan untuk mengenkripsi klaster DB secara opsional, tergantung pada apakah snapshot DB Anda dienkripsi atau tidak.

    • Jika snapshot DB Anda tidak terenkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam. Jika tidak, klaster DB Anda tidak dienkripsi.

    • Jika snapshot DB Anda dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi yang ditentukan. Jika tidak, klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi untuk snapshot DB.

      catatan

      Anda tidak dapat membuat klaster DB yang tidak terenkripsi dari snapshot DB terenkripsi.

  • --snapshot-identifier – Nama Amazon Resource Name (ARN) untuk snapshot DB yang akan dimigrasikan. Untuk informasi selengkapnya tentang ARN Amazon RDS, lihat Amazon Relational Database Service (Amazon RDS).

Saat Anda memigrasikan snapshot DB dengan menggunakan perintah RestoreDBClusterFromSnapshot, perintah ini akan membuat klaster DB dan instans primer.

Dalam contoh ini, Anda membuat klaster DB yang kompatibel dengan MySQL 5.7 bernama mydbcluster dari snapshot DB dengan ARN yang diatur ke mydbsnapshotARN.

Untuk Linux, macOS, atau Unix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Untuk Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql

Dalam contoh ini, Anda membuat klaster DB yang kompatibel dengan MySQL 5.7 bernama mydbcluster dari snapshot DB dengan ARN yang diatur ke mydbsnapshotARN.

Untuk Linux, macOS, atau Unix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Untuk Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql