Halaman ini menjelaskan cara memulihkan Cassandra di satu region.
Dalam deployment tunggal region, Apigee Hybrid di-deploy di satu pusat data atau satu region. Jika deployment Anda mencakup beberapa organisasi Apigee, proses pemulihan akan memulihkan data untuk semua organisasi. Dalam penyiapan multi-organisasi, Anda tidak dapat memulihkan organisasi tertentu.
Memulihkan region dari cadangan
Pilih petunjuk di bawah untuk alat pengelolaan yang Anda gunakan untuk Apigee Hybrid:
Helm
-
Perbarui detail pemulihan Cassandra di file
overrides.yaml
:namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false ...
Dengan keterangan:
Properti Deskripsi namespace
YOUR_RESTORE_NAMESPACE
Namespace untuk pemulihan. Gunakan namespace yang sama seperti di cluster asli Anda.
cassandra:hostNetwork
hostNetwork
wajib ada dan harus selalu ditetapkan kefalse
.restore:enabled
Pemulihan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
Jalur pada sistem file ke akun layanan yang Anda buat untuk cadangan.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Jalur bucket Cloud Storage tempat data cadangan Anda disimpan dalam format berikut:
gs://BUCKET_NAME
.gs://
wajib diisi.restore:cloudProvider
GCP
Properti
cloudProvider: "GCP"
wajib diisi.restore:snapshotTimestamp
TIMESTAMP
Stempel waktu snapshot cadangan yang akan dipulihkan. Untuk memeriksa stempel waktu yang dapat digunakan, buka
dbStorageBucket
dan lihat file yang ada di bucket. Setiap nama file berisi nilai stempel waktu. Misalnya,backup_20210203213003_apigee-cassandra-default-0.tgz
Dengan 20210203213003 adalah nilai
snapshotTimestamp
yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.backup:enabled
Anda harus menetapkan properti ini ke false
jika sebelumnya telah ditetapkan ketrue
. -
Jalankan upgrade Helm pada chart
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
Lihat Ringkasan pencadangan Cassandra untuk mengetahui detail selengkapnya tentang pencadangan dan pemulihan Cassandra.
apigeectl
Dalam konfigurasi Anda, cadangan Cassandra dapat berada di Cloud Storage atau di server jarak jauh. Apa pun kasusnya, lakukan langkah-langkah berikut untuk memulihkan:
- Verifikasi versi campuran.
apigeectl version
Pastikan versinya sama dengan versi yang membuat file cadangan di penyimpanan. - Pastikan cluster Kubernetes yang Anda pulihkan tidak memiliki penginstalan hybrid Apigee sebelumnya. Jika Anda melakukan pemulihan ke cluster yang ada, gunakan perintah berikut untuk menghapus penginstalan hybrid Apigee yang sudah ada:
apigeectl delete -f overrides.yaml
kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
apigeectl delete --all -f overrides.yaml
- Buka file
overrides.yaml
dan tetapkan propertirestore
ke nilai yang diinginkan:Cloud Storage
Parameter
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
Contoh
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: false serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
Dengan keterangan:
Properti Deskripsi namespace
YOUR_RESTORE_NAMESPACE
Namespace untuk pemulihan. Gunakan namespace yang sama seperti di cluster asli Anda.
cassandra:hostNetwork
hostNetwork
wajib ada dan harus selalu ditetapkan kefalse
.restore:enabled
Pemulihan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
Jalur pada sistem file ke akun layanan yang Anda buat untuk cadangan.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Jalur bucket Cloud Storage tempat data cadangan Anda disimpan dalam format berikut:
gs://BUCKET_NAME
.gs://
wajib diisi.restore:cloudProvider
GCP
Properti
cloudProvider: "GCP"
wajib diisi.restore:snapshotTimestamp
TIMESTAMP
Stempel waktu snapshot cadangan yang akan dipulihkan. Untuk memeriksa stempel waktu yang dapat digunakan, buka
dbStorageBucket
dan lihat file yang ada di bucket. Setiap nama file berisi nilai stempel waktu. Misalnya,backup_20210203213003_apigee-cassandra-default-0.tgz
Dengan 20210203213003 adalah nilai
snapshotTimestamp
yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.backup:enabled
Anda harus menetapkan properti ini ke false
jika sebelumnya telah ditetapkan ketrue
.backup:serviceAccountPath
SA_JSON_FILE_PATH
Jalur pada sistem file Anda ke file JSON akun layanan yang didownload saat Anda menjalankan
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Jalur bucket Cloud Storage dalam format ini:
gs://BUCKET_NAME
.gs://
wajib diisi.backup:cloudProvider
GCP
Properti
cloudProvider: "GCP"
wajib diisi.backup:schedule
SCHEDULE
Waktu saat pencadangan dimulai, yang ditentukan dalam sintaksis crontab standar. Default:
0 2 * * *
Non-Cloud Storage
Parameter
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
Contoh
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: false keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...
Dengan keterangan:
Properti Deskripsi namespace
YOUR_RESTORE_NAMESPACE
Namespace untuk pemulihan. Gunakan namespace nama yang sama seperti di cluster asli Anda.
cassandra:hostNetwork
hostNetwork
wajib ada dan harus selalu ditetapkan kefalse
.restore:enabled
Pemulihan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama
ssh_key
pada langkah saat Anda membuat pasangan kunci SSH).restore:server
BACKUP_SERVER_IP
Alamat IP server cadangan Anda.
restore:storageDirectory
BACKUP_DIRECTORY
Nama direktori cadangan di server cadangan Anda. Direktori ini harus berupa direktori di dalam
home/apigee
(direktori cadangan diberi namacassandra_backup
pada langkah saat Anda membuat direktori cadangan).restore:cloudProvider
HYBRID
Properti
cloudProvider: "HYBRID"
wajib diisi.restore:snapshotTimestamp
TIMESTAMP
Stempel waktu snapshot cadangan yang akan dipulihkan. Untuk memeriksa stempel waktu yang dapat digunakan, buka
dbStorageBucket
dan lihat file yang ada di bucket. Setiap nama file berisi nilai stempel waktu. Misalnya,backup_20210203213003_apigee-cassandra-default-0.tgz
Dengan 20210203213003 adalah nilai
snapshotTimestamp
yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.backup:enabled
Anda harus menetapkan properti ini ke false
jika sebelumnya telah ditetapkan ketrue
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama
ssh_key
pada langkah saat Anda membuat pasangan kunci SSH).backup:server
BACKUP_SERVER_IP
Alamat IP server cadangan Anda.
backup:storageDirectory
BACKUP_DIRECTORY
Nama direktori cadangan di server cadangan Anda. Direktori ini harus berupa direktori di dalam
home/apigee
(direktori cadangan diberi namacassandra_backup
pada langkah saat Anda membuat direktori cadangan).backup:cloudProvider
HYBRID
Properti
cloudProvider: "HYBRID"
wajib diisi.backup:schedule
SCHEDULE
Waktu saat pencadangan dimulai, yang ditentukan dalam sintaksis crontab standar. Default:
0 2 * * *
- Membuat deployment runtime hybrid baru. Tindakan ini akan membuat cluster Cassandra baru dan mulai memulihkan data cadangan ke dalam cluster:
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
Verifikasi progres tugas pemulihan dan konfirmasi bahwa apigeeds
serta semua pod lainnya sudah aktif:
- Periksa
apigeeds
:kubectl get apigeeds -n apigee
- Periksa semua pod lainnya:
kubectl get pods -n apigee
Setelah berhasil menyelesaikan pemulihan dan mengonfirmasi bahwa komponen runtime responsif, sebaiknya konfigurasikan cadangan di cluster:
- Hapus konfigurasi
restore
dari fileoverrides-restore.yaml
. - Tambahkan konfigurasi
backup
ke fileoverrides-restore.yaml
. - Terapkan konfigurasi
backup
dengan perintah berikut:./apigeectl apply -f ../overrides-restore.yaml