apache cassandra backup & incremental

İbrahim Yıldız
2 min readJan 17, 2025
#!/bin/bash

# 1. Snapshot Alma (test keyspace için testbackup)
echo "Snapshot oluşturuluyor: testbackup"
nodetool snapshot --tag catalog-ks catalogkeyspace
echo "Snapshot dizini: testbackup"

# 2. Başka bir Snapshot Alma (test keyspace için table_bazlı tablosu)
echo "Başka bir snapshot oluşturuluyor: table_bazlı (ibrahim_2 tablosu)"
nodetool snapshot --tag magazine --table magazine catalogkeyspaceecho "Snapshot dizini: table_bazlı"

# 3. Snapshot'ları Listeleme
echo "Snapshot'lar listeleniyor..."
nodetool listsnapshots

# 4. Snapshot'ların Fiziksel Yeri Kontrolü
find -name snapshots

# 5. Snapshot'ı Silme (table_bazlı snapshot'ı)
nodetool clearsnapshot -t table_bazlı test

# 6. Snapshot'ları Listeleme (Silme sonrası kontrol)
echo "Snapshot'lar tekrar listeleniyor..."
nodetool listsnapshots

Incremental

Flush Etmemiz gerekiyor , artımlı yedeklemelerin oluşturulabilmesi için gereklidir çünkü artımlı yedeklemeler yalnızca diske yazılmış veriler üzerinden yapılır.

nodetool enablebackup 


nodetool flush cqlkeyspace t
nodetool flush cqlkeyspace t2
nodetool flush catalogkeyspace journal magazine


Artımlı yedeklemeler, Cassandra’nın veri dizininde her tablo için
bir backups dizini oluşturur. Bu dizini kontrol etmek için şu komutu
kullanabilirsiniz:


root@d90b2184ecd4:/opt/cassandra/data/data/test# find -name backups
./ibrahim_1-3e074ca0d36811ef9a315b406526d114/backups
./ibrahim_2-6e925cc0d36811ef9a315b406526d114/backups
root@d90b2184ecd4:/opt/cassandra/data/data/test#
root@d90b2184ecd4:/opt/cassandra/data/data/test# cd ./ibrahim_1-3e074ca0d36811ef9a315b406526d114/backups
root@d90b2184ecd4:/opt/cassandra/data/data/test/ibrahim_1-3e074ca0d36811ef9a315b406526d114/backups# ls
nb-1-big-CompressionInfo.db nb-1-big-Data.db nb-1-big-Digest.crc32 nb-1-big-Filter.db nb-1-big-Index.db nb-1-big-Statistics.db nb-1-big-Summary.db nb-1-big-TOC.txt
root@d90b2184ecd4:/opt/cassandra/data/data/test/ibrahim_1-3e074ca0d36811ef9a315b406526d114/backups#


Yeni Veriler Ekleyerek Yedekleme Başlatma:
Yeni bir veri satırı eklendiğinde, nodetool flush komutunu tekrar
çalıştırarak artımlı yedekleme dosyaları oluşturabilirsiniz:

nodetool flush cqlkeyspace t
ls -l ./cassandra/data/data/cqlkeyspace/t-d132e240c21711e9bbee19821dcea330/backups

root@70cfea29417f:/opt/cassandra/data/data/catalogkeyspace/magazine-5e871480d37511efb44a3509f280d6e0/backups# ls
nb-2-big-CompressionInfo.db
nb-2-big-Data.db
nb-2-big-Digest.crc32
nb-2-big-Filter.db
nb-2-big-Index.db
nb-2-big-Statistics.db
nb-2-big-Summary.db
nb-2-big-TOC.txt

Bu şekilde arttırımla yedeklemeler alabilirsiniz ! bir sonraki yazımda
restore yapacağız

--

--

No responses yet