Migrare la tua istanza Typesense self-hosted su un nuovo server è un'attività cruciale, che tu stia aggiornando l'hardware, passando a un altro provider cloud o semplicemente eseguendo la manutenzione del server.
Questa guida ti guiderà attraverso i passaggi corretti per eseguire il backup, trasferire e ripristinare i tuoi dati Typesense in modo sicuro e affidabile.
Concetti chiave
Typesense memorizza i dati nel percorso definito da directory dati parametro (ad esempio, /var/lib/typesense). Tuttavia, non è possibile eseguire il backup sicuro di questi dati mentre il server è in esecuzione, poiché mantiene i file aperti per la scrittura.
Per evitare la corruzione, Typesense fornisce un'API Snapshot per eseguire backup coerenti.
1. Creare un backup utilizzando l'API Snapshot
Opzione migliore se l'istanza Typesense funziona normalmente.
Chiama l'API Snapshot per creare uno snapshot sicuro per il file system:
curl -X POST 'http://localhost:8108/snapshot' \ -H 'X-TYPESENSE-API-KEY: YOUR_ADMIN_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"snapshot_path": "/tmp/typesense-snapshot"}'Quindi archiviare la directory degli snapshot:
tar -czvf backup.tar.gz -C /tmp typesense-snapshot(Facoltativo) Pulisci la directory degli snapshot:
rm -rf /tmp/typesense-snapshot2. Alternativa: interrompere Typesense e copiare la directory dei dati
Se l'API Snapshot non è disponibile (ad esempio, Typesense non risponde):
Arrestare il server Typesense:
sudo systemctl stop typesense-server.serviceQuindi archiviare direttamente la directory dei dati:
tar -czvf backup.tar.gz -C /var/lib tipisensoImportante: Eseguire questa operazione solo dopo aver arrestato il server per garantire la coerenza dei file.
3. Trasferire il backup su un altro server utilizzando le chiavi SCP + SSH
Genera le chiavi SSH (se non l'hai già fatto) sul tuo computer locale:
ssh-keygen -t ed25519 -C "[email protected]"Salvalo nella posizione predefinita (~/.ssh/id_ed25519) e lasciare la passphrase vuota per l'automazione.
Copia la chiave pubblica sul nuovo server:
ssh-copy-id -i ~/.ssh/id_ed25519.pub utente@nuovo-ip-del-serverTrasferisci il backup tramite SCP:
scp -i ~/.ssh/id_ed25519 backup.tar.gz utente@ip-nuovo-server:/tmp/Se questo non funziona, assicurati innanzitutto che il contenuto di ed25519.pub sia spostato in una nuova riga del file:
~/.ssh/chiavi_autorizzate4. Ripristinare il backup sul nuovo server
Potresti ancora aver bisogno di installare Typesense sul nuovo server, configurare SSL, ecc.
Quindi, arrestare qualsiasi istanza di Typesense in esecuzione:
sudo systemctl stop typesense-server.servicePulisci la directory dei dati esistente (verifica che questo sia effettivamente il tuo nuovo server vuoto e non il tuo vecchio server con i dati):
sudo rm -rf /var/lib/typesense/*Estrarre il backup:
sudo tar -xzf /tmp/backup.tar.gz -C /var/lib/Assicurati che i dati estratti siano nel percorso corretto, ad esempio, /var/lib/typesense.
Avviare nuovamente Typesense e rimuovere il file tar di backup:
sudo systemctl start typesense-server.service rm /tmp/backup.tar.gzTypesense rileverà lo snapshot all'avvio e ricostruirà i suoi indici in memoria.
Lista di controllo finale
- Backup creato tramite Snapshot API o dopo l'arresto di Typesense
- Dati archiviati e verificati
- Accesso basato su chiave SSH configurato
- Trasferimento SCP completato in modo sicuro
- Typesense riavviato correttamente sul nuovo server
Suggerimenti professionali
- Testa il backup prima di utilizzarlo in produzione. Prova a ripristinarlo su un server di staging.
- Automatizza gli snapshot regolari utilizzando
cron+arricciare+catrame. - Utilizzare chiavi API sicure e non esporre mai la chiave di amministrazione Typesense negli script pubblici.
- Dopo aver avviato il servizio, controllare sempre i log di Typesense:
journalctl -u typesense-server.service
Conclusione
Migrare un'istanza Typesense non deve essere spaventoso. Con una solida conoscenza del funzionamento del meccanismo di snapshot e un pizzico di magia SSH, puoi spostare i tuoi dati tra server in modo affidabile e sicuro.
Se riscontri problemi con l'API snapshot, un arresto a freddo e un backup manuale funzionano comunque: basta seguire attentamente i passaggi.
Tutto è a tuo rischio e pericolo.
Ultimo aggiornamento il 30 Luglio 2025
