Cassandra-Backup und -Wiederherstellung

In diesem Abschnitt wird erläutert, wie Sie die Datenbackup und -wiederherstellung für den Apache Cassandra-Datenbankring konfigurieren, der auf der Apigee Hybrid-Laufzeitebene installiert ist. Siehe auch Cassandra-Datenspeicher.

Wissenswertes über Cassandra-Backups

Cassandra ist eine replizierte Datenbank, die zum Erhalt von mindestens drei Kopien Ihrer Daten pro Region oder Rechenzentrum konfiguriert ist. Cassandra verwendet Streamingreplikation und Lesereparaturen, um die Datenreplikate pro Region und Rechenzentrum zu verwalten.

In der Hybridversion sind Cassandra-Backups nicht standardmäßig aktiviert. Es empfiehlt sich jedoch, Cassandra-Backups zu aktivieren, falls Ihre Daten versehentlich gelöscht werden.

Was wird gesichert?

Die in diesem Thema beschriebene Backup-Konfiguration sichert folgende Entitäten:

  • Cassandra-Schema mit Nutzerschema (Apigee-Keyspace-Definitionen)
  • Cassandra-Partitionstoken-Informationen pro Knoten
  • Ein Snapshot der Cassandra-Daten

Wo werden Backupdaten gespeichert?

Gesicherte Daten werden in einem Google Cloud Storage-Bucket gespeichert, den Sie erstellen müssen. Das Erstellen und Konfigurieren von Buckets wird in diesem Thema behandelt.

Cassandra-Backups planen

Backups werden als cron-Jobs auf der Laufzeitebene geplant. So planen Sie Cassandra-Backups:

  1. Führen Sie den folgenden Befehl create-service-account aus, um ein Google Cloud-Dienstkonto (Service Account, SA) mit der Standardrolle roles/storage.objectAdmin zu erstellen. Mit dieser SA-Rolle können Sie Backupdaten in Cloud Storage schreiben. Führen Sie folgenden Befehl im Stammverzeichnis der Hybrid-Installation aus:
    ./tools/create-service-account apigee-cassandra OUTPUT_DIR
    Beispiel:
    ./tools/create-service-account apigee-cassandra ./service-accounts
    Weitere Informationen zu Google Cloud-Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
  2. Mit dem Befehl create-service-account wird eine JSON-Datei mit dem privaten Schlüssel des Dienstkontos gespeichert. Die Datei wird im selben Verzeichnis gespeichert, in dem der Befehl ausgeführt wird. Sie benötigen den Pfad zu dieser Datei in den folgenden Schritten.
  3. Cloud Storage-Bucket erstellen Legen Sie für den Bucket eine angemessene Aufbewahrungsrichtliniefür Daten fest. Apigee empfiehlt eine Datenaufbewahrungszeit von 15 Tagen.
  4. Öffnen Sie Ihre overrides.yaml-Datei.
  5. Fügen Sie folgende cassandra.backup-Attribute hinzu, um das Backup zu aktivieren. Entfernen Sie keine der bereits konfigurierten Attribute.

    Parameter

    cassandra:
      ...
    
      backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
    
      ...
      

    Beispiel

    ...
    
    cassandra:
      storage:
        type: gcepd
        capacity: 50Gi
        gcepd:
          replicationType: regional-pd
      sslRootCAPath: "/Users/myhome/ssh/cassandra.crt"
      sslCertPath: "/Users/myhome/ssh/cassandra.crt"
      sslKeyPath: "/Users/myhome/ssh/cassandra.key"
      auth:
        default:
          password: "abc123"
        admin:
          password: "abc234"
        ddl:
          password: "abc345"
        dml:
          password: "abc456"
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-data
      backup:
        enabled: true
        serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        schedule: "45 23 * * 6"
    
      ... 
  6. Wobei:
    Attribut Beschreibung
    backup:enabled Die Sicherung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Der Pfad in Ihrem Dateisystem zur JSON-Datei des Dienstkontos, die beim Ausführen von ./tools/create-service-account heruntergeladen wurde

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Der Cloud Storage-Bucket-Pfad im Format gs://BUCKET_NAME. gs:// ist erforderlich.

    backup:schedule

    BACKUP_SCHEDULE_CODE

    Die Zeit, zu der das Backup startet, angegeben in der Standard-Crontab-Syntax. Standard: 0 2 * * *

  7. Wenden Sie die Konfigurationsänderungen auf den neuen Cluster an. Beispiel:
    ./apigeectl apply -f overrides.yaml

Sicherungen wiederherstellen

Die Wiederherstellung verwendet Ihre Daten vom Backup-Speicherort und stellt die Daten in einem neuen Cassandra-Cluster mit der gleichen Anzahl von Knoten wieder her. Es werden keine Daten aus dem alten Cassandra-Cluster übernommen.

Die folgende Wiederherstellungsanleitung gilt für Bereitstellungen in einer einzigen Region, die Google Cloud Storage für Backups verwenden. Für weitere Bereitstellungen:

