2015-01-12 2 views
17

방화 기지 DB를 백업 할 때 일반적인 관행이 있는지 궁금합니다. 내 관심사는 실수로 우리 데이터베이스를 닦아내는 과정입니다.Firebase DB를 백업 할 수 있습니까?

감사합니다.

+2

googling "firebase DB backup"은이를 수행하기위한 수많은 Github 프로젝트를 보여줍니다. – ceejayoz

+3

'https : // .firebaseio.com/.json'을 컬링하면 Firebase에서 모든 데이터를 쉽게 얻을 수 있습니다. –

+1

http://stackoverflow.com/questions/15079436/export-firebase?rq=1 및 http : // stackoverflow를 참조하십시오.co.kr/questions/15549299/마이그레이션 방법 데이터베이스에서 다른 곳으로/15551711 # 15551711 –

답변

28

이 질문의 시점에서 Firebase는 매일 모든 인스턴스를 백업합니다. 따라서 자신의 백업을 유지하는 것이 여전히 유용 할 수 있지만 필수적인 것은 아닙니다.

는 단순히 데이터를 컬 수 있으며, 자신의 백업을 만들려면 :

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

주 데이터의 여러 기가 바이트의 경우,이 일을 느리게하고 짧은 기간에 대한 읽기 액세스를 잠글 것입니다. 이 경우 백업을 청크하고 작은 부분으로 작업하는 것이 좋습니다. shallow parameter은 데이터를 먼저 가져 오지 않고도 Firebase의 특정 경로에 대한 키 목록을 제공하여 도움을 줄 수 있습니다.

앞서 언급 한 바와 같이
curl https://<instance>.firebaseio.com/.json?shallow=true 

, 거기에이 사용할 여러 GitHub의 libs와도 있으며, 증분 백업은 약간의 창의력과 실시간 SDK에 작업자 스레드와 실용적입니다.

+0

설명 : 자동 백업은 "모닥불"계획과 현재 https에만있는 것으로 보입니다. : //www.firebase.com/blog/2015-03-05-private-backups-for-firebase-data.html – pjco

+4

올바르지 않습니다. GCS 또는 S3 버켓에 푸시 된 개인 백업을 언급하고 있습니다. Firebase는 내 대답에 명시된대로 무료를 포함하여 모든 계획에 대해 매일 모든 인스턴스를 백업합니다. – Kato

+0

내부적으로 백업하는 것은 ***입니까? 왜냐하면 그건 같지 않기 때문입니다. 백업을 복원하기 위해 지원 담당자에게 문의하는 것은 게시물에서 명확히해야 할 것입니다 .... 제가 몇 가지 기능을 누락하지 않는 한, 그 경우에는 가리 키십시오. 서면 답변은 오해의 소지가 있습니다. – pjco

9

모든 프로젝트의 웹 인터페이스 데이터 페이지에 "데이터 가져 오기"및 "데이터 내보내기"버튼이 추가되어 이제 버튼 클릭으로 데이터를 백업 할 수 있습니다!

Import and Export buttons

+0

최근 쉽고 유용합니다! – Shruti

4

어제 내 정기적 인 백업 cronjob에 포함 된 이러한 데이터베이스 덤프 갖기 위해, 중포 기지-도구 (npm install -g firebase-tools)를 활용하는 쉘 스크립트를 작성 :

#!/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 

업데이 트를 : 그 사이에 자동 백업을 Google Cloud Storage Bucket에 전송할 수 있습니다.

... goto Firebase Console ->Realtime Database -> 클릭하고 Backups 탭을 클릭하십시오.

1

컬을 사용하여 @ kato의 대답을 확장하기 만하면됩니다.

나는 매일 밤 명령을 수행 할 방법을 찾고있었습니다. 내 솔루션 :
1) Google 클라우드에 컴퓨팅 엔진 (기본적으로 VM)을 만들었습니다. AWS 세계에서 온 사람이라면 EC2에 익숙 할 것입니다. 2)

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

나는 무료 계층 자체 내에서이 작업을 수행 할 수있는 간단한 방법이있을 수 있습니다 확신 같은 간단한 cronjob에 뭔가를 썼다. 클라우드 기능 사용과 같습니다.

+0

은 자동화 된 백업을위한 링크를 추가했습니다.이 링크는 "더 간단한 방법"일 수 있습니다. –

관련 문제