Tentang mengimpor dan mengekspor data

Halaman ini menjelaskan cara kerja impor dan ekspor di Memorystore for Redis.

Fitur impor dan ekspor menggunakan fitur snapshot RDB native Redis untuk mengimpor data ke atau mengekspor data dari instance Memorystore for Redis. Penggunaan format RDB native mencegah ketergantungan dan sangat memudahkan pemindahan data dalam Google Cloud atau ke luar Google Cloud. Impor dan ekspor menggunakan bucket Cloud Storage untuk menyimpan file RDB.

Perilaku instance Memorystore for Redis selama ekspor sangat mirip dengan perintah BGSAVE dalam Redis open source. Memorystore for Redis mengimpor dengan menyalin file RDB ke direktori data instance Anda.

Untuk mengetahui petunjuk cara mengimpor dan mengekspor file RDB, baca artikel Mengimpor data ke instance Redis dan Mengekspor data dari instance Redis.

Untuk mengetahui petunjuk cara menjadwalkan ekspor RDB menggunakan Cloud Scheduler, lihat Menjadwalkan ekspor database Memorystore for Redis menggunakan Cloud Scheduler.

Perilaku fitur impor

  • Untuk mendapatkan performa yang optimal, Anda harus mengimpor dari bucket Cloud Storage yang terletak di region yang sama dengan instance Redis Anda.

  • Instance Redis Anda tidak tersedia selama operasi impor. Instance Anda akan tersedia setelah operasi impor selesai.

  • Jika impor berhasil, data yang ada dalam instance akan ditimpa oleh data dalam file RDB.

  • Jika impor gagal karena alasan apa pun, instance akan dibawa online, tetapi data mungkin akan dihapus sepenuhnya. Anda dapat mencoba lagi impor menggunakan file RDB yang sama, atau Anda dapat menggunakan file RDB lain untuk memulihkan data.

  • Instance Memorystore for Redis dapat mengimpor file RDB dari versi Redis yang sama dan dari versi Redis sebelumnya, tetapi tidak dapat mengimpor file RDB dari versi yang lebih baru.

  • Operasi impor dapat dibatalkan, tetapi Anda harus memperhatikan bahwa pembatalan menyebabkan pemulihan instance dengan cache yang sepenuhnya dikosongkan. Hal ini berlaku untuk instance Tingkat Dasar dan Tingkat Standar.

  • Instance hanya dapat mengimpor cadangan dari versi Redis yang lebih lama. Instance yang menjalankan Redis 5.0 dapat mengimpor RDB yang diekspor dari Redis 4.0, tetapi instance yang menjalankan Redis 4.0 tidak dapat mengimpor RDB dari Redis 5.0.

Perilaku fitur ekspor

  • Anda dapat membaca dan menulis data ke instance Redis selama operasi ekspor, tetapi Anda tidak dapat melakukan operasi admin apa pun seperti menskalakan, mengupdate, atau mengonfigurasi instance.

  • Instance Anda mungkin mengalami peningkatan latensi selama ekspor.

  • Untuk mendapatkan performa yang optimal, Anda harus mengekspor cadangan RDB ke bucket Cloud Storage yang berada di region yang sama dengan instance Redis Anda.

  • Selama ekspor, file RDB akan disimpan ke bucket Cloud Storage pilihan Anda.

  • Anda dapat membatalkan operasi ekspor kapan saja. Pembatalan tidak memengaruhi data atau ketersediaan instance.

    • Membatalkan ekspor akan menghapus file RDB yang sedang ditulis ke bucket Cloud Storage, dan mengosongkan memori yang digunakan oleh proses BGSAVE.
  • Ekspor dapat menimpa file yang sudah ada dengan nama yang sama tanpa izin tambahan saat menggunakan Konsol Google Cloud. Untuk mengekspor file yang ada dengan gcloud, akun pengguna memerlukan izin storage.objects.delete.

Mengekspor dengan beban tulis yang tinggi

Jika Anda menjalankan ekspor selama periode operasi tulis yang tinggi, penggunaan memori instance dapat meningkat hingga 2X lipat, yang menyebabkan operasi ekspor gagal. Anda harus melakukan operasi ekspor selama periode penulisan yang rendah. Untuk memantau jumlah data Redis yang disimpan di instance, Anda dapat membuat dasbor untuk memantau penggunaan memori dan memantau metrik penggunaan memori instance dengan Cloud Monitoring.

Ekspor Memorystore for Redis menggunakan fitur BGSAVE dari Redis untuk mengambil snapshot data dalam suatu instance. Saat menjalankan BGSAVE, Redis mengambil proses turunan baru untuk mengambil snapshot. Redis menggunakan copy-on-write selama proses ini.

Ini berarti fork awal mengalokasikan memori tambahan minimal, tetapi setiap halaman yang diubah oleh traffic tulis server Redis akan diduplikasi. Oleh karena itu, dalam periode penulisan yang tinggi, dalam kasus terburuk, jejak memori Redis akan meningkat dua kali lipat, sehingga menyebabkan operasi ekspor gagal.

Mengekspor selama operasi BGSAVE

Anda tidak dapat mengekspor saat operasi BGSAVE sedang berjalan. Instance Memorystore untuk Redis Tingkat Standar terkadang menjalankan operasi sinkronisasi ulang penuh, atau 'sinkronisasi penuh', untuk menjaga agar instance utama dan replika tetap sinkron. Sinkronisasi ulang penuh menggunakan perintah BGSAVE, yang mencegah Memorystore melakukan ekspor.