So stellen Sie Cassandra-Backups wieder her:

  1. Erstellen Sie im vorhandenen Kubernetes-Cluster einen neuen Namespace, mit dem die Hybrid-Laufzeitbereitstellung wiederhergestellt wird. Verwenden Sie nicht den ursprünglichen Namespace-Namen für den neuen Namespace. Verwenden Sie nicht den alten Namespace für die Wiederherstellung.
  2. Erstellen Sie im Stammverzeichnis der Hybridinstallation eine neue overrides-restore.yaml-Datei.
  3. Kopieren Sie die gesamte Cassandra-Konfiguration aus der ursprünglichen overrides.yaml-Datei in die neue overrides-restore.yaml-Datei. Sehen Sie sich den folgenden Befehl als Beispiel an.
    cp ./overrides.yaml ./overrides-restore.yaml
  4. Fügen Sie der neuen Datei overrides-restore.yaml ein Namespace-Element hinzu. Verwenden Sie nicht den Namespace, der auch für den ursprünglichen Cluster verwendet wurde.

    Parameter

    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
      restore:
        enabled: true
        snapshotTimestamp: TIMESTAMP
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
             image:
               pullPolicy: Always
      ...
    

    Beispiel

    ...
        namespace: cassandra-restore
        cassandra:
          storage:
            type: gcepd
            capacity: 50Gi
            gcepd:
              replicationType: regional-pd
          sslRootCAPath: "/Users/myhome/ssh/cassandra.crt"
          sslCertPath: "/Users/myhome/ssh/cassandra.crt"
          sslKeyPath: "/Users/myhome/ssh/cassandra.key"
          auth:
            default:
              password: "abc123"
            admin:
              password: "abc234"
            ddl:
              password: "abc345"
            dml:
              password: "abc456"
          nodeSelector:
            key: cloud.google.com/gke-nodepool
            value: apigee-data
    
          restore:
            enabled: true
            snapshotTimestamp: "20210203213003"
            serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
            dbStorageBucket: "gs://myname-cassandra-backup"
            image:
              pullPolicy: Always
        ...
    
    

    Wobei:

    Attribut Beschreibung
    namespace

    YOUR_RESTORE_NAMESPACE

    Der Name des neuen Namespace, den Sie in Schritt 1 für den neuen Cassandra-Cluster erstellt haben. Verwenden Sie nicht denselben Namespace, den Sie für den ursprünglichen Cluster verwendet haben.

    restore:enabled Die Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    restore:snapshotTimestamp

    TIMESTAMP

    Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie dbStorageBucket auf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert wie den folgenden:

    backup_20210203213003_apigee-cassandra-default-0.tgz

    Dabei ist 20210203213003 der snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Backups zu diesem Zeitpunkt wiederherstellen wollten.

    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Der Pfad in Ihrem Dateisystem zum Dienstkonto, das Sie für das Backup erstellt haben.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Der Cloud Storage-Bucket-Pfad, in dem Ihre Backup-Daten gespeichert werden, im folgenden Format:

    gs://BUCKET_NAME

    gs:// ist erforderlich.

  5. Ändern Sie das Label app auf allen Cassandra-Knoten im alten Namespace. Führen Sie dazu den folgenden Befehl aus:
    kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
    
  6. Erstellen Sie eine neue Hybrid-Laufzeitbereitstellung. Damit wird ein neuer Cassandra-Cluster erstellt und die Backupdaten werden im Cluster wiederhergestellt:
    ./apigeectl init  -f ../overrides-restore.yaml
    
    ./apigeectl apply  -f ../overrides-restore.yaml
    
  7. Nach Abschluss der Wiederherstellung muss der Traffic umgeschaltet werden, damit er den Cassandra-Cluster im neuen Namespace verwendet. Führen Sie die folgenden Befehle aus, um den Traffic umzuschalten:

    kubectl get rs -n OLD_NAMESPACE # look for the 'apigee-connect' replicaset
    
    kubectl patch rs -n OLD_NAMESPACE APIGEE_CONNECT_RS_NAME -p '{"spec":{"replicas" : 0}}'
    
  8. Sobald die Traffic-Umschaltung abgeschlossen ist, können Sie die Backups auf dem wiederhergestellten Cluster neu konfigurieren. Entfernen Sie dazu die Konfiguration restore und fügen Sie die Konfiguration backup zur Datei overrides-restore.yaml hinzu. Ersetzen Sie YOUR_RESTORE_NAMESPACE durch den in Schritt 1 erstellten neuen Namespace-Namen.
    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
       backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
      ...
    

    Wenden Sie dann die backup-Konfiguration mit dem folgenden Befehl an:

    ./apigeectl apply  -f ../overrides-restore.yaml
    

Wiederherstellungslogs anzeigen

Sie können die Joblogs prüfen und grep zum Suchen nach error verwenden, um sicherzustellen, dass das Wiederherstellungslog keine Fehler enthält.

Prüfen Sie, ob die Wiederherstellung abgeschlossen wurde

Verwenden Sie den folgenden Befehl, um zu prüfen, ob der Wiederherstellungsvorgang abgeschlossen wurde:

