2015-01-12 15 views
17

Zastanawiasz się, czy istnieją jakieś powszechne praktyki w tworzeniu kopii zapasowych bazy danych Firebase DB. Obawiam się, że jakiś proces przypadkowo wymazuje naszą bazę danych.Czy można wykonać kopię zapasową Bazy danych Firebase DB?

Dzięki!

+2

Googling "kopia zapasowa bazy danych Firebase" pokazuje wiele projektów Github, aby to zrobić. – ceejayoz

+3

Możesz łatwo pobrać wszystkie dane z bazy Firebase, zwijając 'https: // .firebaseio.com/.json'. –

+1

Zobacz http://stackoverflow.com/questions/15079436/export-firebase?rq=1 i http: // stackoverflow.com/questions/15549299/how-to-migrate-data-settings-from-one-firebase-to-another/15551711 # 15551711 –

Odpowiedz

28

Od tego czasu Firebase tworzy kopie zapasowe wszystkich wystąpień dziennie. Zachowanie własnych kopii zapasowych może być przydatne, ale nie jest konieczne.

Aby tworzyć własne kopie zapasowe, można po prostu zwijają dane:

curl https://<instance>.firebaseio.com/.json?format=export 

Należy pamiętać, że dla wielu gigabajtów danych, będzie to spowolnić i zablokować dostęp do odczytu na krótki okres. Byłoby w tym przypadku lepiej dzielić kopie zapasowe i pracować z mniejszymi częściami. Pomocne tutaj może być shallow parameter, udostępniając listę kluczy dla dowolnej ścieżki w Firebase, bez konieczności pobierania danych.

curl https://<instance>.firebaseio.com/.json?shallow=true 

Jak wcześniej wspomniano, istnieje też wiele libs GitHub dostępne dla tego i przyrostowe kopie zapasowe są praktyczne z jakimś kreatywności i wątku pracownika w SDK w czasie rzeczywistym.

+0

Wyjaśnienie: Wygląda na to, że automatyczne tworzenie kopii zapasowych jest dostępne tylko w przypadku planu "Ognisko", a powyżej https : //www.firebase.com/blog/2015-03-05-private-backups-for-firebase-data.html – pjco

+4

Niepoprawnie. Masz na myśli prywatne kopie zapasowe, które są wypychane do zasobnika GCS lub S3. Firebase tworzy kopie zapasowe wszystkich instancji codziennie dla wszystkich planów, w tym bezpłatnych, jak zaznaczono w mojej odpowiedzi. – Kato

+0

Czy mówisz, że tworzysz kopie zapasowe *** wewnętrznie ***? Ponieważ to nie to samo. Konieczność skontaktowania się z pomocą techniczną w celu przywrócenia kopii zapasowej jest czymś, co powinieneś wyjaśnić w swoim poście .... chyba że brakuje mi jakiejś funkcjonalności, w takim przypadku, wskaż to. Twoja odpowiedź w formie pisemnej jest myląca. – pjco

9

Dostępne są teraz przyciski "Import danych" i "Eksportuj dane" na stronie danych interfejsu internetowego dla każdego projektu, dzięki czemu można teraz wykonywać kopie zapasowe danych za pomocą kliknięcia przycisku!

Import and Export buttons

+0

Najnowsze łatwe i pomocne! – Shruti

4

wczoraj napisałem skrypt powłoki, który wykorzystuje Firebase-tools (npm install -g firebase-tools), w celu uzyskania tych zrzutów baz danych zawartych w mojej regularnej kopii zapasowej cronjob:

#!/bin/bash 
# $1 is the Firebase projectId. 
# $2 is the destination directory. 
# example usage: cron_firebase.sh project-12345 /home/backups/firebase 
# currently being triggered by /etc/cron.hourly/firebase-hourly.cron 
PROJECTID=$1 
DESTINATION=$2 
FIREBASE="$(which firebase)" 
TIMESTAMP="$(date +"%Y-%m-%d %H:%M")" 
NOW="$(date +"%Y-%m-%d_%H%M")" 
cd $DESTINATION 
$FIREBASE --project $PROJECTID database:get/> ./$PROJECTID.$NOW.json 
tar -pczf $PROJECTID.$NOW.tar.gz ./$PROJECTID.$NOW.json && rm ./$PROJECTID.$NOW.json 

aktualizacji : w międzyczasie można auto backup do Google Cloud Storage Bucket

... goto Firebase Console ->Realtime Database -> i kliknij zakładkę Backups.

1

Wystarczy, aby rozwinąć odpowiedź @ kato za pomocą loków.

Szukałem sposobów na uruchamianie polecenia każdej nocy. Moje rozwiązanie:
1) stworzyło silnik obliczeniowy (w zasadzie maszynę wirtualną) w Google Cloud. Możesz być zaznajomiony z EC2, jeśli jesteś ze świata AWS.
2) Napisanie prostego cronjob, coś w tym

0 23 * * * /usr/bin/curl https://yourdatabaseurl.com/.json?format=export -o /tmp/backuptest_`date +\%d\%m\%y`.bk

Jestem pewien, że mógłby być prostszy sposób to zrobić w samej warstwie darmo. Podobnie jak przy użyciu funkcji chmurowych.

+0

właśnie dodał link do automatycznego tworzenia kopii zapasowych, co może być "prostszą drogą". –

Powiązane problemy