docker-library / cassandra

Docker Official Image packaging for Cassandra
Apache License 2.0
262 stars 281 forks source link

How can a snapshot be restored #224

Closed hanckmann closed 3 years ago

hanckmann commented 3 years ago

The docker container works. I like to use it in a docker-compose scenario, where my compose file contains:

version: '3'

volumes:
  local_cassandra_data: {}

services:
  cassandra:
    build:
      context: .
      dockerfile: ../cassandra/Dockerfile
    image: staal_cassandra
    container_name: staal_cassandra
    volumes:
      - local_cassandra_data:/var/lib/cassandra:Z
    ports:
      - "7000:7000"
      - "7001:7001"
      - "9042:9042"
      - "9160:9160"
      - "7199:7199"
    environment:
      - "LOCAL_JMX=no"
      - "MAX_HEAP_SIZE=256M"
      - "HEAP_NEWSIZE=128M"

The referenced Dockerfile contains:

FROM cassandra:3

# Require user & pass for accessing Cassandra instance within container
# COPY ./cassandra.yaml /etc/cassandra/
RUN echo "authenticator: PasswordAuthenticator" >> /etc/cassandra/cassandra.yaml &&\
    echo "monitorRole QED" >> /etc/cassandra/jmxremote.password &&\
    echo "controlRole R&D" >> /etc/cassandra/jmxremote.password &&\
    echo "cassandra cassandra" >> /etc/cassandra/jmxremote.password

My issue is that I have been trying for most of the day, but did not manage to restore a snapshot of an existing Cassandra database.

It would be really great if you could give me a pointer to how to do this.

wglambert commented 3 years ago

https://docs.datastax.com/en/archived/ddac/doc/datastax_enterprise/operations/opsBackupSnapshotRestore.html#Restoringfromlocalnodes

What issues do you get from:

Copy the most recent snapshot SSTable directory to the /var/lib/cassandra/data/keyspace/table_name-UUID directory.

Run nodetool refresh

You can do docker cp as well for quick host-container copying

hanckmann commented 3 years ago

Yes, thanks... I was looking for something like that docker cp command. Wow, have been searching the web for most of the day and did not find that piece of super useful info :-(