kubectl get pods

Die Ausgabe sieht etwa so aus:

NAME                           READY     STATUS      RESTARTS   AGE
apigee-cassandra-default-0     1/1       Running     0          1h
apigee-cassandra-default-1     1/1       Running     0          1h
apigee-cassandra-default-2     1/1       Running     0          59m
apigee-cassandra-restore-b4lgf 0/1       Completed   0          51m

Wiederherstellungsprotokolle anzeigen

Rufen Sie die Wiederherstellungslogs mit folgendem Befehl auf:

kubectl logs -f apigee-cassandra-restore-b4lgf

Die Ausgabe sieht etwa so aus:

Restore Logs:

Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
to download file gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1/backup_20190405011309_schema.tgz
INFO: download successfully extracted the backup files from gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
finished downloading schema.cql
to create schema from 10.32.0.28

Warnings :
dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

Warnings :
dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

INFO: the schema has been restored
starting apigee-cassandra-default-0 in default
starting apigee-cassandra-default-1 in default
starting apigee-cassandra-default-2 in default
84 95 106
waiting on waiting nodes $pid to finish  84
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO  12:02:28 Configuration location: file:/etc/cassandra/cassandra.yaml
…...

INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed

Summary statistics:
   Connections per host    : 3
   Total files transferred : 2
   Total bytes transferred : 0.378KiB
   Total duration          : 5048 ms
   Average transfer rate   : 0.074KiB/s
   Peak transfer rate      : 0.075KiB/s

progress: [/10.32.1.155]0:1/1 100% 1:1/1 100% [/10.32.0.28]1:1/1 100% 0:1/1 100% [/10.32.3.220]0:1/1 100% 1:1/1 100% total: 100% 0.000KiB/s (avg: 0.074KiB/s)
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
progress: [/10.32.1.155]0:1/1 100% 1:1/1 100% [/10.32.0.28]1:1/1 100% 0:1/1 100% [/10.32.3.220]0:1/1 100% 1:1/1 100% total: 100% 0.000KiB/s (avg: 0.074KiB/s)
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
INFO: ./apigee/data/cassandra/data/ks1/user-9fbae960571411e99652c7b15b2db6cc restored successfully
INFO: Restore 20190405011309 completed
INFO: ./apigee/data/cassandra/data/ks1/user-9fbae960571411e99652c7b15b2db6cc restored successfully
INFO: Restore 20190405011309 completed
waiting on waiting nodes $pid to finish  106
Restore finished

Backupjob prüfen

Sie können den Backupjob auch nach der Planung Ihres Backup-Cronjobs prüfen. Nachdem der Cronjob geplant wurde, sollte etwa Folgendes angezeigt werden:

kubectl get pods

Die Ausgabe sieht etwa so aus:

NAME                                       READY     STATUS      RESTARTS   AGE
apigee-cassandra-default-0                 1/1       Running     0          2h
apigee-cassandra-default-1                 1/1       Running     0          2h
apigee-cassandra-default-2                 1/1       Running     0          2h
apigee-cassandra-backup-1554515580-pff6s   0/1       Running     0          54s

Backupprotokolle prüfen

Der Backup-Job:

  • Erstellt eine schema.cql-Datei.
  • Lädt den Speicher in Ihren Storage-Bucket hoch.
  • Weist den Knoten an, die Daten zu sichern und gleichzeitig hochzuladen.
  • Wartet, bis alle Daten hochgeladen sind.
kubectl logs -f apigee-cassandra-backup-1554515580-pff6s

Die Ausgabe sieht etwa so aus:

myusername-macbookpro:cassandra-backup-utility myusername$ kubectl logs -f apigee-cassandra-backup-1554577680-f9sc4
starting apigee-cassandra-default-0 in default
starting apigee-cassandra-default-1 in default
starting apigee-cassandra-default-2 in default
35 46 57
waiting on process  35
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Snapshot directory: 20190406190808
INFO: backup created cassandra snapshot 20190406190808
tar: Removing leading `/' from member names
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/20190406190808/
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Data.db
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Snapshot directory: 20190406190808
INFO: backup created cassandra snapshot 20190406190808
tar: Removing leading `/' from member names
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/20190406190808/
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/20190406190808/
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/20190406190808/
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/20190406190808/
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/20190406190808/
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/20190406190808/manifest.json
……
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-CompressionInfo.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/schema.cql
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-CompressionInfo.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-CompressionInfo.db
……
/tmp/tokens.txt
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: removing cassandra snapshot
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: removing cassandra snapshot
Requested clearing snapshot(s) for [all keyspaces]
INFO: Backup 20190406190808 completed
waiting on process  46
Requested clearing snapshot(s) for [all keyspaces]
INFO: Backup 20190406190808 completed
Requested clearing snapshot(s) for [all keyspaces]
waiting on process  57
INFO: Backup 20190406190808 completed
waiting result
to get schema from 10.32.0.28
INFO: /tmp/schema.cql has been generated
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
tar: removing leading '/' from member names
tmp/schema.cql
Copying from <TDIN>...
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
finished uploading schema.cql