Memulihkan cadangan ke Amazon RDS untuk instans SQL DB Saya - Layanan Basis Data Relasional Amazon

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

Memulihkan cadangan ke Amazon RDS untuk instans SQL DB Saya

Amazon RDS mendukung pengimporan SQL database Saya dengan menggunakan file cadangan. Anda dapat membuat cadangan database Anda, menyimpannya di Amazon S3, dan kemudian mengembalikan file cadangan ke instans Amazon RDS DB baru yang menjalankan My. SQL

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

Anda dapat menemukan skenario yang mendukung dalam diagram berikut.

Saya SQL mengimpor file cadangan dari S3.

Mengimpor file cadangan dari Amazon S3 didukung untuk SQL My in all. Wilayah AWS

Sebaiknya Anda mengimpor database ke Amazon RDS dengan menggunakan file cadangan jika database lokal Anda bisa offline saat file cadangan dibuat, disalin, dan dipulihkan. Jika database Anda tidak dapat offline, Anda dapat menggunakan replikasi log biner (binlog) untuk memperbarui database Anda setelah Anda bermigrasi ke Amazon melalui Amazon RDS S3 seperti yang dijelaskan dalam topik ini. Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal. Anda juga dapat menggunakan file AWS Database Migration Service untuk memigrasikan database Anda ke AmazonRDS. Untuk informasi lebih lanjut, lihat Apa itu AWS Database Migration Service?

Ikhtisar pengaturan untuk mengimpor file cadangan dari Amazon S3 ke Amazon RDS

Ini adalah komponen yang perlu Anda atur untuk mengimpor file cadangan dari Amazon S3 ke Amazon: RDS

  • Bucket Amazon S3 untuk menyimpan file cadangan Anda.

  • Cadangan database lokal Anda yang dibuat oleh XtraBackup Percona.

  • Peran AWS Identity and Access Management (IAM) untuk memungkinkan Amazon RDS mengakses bucket.

Anda dapat menggunakan bucket Amazon S3 yang sudah Anda miliki. Jika Anda belum memiliki bucket Amazon S3, silakan buat baru. Jika Anda ingin membuat bucket baru, lihat Membuat bucket.

Gunakan XtraBackup alat Percona untuk membuat cadangan Anda. Untuk informasi selengkapnya, lihat Membuat cadangan basis data.

Jika Anda sudah memiliki IAM peran, Anda dapat menggunakannya. Jika Anda tidak memiliki IAM peran, Anda dapat membuat yang baru secara manual. Atau, Anda dapat memilih untuk memiliki IAM peran baru yang dibuat untuk Anda di akun Anda oleh wizard ketika Anda memulihkan database dengan menggunakan AWS Management Console. Jika Anda ingin membuat IAM peran baru secara manual, atau melampirkan kebijakan kepercayaan dan izin ke IAM peran yang ada, lihatMembuat IAM peran secara manual. Jika Anda ingin memiliki IAM peran baru yang dibuat untuk Anda, ikuti prosedur diKonsol.

Membuat cadangan basis data

Gunakan XtraBackup perangkat lunak Percona untuk membuat cadangan Anda. Kami menyarankan Anda menggunakan versi terbaru XtraBackup Percona. Anda dapat menginstal Percona XtraBackup dari Unduh Percona. XtraBackup

Awas

Saat membuat cadangan basis data, XtraBackup mungkin menyimpan kredensil dalam file xtrabackup_info. Periksa file tersebut untuk memastikan pengaturan tool_command di dalamnya tidak berisi informasi sensitif.

catatan

Untuk migrasi SQL 8.0 Saya, Anda harus menggunakan XtraBackup Percona 8.0. Percona XtraBackup 8.0.12 dan versi yang lebih tinggi mendukung migrasi semua versi My. SQL Jika Anda bermigrasi ke RDS untuk My SQL 8.0.20 atau lebih tinggi, Anda harus menggunakan XtraBackup Percona 8.0.12 atau lebih tinggi.

Untuk migrasi SQL 5.7 Saya, Anda juga dapat menggunakan XtraBackup Percona 2.4. Untuk migrasi SQL versi Saya sebelumnya, Anda juga dapat menggunakan Percona XtraBackup 2.3 atau 2.4.

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

Untuk informasi lebih lanjut tentang mencadangkan database Anda dengan Percona XtraBackup, lihat Percona XtraBackup - dokumentasi dan Biner xtrabackup di situs web Percona.

