Cassandra viser øyeblikksbilder

Cassandra viser øyeblikksbilder

Sikkerhetskopiering er utrolige funksjoner, spesielt når du jobber med datakritiske miljøer. I Apache Cassandra kan vi lage sikkerhetskopier av databasedata som er lagret som Sstable -filer. Du kan deretter bruke sikkerhetskopifilene til å gjenopprette databasen i tilfelle av data tap, node eller partisjonssvikt. Sikkerhetskopiering kan også brukes til å gjenskape databasen i en annen maskin, og fjerne behovet for å gjenskape strukturen fra bunnen av.

Cassandra støtter to hovedtyper av sikkerhetskopiering:

  1. Øyeblikksbilder
  2. Inkrementelle sikkerhetskopier

I denne opplæringen vil vi fokusere på sikkerhetskopiering av øyeblikksbilde. Først lærer vi hvordan vi kan initialisere og opprette databasene som er lagret i en Apache Cassandra -klynge.

La oss dykke inn.

Hva er øyeblikksbilder?

I sammenheng med en Apache Cassandra -klynge refererer et øyeblikksbilde til en kopi av en tabells Sstable -filer på et bestemt tidspunkt. Sstable eller Sortered Strings Table er et filformat som Apache Cassandra bruker for å lagre dataene i minnet i Memtables for rask tilgang. Sstable -filer er uforanderlige og blir fjernet eller slått sammen med nye Sstable -filer når dataene endres.

Øyeblikksbilder i Cassandra kan utstedes manuelt av brukeren eller automatiseres ved å aktivere funksjonen i konfigurasjonsfilene.

Sette opp en eksempeldata for å illustrere øyeblikksbildene i Cassandra

Før vi illustrerer hvordan du utfører øyeblikksbildene i Cassandra, la oss lage noen eksempler på data for å demonstrere hvordan vi lager øyeblikksbilder.

La oss starte med å lage et øyeblikksbilde.

cassandra@cqlsh> lage nøkkelpace snapshotting
... med replikasjon = 'klasse': 'enklest strategi', 'replication_factor': 1;

Den forrige spørringen oppretter et nøkkelpace med enklinestrategi og replikasjonsfaktor 1.

Vi kan deretter bytte til det nøkkelponde og lage to tabeller:

cassandra@cqlsh> bruk snapshotting;

Deretter oppretter du en brukertabell som følger:

Cassandra@CQLSH: Snapshotting> Lag tabellbrukere (
... id int,
... Brukernavn Tekst,
... e -posttekst,
... Primærnøkkel (ID)
...);

Vi kan også lage en annen tabell som kalles med en lignende struktur:

cassandra@cqlsh: snapshotting> opprette tabellbrukere_copy (
... id int,
... Brukernavn Tekst,
... e -posttekst,
... Primærnøkkel (ID)
...);

Til slutt kan vi legge til noen eksempeldata i tabellen som vist:

Sett inn brukere (ID, brukernavn, e -post) verdier (0, 'brukernavn1', '[email protected] ');
Sett inn i brukere (ID, brukernavn, e -post) verdier (1, 'brukername2', '[email protected]');
Sett inn brukere av brukere_copy (ID, brukernavn, e -post) (0, 'brukernavn1', '[email protected] ');
Sett inn brukere av brukere_copy (ID, brukernavn, e -post) (1, 'brukername2', '[email protected]');

Vi kan deretter spørre tabellene som følger:

cassandra@cqlsh: snapshotting> velg * fra brukere;
cassandra@cqlsh: snapshotting> velg * fra brukere_copy;

Produksjon:

Konfigurer Cassandra -klyngen for øyeblikksbilder

Før du oppretter øyeblikksbilder, er det bra å sikre at den automatiske stillingen er deaktivert. Rediger Cassandra.YML -fil og angi følgende verdi:

auto_snapshot: falsk

Det anbefales også å deaktivere den automatiske komprimeringen før opprettelse av øyeblikksbilde. I Cassandra.YML -fil, angi følgende verdi:

snapshot_before_compaction: falsk

Når de gitte innstillingene er klare, må du starte Cassandra -klyngen på nytt for å bruke endringene.

Tar øyeblikksbilder av alle tastetastene

Når vi oppretter øyeblikksbilder i Cassandra, bruker vi NodeTool -kommandoen. Du kan kjøre følgende kommando:

$ NodeTool Help Snapshot

