Bagaimana cara mengembalikan database mysql yang besar?

Amazon RDS mendukung pengimporan database MySQL dengan menggunakan file cadangan. Anda dapat membuat cadangan database Anda, menyimpannya di Amazon S3, lalu memulihkan file cadangan ke instans Amazon RDS DB baru yang menjalankan MySQL

Skenario yang dijelaskan di bagian ini memulihkan cadangan database lokal. Anda dapat menggunakan teknik ini untuk database di lokasi lain, seperti Amazon EC2 atau layanan cloud non-AWS, selama database dapat diakses

Anda dapat menemukan skenario yang didukung dalam diagram berikut

Bagaimana cara mengembalikan database mysql yang besar?

Mengimpor file cadangan dari Amazon S3 didukung untuk MySQL di semua Wilayah AWS

Kami menyarankan Anda mengimpor database Anda ke Amazon RDS dengan menggunakan file cadangan jika database lokal Anda dapat 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 RDS melalui Amazon 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 AWS Database Migration Service untuk memigrasikan database Anda ke Amazon RDS. Untuk informasi selengkapnya, lihat Apa itu Layanan Migrasi Database AWS?

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

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

  • Anda hanya dapat mengimpor data ke instans DB baru, bukan 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 data default MySQL

  • Anda harus mengimpor data Anda ke versi minor default dari versi utama MySQL Anda di Wilayah AWS Anda. Misalnya, jika versi utama Anda adalah MySQL 8. 0, dan versi minor default untuk Wilayah AWS Anda adalah 8. 0. 28, maka Anda harus mengimpor data Anda ke MySQL versi 8. 0. Contoh 28 DB. Anda dapat memutakhirkan instans DB Anda setelah mengimpor. Untuk informasi tentang menentukan versi minor default, lihat MySQL pada versi Amazon RDS

  • Migrasi mundur tidak didukung untuk versi mayor dan versi minor. Misalnya, Anda tidak dapat bermigrasi dari versi 8. 0 hingga versi 5. 7, dan Anda tidak dapat bermigrasi dari versi 8. 0. 28 ke versi 8. 0. 27

  • Anda tidak dapat mengimpor MySQL 5. 5 atau 5. 6 basis data

  • Anda tidak dapat mengimpor database MySQL lokal dari satu versi utama ke versi lainnya. Misalnya, Anda tidak dapat mengimpor MySQL 5. 7 ke database RDS untuk MySQL 8. 0 basis data. Anda dapat memutakhirkan instans DB Anda setelah menyelesaikan impor

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

  • Anda tidak dapat memulihkan dari cadangan terenkripsi di bucket Amazon S3

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

  • Mengimpor dari Amazon S3 tidak didukung di db. t2. kelas instans DB mikro. Namun, Anda dapat memulihkan ke kelas instans DB yang berbeda, dan mengubah kelas instans DB nanti. Untuk informasi selengkapnya tentang kelas instance, lihat

  • Amazon S3 membatasi ukuran file yang diunggah ke bucket Amazon S3 hingga 5 TB. Jika file cadangan melebihi 5 TB, maka Anda harus membagi file cadangan menjadi file yang lebih kecil

  • Saat Anda memulihkan database, cadangan disalin lalu diekstraksi pada instans DB Anda. Oleh karena itu, sediakan ruang penyimpanan untuk instans DB Anda yang sama atau lebih besar dari jumlah ukuran cadangan, ditambah ukuran database asli pada disk

  • Amazon RDS membatasi jumlah file yang diunggah ke bucket Amazon S3 menjadi 1 juta. Jika data cadangan untuk database Anda, termasuk semua cadangan lengkap dan tambahan, melebihi 1 juta file, gunakan Gzip (. gz), tar (. ter. gz), atau Percona xbstream (. xbstream) untuk menyimpan file cadangan penuh dan inkremental di bucket Amazon S3. Percona XtraBackup 8. 0 hanya mendukung Percona xbstream untuk kompresi

  • Akun pengguna tidak diimpor secara otomatis. Simpan akun pengguna Anda dari database sumber dan tambahkan ke instans DB baru Anda nanti

  • Fungsi tidak diimpor secara otomatis. Simpan fungsi Anda dari database sumber dan tambahkan ke instans DB baru Anda nanti

  • Prosedur tersimpan tidak diimpor secara otomatis. Simpan prosedur tersimpan Anda dari database sumber Anda dan tambahkan ke instans DB baru Anda nanti

  • Informasi zona waktu tidak diimpor secara otomatis. Catat informasi zona waktu untuk database sumber Anda, dan atur zona waktu instans DB baru Anda nanti. Untuk informasi selengkapnya, lihat Zona waktu lokal untuk instans MySQL DB

  • Parameter innodb_data_file_path_ harus dikonfigurasi hanya dengan satu file data yang menggunakan nama file data default

    xtrabackup --backup --user= --password= --stream=tar \
       --target-dir= | gzip - | split -d --bytes=500MB \
       - .tar.gz
    0. Database dengan dua file data, atau dengan file data dengan nama berbeda, tidak dapat dimigrasikan menggunakan metode ini

    Berikut ini adalah contoh nama file yang tidak diperbolehkan.

    xtrabackup --backup --user= --password= --stream=tar \
       --target-dir= | gzip - | split -d --bytes=500MB \
       - .tar.gz
    1 dan
    xtrabackup --backup --user= --password= --stream=tar \
       --target-dir= | gzip - | split -d --bytes=500MB \
       - .tar.gz
    2

  • Ukuran maksimum database yang dipulihkan adalah ukuran maksimum database yang didukung dikurangi ukuran cadangan. Jadi, jika ukuran maksimum database yang didukung adalah 64 TiB, dan ukuran cadangan adalah 30 TiB, maka ukuran maksimum database yang dipulihkan adalah 34 TiB, seperti contoh berikut

    xtrabackup --backup --user= --password= --stream=tar \
       --target-dir= | gzip - | split -d --bytes=500MB \
       - .tar.gz
    _3

    Untuk informasi tentang ukuran database maksimum yang didukung oleh Amazon RDS for MySQL, lihat dan

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 Percona XtraBackup

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