Untuk memverifikasi apakah operasi BGSAVE sedang berlangsung, tampilkan endpoint API redis.googleapis.com/persistence/rdb/bgsave_in_progress dengan Metrics Explorer.

Agar dapat menampilkan metrik untuk resource yang dipantau dengan menggunakan Metrics Explorer, lakukan hal berikut:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Di elemen Metric, luaskan menu Select a metric, lalu pilih jenis resource dan jenis metrik. Misalnya, untuk membuat diagram penggunaan CPU virtual machine, lakukan tindakan berikut:
    1. (Opsional) Untuk mengurangi opsi menu, masukkan bagian nama metrik dalam Panel filter. Untuk contoh ini, masukkan utilization.
    2. Di menu Active resources, pilih VM instance.
    3. Di menu Active metric category, pilih Instance.
    4. Di menu Active metrics, pilih CPU utilization, lalu klik Apply.
  3. Untuk memfilter deret waktu yang ditampilkan, gunakan elemen Filter.

  4. Untuk menggabungkan deret waktu, gunakan menu pada elemen Aggregation. Misalnya, untuk menampilkan pemakaian CPU untuk VM Anda, berdasarkan zonanya, tetapkan menu pertama ke Mean dan menu kedua ke zone.

    Semua deret waktu ditampilkan saat menu pertama elemen Aggregation disetel ke Unaggregated. Setelan default untuk elemen Aggregation ditentukan oleh jenis metrik yang Anda pilih.

Atau, Anda dapat menggunakan alat API command line Anda sendiri.

Izin yang diperlukan untuk mengimpor dan mengekspor

Pengguna harus mengonfigurasi izin IAM yang memadai untuk mengimpor atau mengekspor file RDB. Penyiapan izin yang paling sederhana adalah dengan menerapkan peran IAM Cloud Memorystore Redis Admin dan Storage Admin ke akun pengguna, tetapi penyiapan ini mungkin tidak sesuai untuk beberapa akun pengguna karena memberi mereka izin untuk membuat, mengedit, atau menghapus resource yang tidak dapat mereka akses. Untuk petunjuk tentang cara menetapkan izin yang dibatasi secara minimum, lihat Memberikan izin terbatas untuk impor dan ekspor.

Durasi impor dan ekspor

Durasi impor atau ekspor bergantung pada ukuran instance dan ukuran set data dalam instance. Bergantung pada ukurannya, impor dan ekspor dapat memerlukan waktu beberapa menit hingga beberapa jam.

Misalnya, jika Anda mengimpor atau mengekspor instance 10 GB dengan memori yang telah digunakan sebesar 8 GB, operasi ini dapat memerlukan waktu 5 menit. Jika Anda mengimpor atau mengekspor instance berukuran 120 GB dengan memori terpakai 100 GB, operasi ini dapat memerlukan waktu satu jam.

Menghentikan impor atau ekspor

Untuk menghentikan impor atau ekspor, lihat halaman berikut:

Memantau kemajuan operasi

Perkiraan waktu penyelesaian tidak tersedia saat melakukan impor dan ekspor. Anda dapat memeriksa apakah operasi sedang berlangsung dengan memeriksa halaman detail instance. Untuk melihat halaman detail instance, klik ID instance Anda di halaman daftar instance Memorystore untuk Redis.

Anda juga dapat memantau progres operasi impor dengan menjalankan perintah berikut:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Dengan keterangan:

  • [INSTANCE_ID] adalah ID untuk instance Memorystore for Redis Anda.
  • [REGION] adalah region tempat instance Anda berada.

Perintah ini menghasilkan state: IMPORTING atau state: READY sebagai salah satu kolom deskripsi.

Bucket Cloud Storage yang tidak didukung

Bucket Cloud Storage Pemohon Membayar tidak didukung untuk impor dan ekspor Memorystore.

Mengamankan bucket Cloud Storage Anda

Anda harus memastikan bahwa bucket Cloud Storage memiliki batasan yang tepat untuk mencegah akses tidak sah ke cadangan RDB Redis yang ada di dalamnya. Baca Opsi Kontrol Akses Cloud Storage untuk mengetahui cara mengamankan bucket Cloud Storage.

Memastikan memori yang memadai untuk menyelesaikan ekspor

Untuk mencegah ekspor menyebabkan kehabisan memori, Anda harus memiliki 50% memori kosong di instance selama proses ekspor. Hal ini mungkin tidak diperlukan sepanjang waktu, bergantung pada beban tulis Anda, tetapi memiliki 50% memori bebas akan memastikan bahwa ada cukup ruang kosong untuk mengakomodasi overhead salin-saat-menulis, jika banyak halaman yang disentuh selama proses ekspor.

Untuk memahami penggunaan memori instance Anda saat ini, siapkan pemberitahuan untuk memberi tahu Anda saat penggunaan memori mencapai batas yang dapat disesuaikan. Selain itu, Anda harus menyiapkan dasbor pemantauan memori dengan Cloud Monitoring. Pengukuran ini memungkinkan Anda memahami pola penggunaan memori instance. Dengan memahami pola penggunaan memori, Anda dapat menentukan ukuran instance dengan benar saat mengekspor secara berkala.

Mengekspor dan mengimpor ke instance dengan replika baca

Untuk semua instance Redis, termasuk instance yang mendukung replika baca, data akan diekspor dari node utama.

Untuk instance yang diaktifkan replika baca, ekspor dapat meningkatkan beban CPU dan jejak memori pada node utama.

Saat mengimpor data ke dalam instance yang mendukung replika baca, instance utama akan dimulai ulang selama operasi impor, dan instance tidak akan tersedia sampai data baru dimuat sepenuhnya ke dalam database.

Langkah selanjutnya