Skip to main content

Continuity

Backup

Take recurring backups with a S3 SolrBackup.

kubectl apply -f $PLANE_HOME/etc/specs/solr/datalayer-backup-s3.yaml
kubectl describe solrbackups
kubectl get solrbackups -Aw
aws s3 ls s3://datalayer-backups-solr/datalayer-solr-collection-backup-accounts/accounts/
curl http://localhost:8983/solr/accounts/replication?command=details
#
kubectl delete -f $PLANE_HOME/etc/specs/solr/datalayer-backup-s3.yaml

Simulate a Disaster

Delete Solr documents.

for COLLECTION in accounts credits invites spaces tweets usage
do
curl http://localhost:8983/solr/$COLLECTION/update?commitWithin=500 -d '{ delete: { query: "*:*" } }'
done

... or delete and re-create empty collections before running the restore.

# export SOLR_HOME=.../opt/solr # Install Solr on your local machine https://solr.apache.org (you will need java - sudo apt install default-jre)
for COLLECTION in accounts credits invites spaces tweets usage
do
curl http://localhost:8983/solr/$COLLECTION/update?commitWithin=500 -d '{ delete: { query: "*:*" } }'
curl http://localhost:8983/solr/admin/collections?action=DELETE -d "name=${COLLECTION}"
$SOLR_HOME/bin/solr create -c $COLLECTION -shards 3 -replicationFactor 3 -d $PLANE_HOME/etc/dockerfiles/datalayer-solr/config/ -p 8983 -force
done

Restore

Run the effective restore.

# Restore https://solr.apache.org/guide/8_11/collectimanagement.html#restore
#
# backupId=10& # You may want to force the backupId, if not provided, the last one (most recent one) will be used.
#
for COLLECTION in accounts credits invites spaces tweets
do
echo
echo Restoring Solr "$COLLECTION" collection
echo ---------------------------------------
curl http://localhost:8983/solr/admin/collections -d '
action=RESTORE&
repository=s3&
collection='"$COLLECTION"'&
location=s3:/&
name=datalayer-solr-collection-backup-'"$COLLECTION"''
done
#
curl http://localhost:8983/solr/accounts/select?q=*:*
# curl http://localhost:8983/solr/accounts/update?commitWithin=500 -d '{ delete: { query: "*:*" } }'