2013-01-02 1 views
5

팀에서는 Google Cloud SQL에서 호스팅되는 데이터베이스의 백업을 검색하고 해당 데이터베이스를 로컬로 호스팅 된 MySQL 인스턴스에 복원 할 수 있어야합니다.자동화 된 Google Cloud SQL 백업 검색

Google Cloud SQL에는 백업을 예약 할 수있는 기능이 있지만 어디에서나 다운로드 할 수있는 것은 아닙니다.

Google Cloud 데이터베이스로 데이터베이스를 "내보낼 수 있음"을 알고 있지만 "내보내기"를 예약 할 수 있기를 바랍니다.

여기서 최종 목표는 관리자 스크립트의 어떤 종류에서 다음 단계를 실행하는 것입니다 : Google 클라우드 SQL에서 호스팅되는

  1. 우리의 데이터베이스에 자동으로 백업.
  2. 백업을 로컬 (클라우드가 아닌) 서버로 다운로드하십시오.
  3. 백업을 MySQL의 로컬 인스턴스로 복원하십시오.

아이디어가 있으십니까?

+2

3 년 후 jmwicks는 정답 인 – timc

답변

0

죄송하지만 Cloud SQL에는 현재이 기능이 없습니다. 앞으로는이 작업을보다 쉽게하고 싶습니다. 그 동안 cron 작업과 함께 Selenium (또는 다른 UI 스크립팅 프레임 워크)을 사용할 수 있습니다.

+0

을 사용하여 답변으로 표시했습니다. 그러나 이것은 기능상의 큰 구멍처럼 보입니다. – Tombatron

2

Cloud SQL REST API을 사용하여 Export 작업을 트리거 할 수 있습니다.

그래서 관리자 스크립트를 사용하여 클라우드 저장소에서 백업을 다운로드 할 수 있습니다 (내보내기 작업이 끝날 때까지 기다려야합니다).

gcloud sql instances export <DATABASE_INSTANCE> \ 
    gs://<CLOUD_STORAGE_BUCKET>/cloudsql/export.sql.gz \ 
    --database <DATABASE_NAME> 

이 수출은 gsutil를 사용하여 다운로드 할 수 있습니다

7

gcloud SDK를 명령은 이제 가져 오기/내보내기 기능을 제공합니다.그것은 또한 내가 직면 한 문제의 mysqlimport

0

를 사용하여 가져온 내 솔루션을했다 할 수 있습니다

  1. 이동
  2. 새로운 서비스 계정 만들기 IAM Service Accounts Management에, 다운로드 액세스 키 (나는 그것을 sql-backuper라고도 함) JSON에서
  3. 주 IAM 페이지 (현재 GCloud에는 SQL에 대해 별도의 읽기 전용 역할 없음)에서 보조 저장소 역할이 부여됩니다.
  4. 백업을 수행 할 컴퓨터에 다음을 설정합니다. gcloud auth activate-service-account [email protected] --key-file /home/backuper/gcloud-service-account.json (gcloud auth documentation)
  5. 실행할 수있는 백업 시스템에서 이제 GCloud Storage Browser
  6. 에 새로운 버킷 만들기 :
  7. 당신은 로컬 DB 복사본을 가지고 gcloud sql instances export [sql-instance-name] gs://[bucket-name]/[file-name].gz --database [your-db-name] (gcloud sql documentation) 및 gsutil cp gs://[bucket-name]/[file-name].gz [local-file-name].gz (gsutil cp documentation)을하는 당신을 이제 원하는대로 사용할 수 있습니다.
0

백업을 다운로드하려면 (수동 또는 자동) 다른 CloudSQL 인스턴스를 시작한 다음

  • 선택한 백업 된 인스턴스에서 백업 옵션 (복원)에
    1. 클릭
    2. .sql 파일을 받거나 클라우드에 .csv로 새로 복원 CloudSQL에서 이전에 출시 인스턴스
    3. 내보내기 데이터를 복원하는 저장소