Jika Anda sudah memiliki bucket Amazon S3, Anda dapat menggunakannya. Jika Anda tidak memiliki bucket Amazon S3, Anda dapat membuat yang baru. Jika Anda ingin membuat keranjang baru, lihat Membuat keranjang

Gunakan alat Percona XtraBackup untuk membuat cadangan Anda. Untuk informasi lebih lanjut, lihat

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

Membuat cadangan basis data Anda

Gunakan perangkat lunak Percona XtraBackup untuk membuat cadangan Anda. Anda dapat menginstal Percona XtraBackup dari Download Percona XtraBackup

Saat membuat cadangan basis data, XtraBackup mungkin menyimpan kredensial di file xtrabackup_info. Pastikan Anda memeriksa file itu sehingga pengaturan

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
4 di dalamnya tidak berisi informasi sensitif apa pun

Untuk MySQL8. 0, Anda harus menggunakan Percona XtraBackup 8. 0. Percona XtraBackup 8. 0. 12 dan versi yang lebih tinggi mendukung migrasi semua versi MySQL. Jika Anda bermigrasi ke RDS untuk MySQL 8. 0. 20 atau lebih tinggi, Anda harus menggunakan Percona XtraBackup 8. 0. 12 atau lebih tinggi

Untuk MySQL5. 7 migrasi, Anda juga dapat menggunakan Percona XtraBackup 2. 4. Untuk migrasi versi MySQL sebelumnya, Anda juga dapat menggunakan Percona XtraBackup 2. 3 atau 2. 4

Anda dapat membuat cadangan lengkap file database MySQL Anda menggunakan Percona XtraBackup. Sebagai alternatif, jika Anda telah menggunakan Percona XtraBackup untuk mencadangkan file database MySQL, Anda dapat mengunggah direktori dan file cadangan lengkap dan inkremental yang ada

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

Membuat cadangan lengkap dengan Percona XtraBackup

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

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
5) untuk mencadangkan database Anda

Misalnya, perintah berikut membuat cadangan database MySQL dan menyimpan file di folder

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
6 folder

xtrabackup --backup --user= --password= --target-dir=

Jika Anda ingin memampatkan cadangan menjadi satu file (yang dapat dipisah nanti, jika perlu), Anda dapat menyimpan cadangan dalam salah satu format berikut

  • Gzip (. gz)

  • tar (. ter)

  • Percona xbstream (. xbstream)

Percona XtraBackup 8. 0 hanya mendukung Percona xbstream untuk kompresi

Perintah berikut membuat cadangan database MySQL Anda yang dipecah menjadi beberapa file Gzip

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz

Perintah berikut membuat cadangan database MySQL Anda yang dipecah menjadi beberapa file tar

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
_

Perintah berikut membuat cadangan database MySQL Anda yang dipecah menjadi beberapa file xbstream

xtrabackup --backup --user= --password= --stream=xbstream \
   --target-dir= | split -d --bytes=500MB \
   - .xbstream

Menggunakan cadangan inkremental dengan Percona XtraBackup

Jika Anda sudah menggunakan Percona XtraBackup untuk melakukan pencadangan penuh dan inkremental dari file database MySQL, 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 ada ke bucket Amazon S3 Anda. Untuk informasi selengkapnya tentang membuat cadangan inkremental menggunakan Percona XtraBackup, lihat Cadangan inkremental

Saat menyalin file cadangan lengkap dan inkremental yang ada ke bucket Amazon S3, Anda harus menyalin konten direktori dasar secara rekursif. Konten tersebut mencakup cadangan lengkap dan juga semua direktori dan file cadangan tambahan. Salinan ini harus mempertahankan struktur direktori di bucket Amazon S3. Amazon RDS melakukan iterasi melalui semua file dan direktori. Amazon RDS menggunakan file

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
_7 yang disertakan dengan setiap cadangan inkremental untuk mengidentifikasi direktori dasar, dan untuk memesan cadangan inkremental berdasarkan rentang nomor urutan log (LSN)