Membuat cadangan lengkap dengan Percona XtraBackup

Untuk membuat cadangan lengkap file SQL database Saya yang dapat dipulihkan dari Amazon S3, gunakan XtraBackup utilitas Percona (xtrabackup) untuk mencadangkan database Anda.

Misalnya, perintah berikut membuat cadangan SQL database Saya dan menyimpan file di folder /on-premises/s3-restore/backup folder.

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

Jika Anda ingin mengompres cadangan ke dalam satu file (yang nantinya dapat dipecah, jika perlu), Anda dapat menyimpan cadangan dalam salah satu format berikut:

  • Gzip (.gz)

  • tar (.tar)

  • xbstream Percona (.xbstream)

catatan

Percona XtraBackup 8.0 hanya mendukung Percona xbstream untuk kompresi.

Perintah berikut membuat cadangan SQL database Saya 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 SQL database Saya dibagi 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 SQL database Saya dibagi 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

Menggunakan cadangan tambahan dengan Percona XtraBackup

Jika Anda sudah menggunakan Percona XtraBackup untuk melakukan pencadangan penuh dan bertahap dari file SQL database Saya, Anda tidak perlu membuat cadangan lengkap dan mengunggah file cadangan ke Amazon S3. Sebagai gantinya, Anda dapat menghemat banyak waktu dengan menyalin direktori dan file cadangan yang sudah ada ke bucket Amazon S3 Anda. Untuk informasi selengkapnya tentang membuat backup tambahan menggunakan Percona XtraBackup, lihat Incremental backup.

Saat menyalin file cadangan penuh dan inkremental yang sudah ada 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 menjaga struktur direktori di bucket Amazon S3. Amazon melakukan RDS iterasi melalui 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

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

Amazon RDS menggunakan file cadangan Anda dalam urutan abjad dan juga dalam urutan angka alami. Gunakan opsi split saat Anda mengeluarkan perintah xtrabackup untuk memastikan file cadangan Anda ditulis dan diberi nama dalam urutan yang benar.

Amazon RDS 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.

Amazon RDS mendukung backup tambahan yang dibuat menggunakan Percona. XtraBackup Untuk informasi selengkapnya tentang membuat backup tambahan menggunakan Percona XtraBackup, lihat Incremental backup.

Membuat IAM peran secara manual

Jika Anda tidak memiliki IAM peran, Anda dapat membuat yang baru secara manual. Namun, jika Anda memulihkan database dengan menggunakan AWS Management Console, kami sarankan Anda mengikuti prosedur Konsol dan memilih untuk RDS membuat IAM peran baru ini untuk Anda.

Untuk membuat IAM peran baru secara manual untuk mengimpor database Anda dari Amazon S3, buat peran untuk mendelegasikan izin dari Amazon ke bucket Amazon S3 RDS Anda. Saat membuat IAM peran, Anda melampirkan 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. AWS

Kebijakan kepercayaan dan izin mengharuskan Anda memberikan Nama Sumber Daya Amazon (ARN). Untuk informasi selengkapnya tentang ARN pemformatan, lihat Amazon Resource Names (ARNs) dan ruang nama AWS layanan.

contoh kebijakan kepercayaan untuk mengimpor dari Amazon S3
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole" }] }
contoh kebijakan izin untuk mengimpor dari Amazon IAM S3 - izin pengguna

Dalam contoh berikut, ganti iam_user_id dengan nilai Anda sendiri.

