Alibaba Cloud Elasticsearch menyediakan dua metode untuk mengotomatiskan pencadangan snapshot. Untuk kluster yang menjalankan versi 7.6 atau lebih baru, Anda dapat menggunakan Snapshot Lifecycle Management (SLM) untuk menjadwalkan pembuatan snapshot dan mengelola periode retensinya. Untuk versi sebelum 7.6, Anda harus menggunakan pekerjaan crontab di sisi client untuk memicu pembuatan snapshot. Kedua metode tersebut menyimpan snapshot di repositori OSS.
Latar Belakang
Untuk informasi selengkapnya tentang Snapshot Lifecycle Management, lihat Snapshot lifecycle management.
Pencadangan dan pemulihan data di Elasticsearch bergantung pada plugin elasticsearch-repository-oss. Plugin ini telah dipra-instal pada kluster Alibaba Cloud Elasticsearch dan tidak dapat dihapus. Untuk informasi selengkapnya tentang plugin ini, lihat elasticsearch-repository-oss.
Versi 7.6 dan lebih baru (Direkomendasikan)
Sebelum memulai, penuhi prasyarat berikut:
Buat bucket OSS dengan kelas penyimpanan Standard. Bucket kelas Archive tidak didukung. Bucket tersebut harus berada di wilayah yang sama dengan kluster Elasticsearch Anda. Untuk petunjuknya, lihat Create a bucket.
Buat repositori untuk mengaitkan bucket OSS dengan kluster Elasticsearch Anda. Untuk petunjuknya, lihat Create a repository.
Di Konsol Kibana kluster Anda, klik Dev Tools dan ikuti langkah-langkah berikut.
Buat kebijakan SLM.
PUT _slm/policy/auto-snapshots { "schedule": "0 0 0/12 * * ?", "name": "<auto-snap-{now/d}>", "repository": "my_auto_backup", "config": { "indices": "*", "include_global_state": true }, "retention": { "expire_after": "30d", "min_count": 5, "max_count": 50 } }Parameter
Deskripsi
schedule
Format ekspresi Cron adalah: Detik Menit Jam Hari dalam bulan Bulan Hari dalam minggu Tahun (opsional).
"0 0 0/12 * * ?"membuat snapshot setiap 12 jam. Untuk informasi selengkapnya, lihat Cron.name
Format nama snapshot. Anda dapat menggunakan ekspresi date math, seperti
<auto-snap-{now/d}>, untuk penamaan berbasis tanggal.repository
Nama repositori snapshot. Untuk mengetahui nama repositori, lihat Get repository information.
config.indices
Indeks yang disertakan dalam snapshot.
*menunjukkan semua indeks.config.include_global_state
Menentukan apakah status kluster dan status fitur akan disertakan.
truemenyertakannya, sedangkanfalsetidak.retention.expire_after
Periode retensi untuk snapshot. Contoh ini mengatur periode menjadi 30 hari.
retention.min_count
Jumlah minimum snapshot yang dipertahankan. Jumlah minimum ini tetap dipertahankan meskipun snapshot lebih lama dari periode
expire_after.retention.max_count
Jumlah maksimum snapshot yang dipertahankan. Jika batas ini terlampaui, snapshot terlama akan dihapus, terlepas dari usianya.
Jalankan kebijakan SLM untuk membuat snapshot segera.
POST _slm/policy/auto-snapshots/_executeSetelah perintah dijalankan, Elasticsearch secara otomatis membuat snapshot berdasarkan parameter
schedule. Untuk menjalankan kebijakan retensi segera, jalankan perintah berikut:POST _slm/_execute_retention
Versi sebelum 7.6
Versi sebelum 7.6 tidak mendukung SLM. Anda harus menggunakan pekerjaan crontab di sisi client untuk mengotomatiskan pembuatan snapshot.
Sebelum memulai, penuhi prasyarat berikut:
Buat bucket OSS dengan kelas penyimpanan Standard. Bucket kelas Archive tidak didukung. Bucket tersebut harus berada di wilayah yang sama dengan kluster Elasticsearch Anda. Untuk petunjuknya, lihat Create a bucket.
Buat repositori. Untuk petunjuknya, lihat Create a repository.
Konfigurasikan client yang dapat mengakses kluster Elasticsearch melalui jaringan publik atau jaringan internal. Untuk informasi selengkapnya, lihat Use a client to access an Alibaba Cloud Elasticsearch cluster.
Di server client Anda, ikuti langkah-langkah berikut:
Buat skrip pencadangan snapshot.
vi /root/snapshot.shTambahkan konten berikut ke file skrip dan simpan. Ganti
elastic:*****dengan username dan password yang sebenarnya, serta ganties-*****dengan ID kluster yang sebenarnya.curl -u elastic:***** -X PUT https://es-*****.public.elasticsearch.aliyuncs.com:9200/_snapshot/my_auto_backup_crontab/snapshot_$(date +%s)Berikan izin eksekusi pada skrip tersebut.
chmod +x /root/snapshot.shKonfigurasikan pekerjaan crontab. Contoh berikut mengatur pekerjaan agar dijalankan setiap hari pukul 02.00.
crontab -eTambahkan baris berikut:
0 2 * * * /bin/bash /root/snapshot.shSetelah Anda menyimpan file tersebut, crontab secara otomatis memuat konfigurasi baru. Anda tidak perlu melakukan restart layanan cron.
Setelah mencadangkan snapshot, Anda dapat menghapusnya, memulihkannya, atau melihat detailnya. Untuk informasi selengkapnya, lihat Manual backup and restoration. Untuk memulihkan snapshot ke kluster yang berbeda, Anda harus membuat repositori di kluster tujuan yang mengarah ke bucket OSS yang sama.