For å se tilgjengelige kommandoalternativer.

For å ta et øyeblikksbilde av alle tastetastene i Cassandra -klyngen, kan vi kjøre følgende kommando:

$ NodeTool Snapshot

Kommandoen skal returnere en melding som vist:

Som standard oppretter Cassandra et øyeblikksbilde med navnet på dagens tidsstempel.

For å spesifisere navnet på øyeblikksbildet, kan du bruke -t -alternativet som vist i følgende kommando:

$ NodeTool Snapshot -t Backups

Dette skaper et øyeblikksbilde av alle tastetastene i klyngen og lagrer det i sikkerhetskopieringskatalogen.

Tar et øyeblikksbilde av et enkelt nøkkelpace

Du kan også ta en sikkerhetskopi av et enkelt nøkkelpace i klyngen ved å spesifisere nøkkelpace -navnet. For å ta et øyeblikksbilde av det snapshotting nøkkelponde som vi opprettet tidligere, kan vi kjøre følgende kommando:

$ NodeTool Snapshot -t Snapshotting_Backup Snapshotting

Cassandra oppretter en øyeblikksbilde -katalog for hver tabell i den spesifiserte nøkkelpace. For eksempel, siden "Snapshotting" -t KeySpace inneholder to tabeller, oppretter Cassandra en øyeblikksbilde katalog for hver.

Som standard lagrer Cassandra øyeblikksbildene i/var/lib/cassandra/datakatalog.

$ ls -la/var/lib/cassandra/data/snapshotting/

Du bør se kataloger i hver tabell i tastaturet.

Inne i hver fil finner du de andre filene og katalogene som vist:

Tar et øyeblikksbilde av et enkelt bord i et nøkkelpace

Noen ganger kan det være lurt å ta et øyeblikksbilde av et bestemt bord i et gitt nøkkelpace. For det kan du bruke alternativet med tabellen etterfulgt av navnet på tabellen du ønsker å ta sikkerhetskopi.

For eksempel, for å ta et øyeblikksbilde av brukeren av brukere i "snapshotting" -t KeySpace, kan vi kjøre følgende kommando:

$ NodeTool Snapshot -Table Users_Copy -T UC_SNAP Snapshotting

Kommandoen oppretter et øyeblikksbilde av Bruker_copy -tabellen og lagrer det under UC_SNAP -katalogen.

Oppføring av øyeblikksbilder

For å se tilgjengelige øyeblikksbilder i klyngen, bruk listsnapshot -kommandoen som vist:

$ NodeTool Listsnapshots

Du bør få en liste over alle tilgjengelige øyeblikksbilder og detaljer, for eksempel øyeblikksbilde -navnet, som KeySpace de tilhører, kolonnen Navn, størrelsen på disken og den faktiske størrelsen.

Øyeblikksbilde detaljer:
Snapshot Navn KeySpace Navn Kolonne Familienavn Ekte størrelse på disken
UC_SNAP Snapshotting Users_Copy 0 byte 5.87 Kib
1661397218984 SYSTEM_SCHEMA KOLUMNER 0 BYTES 12.51 Kib
1661397218984 System_schema typer 0 byte 15.03 Kib
1661397218984 System_schema Indekser 0 Byte 15.15 Kib
1661397218984 System_schema KeySpaces 0 byte 5.81 Kib
1661397218984 System_schema dropped_columns 0 byte 15.63 Kib
1661397218984 System_schema Aggregates 0 byte 15.4 Kib
1661397218984 System_schema utløser 0 byte 15.15 Kib
1661397218984 System_schema Tabeller 0 BYTES 10.27 Kib
1661397218984 Snapshotting brukere 0 byte 5.86 Kib
1661397218984 Snapshotting users_copy 0 byte 5.87 Kib
snapshotting_backup snapshotting brukere 0 byte 5.86 Kib
snapshotting_backup snapshotting brukere_copy 0 byte 5.87 Kib
Backups Snapshotting brukere 0 byte 5.86 Kib
Backups Snapshotting Users_copy 0 byte 5.87 Kib
1661397899477 Snapshotting users_copy 0 byte 5.87 Kib
Total TrueDiskspaceused: 0 byte

Konklusjon

I denne artikkelen lærte du hvordan Snapshotting fungerer i Apache Cassandra. Du lærte også hvordan du tar øyeblikksbilder av tastetaser, spesifikke tabeller i et nøkkelpace og mer.

Takk for at du leste!