{ "Version":"2012-10-17", "Statement": [ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::iam_user_id:role/S3Access" } ] }
contoh kebijakan izin untuk mengimpor dari Amazon S3 - izin peran

Dalam contoh berikut, ganti amzn-s3-demo-bucket and prefix dengan nilai-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*" }, { // If your bucket is encrypted, include the following permission. This permission allows decryption of your AWS KMS key. "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:customer_id:key/key_id*" ] } ] }
catatan

Jika Anda menyertakan sebuah prefiks nama file, sertakan tanda bintang (*) setelah prefiks. Jika Anda tidak ingin menyertakan prefiks, sertakan tanda bintang saja.

Mengimpor data dari Amazon S3 ke instans DB Saya yang baru SQL

Anda dapat mengimpor data dari Amazon S3 ke instans SQL DB Saya baru menggunakan AWS Management Console, AWS CLI, atau. RDS API

Untuk mengimpor data dari Amazon S3 ke instans DB Saya SQL yang baru
  1. Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/.

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

  3. Di panel navigasi, pilih Database.

  4. 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.
  5. Di bagian Tujuan S3:

    1. Pilih Bucket S3 yang berisi cadangan.

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

      Jika Anda tidak menentukan awalan, maka buat RDS instance DB Anda menggunakan semua file dan folder di folder root bucket S3. Jika Anda menentukan awalan, maka RDS buat instance DB Anda menggunakan file dan folder di bucket S3 tempat jalur untuk file dimulai dengan awalan 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_backup1, gzip_backup2, dan sebagainya). Dalam kasus ini, Anda menentukan prefiks backup/gzip_backup1 untuk memulihkan dari file di folder gzip_backup1.

  6. Di bagian Opsi mesin:

    1. Untuk tipe Engine, pilih My SQL.

    2. Untuk versi mesin Sumber, pilih versi SQL utama saya dari database sumber Anda.

    3. Untuk Versi Engine, pilih versi minor default dari versi SQL utama Saya di versi utama Anda Wilayah AWS.

      Dalam AWS Management Console, hanya versi minor default yang tersedia. Anda dapat meningkatkan instans DB Anda setelah mengimpor.

  7. Untuk IAMperan, buat atau pilih IAM peran 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 IAM peran. Dengan opsi ini, RDS secara otomatis membuat peran dengan kebijakan kepercayaan dan kebijakan izin untuk Anda.

    • Pilih IAM peran yang ada. Pastikan bahwa peran ini memenuhi semua kriteria diMembuat IAM peran secara manual.

  8. Tentukan informasi instans DB Anda. Untuk informasi tentang setiap pengaturan, lihat Pengaturan untuk instans DB.

    catatan

    Pastikan alokasi memori untuk instans DB baru Anda cukup agar operasi pemulihan berhasil.

    Anda juga dapat memilih Aktifkan penskalaan otomatis penyimpanan untuk mengizinkan pertumbuhan mendatang secara otomatis.

  9. Pilih pengaturan tambahan sesuai kebutuhan.

  10. Pilih Create database.

Untuk mengimpor data dari Amazon S3 ke instans My SQL DB baru dengan menggunakan AWS CLI, panggil perintah restore-db-instance-from-s3 dengan parameter berikut. Untuk informasi tentang setiap pengaturan, lihat Pengaturan untuk instans DB.

catatan

Pastikan alokasi memori untuk instans DB baru Anda cukup agar operasi pemulihan dapat berhasil.

Anda juga dapat menggunakan parameter --max-allocated-storage untuk mengaktifkan penskalaan otomatis penyimpanan dan memungkinkan pertumbuhan ke depannya secara otomatis.

  • --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

contoh

Untuk Linux, macOS, atau Unix:

aws rds restore-db-instance-from-s3 \ --allocated-storage 250 \ --db-instance-identifier myidentifier \ --db-instance-class db.m5.large \ --engine mysql \ --master-username admin \ --manage-master-user-password \ --s3-bucket-name amzn-s3-demo-bucket \ --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \ --s3-prefix bucketprefix \ --source-engine mysql \ --source-engine-version 8.0.32 \ --max-allocated-storage 1000

Untuk Windows:

aws rds restore-db-instance-from-s3 ^ --allocated-storage 250 ^ --db-instance-identifier myidentifier ^ --db-instance-class db.m5.large ^ --engine mysql ^ --master-username admin ^ --manage-master-user-password ^ --s3-bucket-name amzn-s3-demo-bucket ^ --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename ^ --s3-prefix bucketprefix ^ --source-engine mysql ^ --source-engine-version 8.0.32 ^ --max-allocated-storage 1000

Untuk mengimpor data dari Amazon S3 ke instans My SQL DB baru dengan menggunakan Amazon RDSAPI, panggil operasi R estoreDBInstance fromS3.

Batasan dan rekomendasi untuk mengimpor file cadangan dari Amazon S3 ke Amazon RDS

Berikut adalah beberapa batasan dan rekomendasi untuk pengimporan file cadangan dari Amazon S3:

  • Anda hanya dapat mengimpor data Anda ke instans DB baru, bukan ke instans DB yang sudah ada.

  • Anda harus menggunakan Percona XtraBackup untuk membuat cadangan database lokal Anda.

  • Anda tidak dapat mengimpor data dari ekspor snapshot DB ke Amazon S3.

  • Anda tidak dapat bermigrasi dari database sumber yang memiliki tabel yang ditentukan di luar direktori SQL data Saya default.

  • Anda harus mengimpor data Anda ke versi minor default versi SQL utama Saya di versi utama Anda Wilayah AWS. Misalnya, jika versi utama Anda adalah My SQL 8.0, dan versi minor default untuk Anda Wilayah AWS adalah 8.0.35, maka Anda harus mengimpor data Anda ke instans My SQL version 8.0.35 DB. Anda dapat meningkatkan instans DB setelah mengimpor. Untuk informasi tentang penentuan versi minor default, lihat RDSVersi saya SQL di Amazon.

  • Migrasi mundur tidak didukung baik untuk versi utama maupun minor. Misalnya, Anda tidak dapat bermigrasi dari versi 8.0 ke versi 5.7, dan Anda tidak dapat bermigrasi dari versi 8.0.32 ke versi 8.0.31.

  • Anda tidak dapat mengimpor database My SQL 5.5 atau 5.6.

  • Anda tidak dapat mengimpor SQL database Saya lokal dari satu versi utama ke versi lainnya. Misalnya, Anda tidak dapat mengimpor database My SQL 5.7 ke database RDS for My SQL 8.0. Anda dapat meningkatkan instans DB Anda setelah selesai mengimpor.

  • Anda tidak dapat memulihkan dari database sumber terenkripsi, tetapi Anda dapat memulihkan ke instans Amazon RDS DB terenkripsi.

  • Anda tidak dapat memulihkan dari cadangan terenkripsi dalam bucket Amazon S3.

  • Anda tidak dapat memulihkan dari bucket Amazon S3 yang berbeda Wilayah AWS dari instans Amazon RDS DB Anda.

  • Pengimporan dari Amazon S3 tidak didukung pada kelas instans DB db.t2.micro. Akan tetapi, Anda dapat memulihkan ke kelas instans DB yang berbeda, dan mengubah kelas instans DB pada lain waktu. Untuk informasi selengkapnya tentang kelas instans, lihat Spesifikasi perangkat keras kelas instans DB .

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

  • Saat Anda memulihkan basis data Anda, cadangan akan disalin dan diekstrak pada instans DB Anda. Sebaiknya sediakan ruang penyimpanan untuk instans DB Anda dengan ukuran yang sama dengan atau lebih besar daripada jumlah ukuran cadangan ditambah ukuran basis data asli pada disk.

  • Amazon RDS membatasi jumlah file yang diunggah ke 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.

  • Akun pengguna tidak diimpor secara otomatis. Simpan akun pengguna Anda dari basis data sumber dan tambahkan ke instans DB baru Anda pada lain waktu.

  • Fungsi tidak diimpor secara otomatis. Simpan fungsi Anda dari basis data sumber dan tambahkan ke instans DB baru Anda pada lain waktu.

  • Prosedur yang disimpan tidak diimpor secara otomatis. Simpan prosedur yang disimpan dari basis data sumber dan tambahkan ke instans DB baru Anda pada lain waktu.

  • Informasi zona waktu tidak diimpor secara otomatis. Catatan informasi zona waktu untuk basis data sumber Anda, dan atur zona waktu instans DB baru Anda pada lain waktu. Untuk informasi selengkapnya, lihat Zona waktu lokal untuk instans DB MySQL.

  • Parameter innodb_data_file_path harus dikonfigurasi dengan hanya satu file data yang menggunakan nama file data "ibdata1:12M:autoextend" default. Basis data yang berisi dua file data, atau memiliki file data dengan nama yang berbeda, tidak dapat dimigrasi menggunakan metode ini.

    Berikut ini adalah contoh nama file yang tidak diperbolehkan: "innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend" dan "innodb_data_file_path=ibdata01:50M:autoextend".

  • Ukuran maksimum basis data yang dipulihkan adalah ukuran basis data maksimum yang didukung dikurangi ukuran cadangan. Jadi, jika ukuran basis data maksimum yang didukung adalah 64 TiB, dan ukuran cadangan adalah 30 TiB, ukuran maksimal basis data yang dipulihkan adalah 34 TiB, seperti dalam contoh berikut:

    64 TiB - 30 TiB = 34 TiB

    Untuk informasi tentang ukuran database maksimum yang didukung oleh Amazon RDS for MySQL, lihat SSDPenyimpanan Tujuan Umum danPenyimpanan yang disediakan IOPS SSD.