Pisahkan cadangan - AWS Panduan Preskriptif

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

Pisahkan cadangan

Strategi pencadangan terpisah adalah ketika Anda memigrasikan server database besar dengan membagi cadangan menjadi beberapa bagian. Anda dapat menggunakan pendekatan yang berbeda untuk memigrasikan setiap bagian cadangan. Ini bisa menjadi pilihan terbaik untuk kasus penggunaan berikut:

  • Server database besar tetapi database individu kecil — Ini adalah pendekatan yang baik ketika ukuran total server database adalah beberapa TB tetapi ukuran masing-masing individu, database pengguna independen kurang dari 1 TB. Untuk mengurangi periode migrasi secara keseluruhan, Anda dapat memigrasikan database individual secara terpisah dan paralel.

    Mari kita gunakan contoh server database 2 TB lokal. Server ini terdiri dari empat database yang masing-masing 0,5 TB. Anda dapat mengambil cadangan dari setiap database individu secara terpisah. Saat memulihkan cadangan, Anda dapat memulihkan semua database pada instance secara paralel, atau jika database independen, Anda dapat memulihkan setiap cadangan pada instance terpisah. Ini adalah praktik terbaik untuk memulihkan database independen pada instance terpisah, alih-alih memulihkannya pada instance yang sama. Untuk informasi selengkapnya, lihat Praktik terbaik dalam panduan ini.

  • Server database besar tetapi tabel database individu kecil — Ini adalah pendekatan yang baik ketika ukuran total server database adalah beberapa TB tetapi ukuran setiap tabel database independen kurang dari 1 TB. Untuk mengurangi periode migrasi secara keseluruhan, Anda dapat memigrasikan tabel independen satu per satu.

    Mari kita gunakan contoh database pengguna tunggal yaitu 1 TB, dan itu adalah satu-satunya database di server database lokal. Ada 10 tabel dalam database, dan masing-masing 100 GB. Anda dapat mengambil cadangan dari masing-masing tabel secara terpisah. Saat memulihkan cadangan, Anda dapat mengembalikan semua tabel pada instance secara paralel.

  • Database berisi tabel beban kerja transaksional dan non-transaksional — Mirip dengan kasus penggunaan sebelumnya, Anda dapat menggunakan pendekatan cadangan terpisah ketika Anda memiliki tabel beban kerja transaksional dan non-transaksional dalam database yang sama.

    Mari kita gunakan contoh database 2 TB yang terdiri dari 0,5 TB tabel beban kerja kritis yang digunakan untuk pemrosesan transaksi online (OLTP) dan tabel 1,5 TB tunggal yang digunakan untuk pengarsipan data lama. Anda dapat mengambil cadangan semua objek database kecuali tabel arsip sebagai transaksi tunggal dan cadangan yang konsisten. Kemudian, Anda hanya mengambil cadangan terpisah dari tabel arsip. Untuk cadangan tabel arsip, Anda juga dapat mempertimbangkan untuk mengambil beberapa backup paralel dengan menggunakan kondisi untuk membagi jumlah baris dalam file cadangan. Berikut adalah contohnya:

    mysqldump -p your_db1 --tables your_table1 --where=“column1 between 1 and 1000000 " > your_table1_part1.sql mysqldump -p your_db1 --tables your_table1 --where="column1 between 1000001 and 2000000 " > your_table1_part2.sql mysqldump -p your_db1 --tables your_table1 --where="column1 > 2000000 " > your_table1_part3.sql

    Saat memulihkan file cadangan, Anda dapat mengembalikan cadangan beban kerja transaksional dan cadangan tabel arsip secara paralel.

  • Batasan sumber daya komputasi — Jika Anda memiliki sumber daya komputasi terbatas di server lokal, seperti CPU, memori, atau I/O disk, hal ini dapat memengaruhi stabilitas dan kinerja saat mengambil cadangan. Alih-alih mengambil cadangan lengkap, Anda dapat membaginya menjadi beberapa bagian.

    Misalnya, server produksi lokal mungkin penuh dengan beban kerja dan memiliki sumber daya CPU yang terbatas. Jika Anda mengambil cadangan tunggal dari database multi-terabyte di server ini, ia dapat mengkonsumsi sumber daya CPU tambahan dan berdampak buruk pada server produksi. Alih-alih mengambil cadangan database lengkap, bagilah cadangan menjadi beberapa bagian, seperti masing-masing 2-3 tabel.