Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sebaiknya buat snapshot DB dari instans Amazon RDS DB target sebelum dan sesudah pemuatan data. Snapshot DB Amazon RDS adalah cadangan lengkap instans DB Anda yang dapat digunakan untuk memulihkan instans DB Anda ke status yang diketahui. Saat Anda memulai sebuah snapshot DB, operasi I/O ke instans DB Anda untuk sementara ditangguhkan selama basis data Anda dicadangkan.
Jika perlu, segera buat sebuah snapshot DB sebelum pemuatan agar Anda dapat memulihkan basis data ke statusnya sebelum pemuatan. Dengan snapshot DB yang diambil segera setelah pemuatan, Anda tidak perlu memuat data lagi jika terjadi hal-hal yang tidak diinginkan dan snapshot ini juga dapat digunakan untuk melakukan seeding instans basis data baru.
Daftar berikut menunjukkan langkah-langkah yang harus diambil. Setiap langkah dibahas secara lebih mendetail di bawah.
Buat file datar yang berisi data yang akan dimuat.
Hentikan aplikasi apa pun yang mengakses instans DB target.
Buat sebuah snapshot DB.
Pertimbangkan menonaktifkan pencadangan otomatis Amazon RDS.
Muat data.
Aktifkan pencadangan otomatis lagi.
Langkah 1: Buat file datar yang berisi data yang akan dimuat
Gunakan format umum, seperti CSV (Comma-Separated Values), untuk menyimpan data yang akan dimuat. Setiap tabel harus memiliki file sendiri; Anda tidak dapat menggabungkan data untuk beberapa tabel dalam file yang sama. Beri setiap file nama yang sama dengan tabelnya. Ekstensi file dapat berupa apa pun yang Anda inginkan. Misalnya, jika nama tabelnya sales
, nama file-nya mungkin sales.csv
atau sales.txt
, tetapi bukan sales_01.csv
.
Jika memungkinkan, urutkan data berdasarkan kunci primer tabel yang dimuat. Tindakan ini secara drastis meningkatkan waktu pemuatan dan meminimalkan kebutuhan penyimpanan disk.
Kecepatan dan efisiensi prosedur ini ditentukan oleh kemampuan untuk mempertahankan ukuran file tetap kecil. Jika ukuran file individual yang tidak terkompresi lebih besar dari 1 GiB, bagilah ke dalam beberapa file dan muat setiap file secara terpisah.
Pada sistem seperti Unix (termasuk Linux), gunakan perintah split
. Misalnya, perintah berikut membagi file sales.csv
menjadi beberapa file berukuran kurang dari 1 GiB, yang hanya membagi pada jeda baris (-C 1024m). File-file baru tersebut diberi nama sales.part_00
, sales.part_01
, dan seterusnya.
split -C 1024m -d sales.csv sales.part_
Utilitas yang serupa juga tersedia untuk sistem operasi lain.
Langkah 2: Hentikan aplikasi apa pun yang mengakses instans DB target
Sebelum memulai pemuatan besar, hentikan semua aktivitas aplikasi yang mengakses instans DB target yang akan Anda muati. Kami menyarankan hal ini terutama jika sesi lain akan memodifikasi tabel yang sedang dimuat atau tabel yang menjadi rujukan. Tindakan ini dapat mengurangi risiko pelanggaran pembatasan yang terjadi selama pemuatan dan meningkatkan performa pemuatan. Tindakan ini juga memungkinkan untuk memulihkan instans DB ke titik tepat sebelum pemuatan tanpa kehilangan perubahan yang dibuat oleh proses yang tidak terlibat dalam pemuatan.
Tentu saja, terkadang ini tidak memungkinkan atau tidak praktis. Jika Anda tidak dapat menghentikan aplikasi dari mengakses instans DB sebelum pemuatan, lakukan langkah-langkah untuk memastikan ketersediaan dan integritas data Anda. Langkah-langkah tertentu yang dibutuhkan dapat bervariasi tergantung kasus penggunaan dan persyaratan situs tertentu.
Langkah 3: Buat snapshot DB
Jika Anda berencana memuat data ke dalam instans DB baru yang tidak berisi data, Anda dapat melompati langkah ini. Sebaliknya, dengan membuat snapshot DB dari instans DB Anda, Anda dapat memulihkan instans DB ke titik tepat sebelum pemuatan, jika memang diperlukan. Seperti yang disebutkan sebelumnya, saat Anda memulai snapshot DB, operasi I/O ke instans DB Anda ditangguhkan selama beberapa menit selama basis data dicadangkan.
Contoh berikut menjalankan AWS CLI create-db-snapshot
perintah untuk membuat snapshot DB dari AcmeRDS
instance dan memberikan snapshot DB pengenal. "preload"
Untuk Linux, macOS, atau Unix:
aws rds create-db-snapshot \ --db-instance-identifier
AcmeRDS
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds create-db-snapshot ^ --db-instance-identifier
AcmeRDS
^ --db-snapshot-identifierpreload
Anda juga dapat menggunakan pemulihan dari fungsionalitas snapshot DB untuk membuat instans DB pengujian untuk melakukan dry run atau untuk membatalkan perubahan yang dibuat selama pemuatan.
Harap diingat bahwa pemulihan basis data dari sebuah snapshot DB akan menciptakan sebuah instans DB baru yang, seperti semua instans DB, memiliki pengidentifikasi yang unik dan titik akhir. Untuk memulihkan instans DB tanpa mengubah titik akhir, pertama-tama hapus instans DB sehingga Anda dapat menggunakan ulang titik akhir.
Misalnya, untuk membuat instans DB untuk dry run atau pengujian lainnya, beri instans DB tersebut pengidentifikasinya sendiri. Dalam contoh ini, AcmeRDS-2
" adalah pengidentifikasinya. Contoh ini terhubung ke instans DB menggunakan titik akhir yang terkait dengan AcmeRDS-2
.
Untuk Linux, macOS, atau Unix:
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier
AcmeRDS-2
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier
AcmeRDS-2
^ --db-snapshot-identifierpreload
Untuk menggunakan ulang titik akhir yang sudah ada, pertama-tama hapus instans DB kemudian berikan pengidentifikasi yang sama kepada basis data yang dipulihkan.
Untuk Linux, macOS, atau Unix:
aws rds delete-db-instance \ --db-instance-identifier
AcmeRDS
\ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifierAcmeRDS
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds delete-db-instance ^ --db-instance-identifier
AcmeRDS
^ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifierAcmeRDS
^ --db-snapshot-identifierpreload
Contoh sebelumnya mengambil snapshot DB akhir sebuah instans DB sebelum menghapusnya. Ini adalah langkah opsional, tetapi direkomendasikan.
Langkah 4: Pertimbangkan untuk menonaktifkan pencadangan otomatis Amazon RDS
Awas
Jangan matikan cadangan otomatis jika Anda perlu melakukan point-in-time pemulihan.
Mematikan pencadangan otomatis akan menghapus semua cadangan yang ada, jadi point-in-time pemulihan tidak mungkin dilakukan setelah pencadangan otomatis dimatikan. Penonaktifan pencadangan otomatis adalah sebuah optimisasi performa dan tidak dibutuhkan untuk pemuatan data. Snapshot DB manual tidak terpengaruh dengan menonaktifkan pencadangan otomatis. Semua snapshot DB manual yang sudah ada tetap tersedia untuk pemulihan.
Penonaktifan pencadangan otomatis mengurangi waktu pemuatan sekitar 25 persen dan mengurangi jumlah ruang penyimpanan yang dibutuhkan selama pemuatan. Jika Anda berencana memuat data ke dalam sebuah instans DB baru yang tidak berisi data, penonaktifan pencadangan adalah cara yang mudah untuk mempercepat pemuatan dan menghindari penggunaan penyimpanan tambahan yang diperlukan untuk pencadangan. Namun, dalam beberapa kasus Anda mungkin berencana untuk melakukan pemuatan ke dalam instans DB yang sudah berisi data. Jika demikian, pertimbangkan manfaat mematikan cadangan terhadap dampak kehilangan kemampuan untuk melakukan. point-in-time-recovery
Instans DB memiliki pencadangan otomatis yang diaktifkan secara default (dengan periode retensi satu hari). Untuk menonaktifkan pencadangan otomatis, atur periode retensi pencadangan ke nol. Setelah pemuatan selesai, Anda dapat mengaktifkan kembali pencadangan dengan mengatur periode retensi pencadangan ke nilai selain nol. Untuk mengaktifkan atau menonaktifkan pencadangan, Amazon RDS mematikan instans DB dan memulainya kembali untuk mengaktifkan atau menonaktifkan pencatatan log MariaDB atau MySQL.
Jalankan AWS CLI modify-db-instance
perintah untuk mengatur retensi cadangan ke nol dan segera terapkan perubahan. Untuk mengatur periode retensi menjadi nol diperlukan mulai ulang instans DB, jadi tunggu hingga mulai ulang selesai sebelum melanjutkan.
Untuk Linux, macOS, atau Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --apply-immediately \ --backup-retention-period0
Untuk Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --apply-immediately ^ --backup-retention-period0
Anda dapat memeriksa status instans DB Anda dengan AWS CLI
describe-db-instances
perintah. Contoh berikut ini menampilkan status instans DB dari instans DB AcmeRDS
.
aws rds describe-db-instances --db-instance-identifier
AcmeRDS
--query "*[].{DBInstanceStatus:DBInstanceStatus}"
Saat status instans DB adalah available
, Anda dapat melanjutkan.
Langkah 5: Muat data
Gunakan pernyataan LOAD DATA LOCAL INFILE
MySQL untuk membaca baris dari file datar Anda ke dalam tabel database.
Contoh berikut menunjukkan cara memuat data dari file bernama sales.txt
ke dalam tabel bernama Sales
dalam database.
mysql> LOAD DATA LOCAL INFILE 'sales.txt' INTO TABLE Sales FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\\'; Query OK, 1 row affected (0.01 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
Untuk informasi selengkapnya tentang LOAD DATA
pernyataan tersebut, lihat dokumentasi MySQL
Langkah 6: Aktifkan pencadangan otomatis Amazon RDS
Setelah pemuatan selesai, aktifkan pencadangan otomatis Amazon RDS dengan mengatur periode retensi pencadangan kembali ke nilai sebelum pemuatan. Sebagaimana dijelaskan sebelumnya, Amazon RDS akan memulai ulang instans DB, jadi bersiaplah untuk pemadaman singkat.
Contoh berikut menjalankan AWS CLI modify-db-instance
perintah untuk mengaktifkan backup otomatis untuk instans AcmeRDS
DB dan mengatur periode retensi menjadi satu hari.
Untuk Linux, macOS, atau Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --backup-retention-period1
\ --apply-immediately
Untuk Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --backup-retention-period1
^ --apply-immediately