Pertimbangan pencadangan untuk Percona XtraBackup

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

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
8 untuk file yang disimpan menggunakan format Percona xbstream

Amazon RDS menggunakan file cadangan Anda dalam urutan abjad dan juga dalam urutan nomor asli. Gunakan opsi

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
_9 saat Anda mengeluarkan perintah
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | gzip - | split -d --bytes=500MB \
   - .tar.gz
5 untuk memastikan bahwa file cadangan Anda ditulis dan diberi nama dengan urutan yang benar

Amazon RDS tidak mendukung pencadangan sebagian yang dibuat menggunakan Percona XtraBackup. Anda tidak dapat menggunakan opsi berikut untuk membuat cadangan sebagian saat Anda mencadangkan file sumber untuk database Anda.

xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
1,
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
2,
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
3,
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
4,
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
5, atau
xtrabackup --backup --user= --password= --stream=tar \
   --target-dir= | split -d --bytes=500MB \
   - .tar
6

Amazon RDS mendukung pencadangan inkremental yang dibuat menggunakan Percona XtraBackup. Untuk informasi selengkapnya tentang membuat cadangan inkremental menggunakan Percona XtraBackup, lihat Cadangan inkremental

Membuat peran IAM secara manual

Jika Anda tidak memiliki peran IAM, Anda dapat membuat peran baru secara manual. Alternatifnya, Anda dapat memilih agar peran IAM baru dibuat untuk Anda oleh wizard saat Anda memulihkan database dengan menggunakan AWS Management Console. Jika Anda ingin membuat peran IAM baru untuk Anda, ikuti prosedur di

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 Anda membuat peran IAM, Anda melampirkan kebijakan kepercayaan dan izin. Untuk mengimpor file cadangan Anda dari Amazon S3, gunakan kebijakan kepercayaan dan izin yang mirip dengan contoh berikut. Untuk informasi selengkapnya tentang membuat peran, lihat Membuat peran untuk mendelegasikan izin ke layanan AWS

Alternatifnya, Anda dapat memilih agar peran IAM baru dibuat untuk Anda oleh wizard saat Anda memulihkan database dengan menggunakan AWS Management Console. Jika Anda ingin membuat peran IAM baru untuk Anda, ikuti prosedur di

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

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 S3 — izin pengguna IAM

{
    "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

{
    "Version": "2012-10-17",
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
        "Resource": "arn:aws:s3:::bucket_name"
        },
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:GetObject"
            ],
        "Resource": "arn:aws:s3:::bucket_name/prefix*"
        }
    ]
}

Jika Anda menyertakan awalan nama file, sertakan tanda bintang (*) setelah awalan. Jika Anda tidak ingin menentukan awalan, tentukan hanya tanda bintang

Mengimpor data dari Amazon S3 ke instans MySQL DB baru

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

Untuk mengimpor data dari Amazon S3 ke instans MySQL DB baru dengan menggunakan Amazon RDS API, panggil operasi RestoreDBInstanceFromS3

Bagaimana cara mengembalikan seluruh database saya?

Di Object Explorer, sambungkan ke instance SQL Server Database Engine, lalu perluas instance tersebut
Klik kanan Database dan pilih Restore Database
Di halaman Umum, gunakan bagian Sumber untuk menentukan sumber dan lokasi kumpulan cadangan yang akan dipulihkan

Bagaimana cara memigrasi database MySQL yang besar?

Transfer database dengan baris perintah . Ini menghasilkan satu file cadangan database MySQL dengan satu set pernyataan SQL yang terhubung secara logis. Untuk mencadangkan database MySQL, Anda perlu menjalankan perintah mysqldump. using the mysqldump command-line utility. It generates a single MySQL database backup file with a set of logically connected SQL statements. To back up a MySQL database, you need to execute the mysqldump command.

Bagaimana saya bisa mengembalikan database MySQL saya lebih cepat?

Hubungi MySQL. .
Sebelum Pencadangan Pertama. Kumpulkan Informasi Basis Data. .
Siklus Pencadangan / Verifikasi / Pemulihan Khas. Pengguna OS untuk Menjalankan mysqlbackup. .
Skenario dan Contoh Cadangan. Membuat Pencadangan Berkas Tunggal. .
Membuat Backup dengan Distributed File System (DFS) atau Storage Access Network (SAN)

Bagaimana cara mengimpor database besar ke MySQL Workbench?

Untuk mengimpor file, buka Workbench dan klik + di sebelah opsi koneksi MySQL. Isi kolom dengan informasi koneksi. Setelah terhubung ke database, buka Data Import/Restore. Pilih opsi Impor dari File Mandiri dan pilih file