Zmień strategię tworzenia wiadomości Cassandra

Apigee używa baz danych Cassandra do przechowywania większości danych, w tym danych dotyczących serwerów proxy, pamięci podręcznych i tokenów. Kompaktowanie to standardowy proces zmniejszania rozmiaru danych przechowywanych w bazach danych, który jest niezbędny do utrzymania wydajnego działania baz danych. Cassandra obsługuje różne strategie kompaktowania. Apigee zaleca wszystkim klientom Edge dla chmury prywatnej, aby w przypadku wszystkich grup kolumn obsługiwali klastry Cassandra za pomocą strategii LeveledCompactionStrategy, a nie domyślnej strategii SizeTieredCompactionStrategy. LeveledCompactionStrategy zapewnia lepszą wydajność, lepsze wykorzystanie dysku, wydajniejsze kompaktowanie i wymaga mniej wolnego miejsca niż SizedTieredCompactionStrategy.

Wszystkie nowe instalacje Apigee w wersji 4.51.00 lub nowszej będą automatycznie konfigurować Cassandrę z LeveledCompactionStrategy. Jeśli jednak używasz starszej wersji Apigee lub masz uaktualnioną wersję Apigee 4.51.00 ze starszej wersji, Twoja wersja może nadal używać Cassandra z SizeTieredCompactionStrategy. Aby dowiedzieć się, która strategia kompaktowania jest używana w Twojej wersji Cassandra, zapoznaj się z sekcją Sprawdzanie strategii kompaktowania.

Na tej stronie dowiesz się, jak zmienić strategię kompaktowania na LeveledCompactionStrategy.

Przygotowanie

Sprawdzanie istniejącej strategii kompaktowania

Aby sprawdzić istniejącą strategię kompaktowania w rodzinach kolumn, postępuj zgodnie z instrukcjami podanymi w sekcji Sprawdzanie strategii kompaktowania. Jeśli strategia kompaktowania to już LeveledCompactionStrategy, nie musisz wykonywać pozostałych instrukcji na tej stronie.

Kopia zapasowa

Zmiana strategii kompaktowania powoduje uruchomienie pełnego cyklu kompaktowania w węzłach C*, co może powodować pewne opóźnienia ze względu na obciążenie związane z kompaktowaniem i jednoczesnym ruchem aplikacji. Aby przywrócić węzły Cassandra z kopii zapasowych, może być konieczne wycofanie tej zmiany. Aby dowiedzieć się, jak utworzyć kopię zapasową danych przed zmianą strategii kompaktowania, przeczytaj artykuł How to backup (Jak utworzyć kopię zapasową).

Przepustowość kompaktowania

Po zmianie strategii kompaktowania na LeveledCompactionStrategy kompaktowanie może trwać przez dłuższy czas. Czas działania może się różnić w zależności od rozmiaru kompaktowania danych. Podczas cyklu kompaktowania Cassandra może zużywać więcej zasobów systemowych. Aby zagęszczanie nie zajmowało dużo zasobów systemowych, co mogłoby zakłócać żądania środowiska wykonawczego interfejsu API, zalecamy ustawienie limitów przepustowości zagęszczania.

Uruchom to polecenie nodetool na każdym węźle, aby ustawić maksymalną przepustowość kompaktowania na 128 MB na wszystkich węzłach C*:

nodetool setcompactionthroughput 128

Dobieranie rozmiaru maszyn wirtualnych na potrzeby kompaktowania

Przed wprowadzeniem tej zmiany upewnij się, że węzły C* mają wystarczającą ilość zasobów procesora i pamięci. Przed wprowadzeniem tej zmiany upewnij się, że żaden węzeł C* nie działa przy obciążeniu procesora przekraczającym 25%.

Po zmianie strategii kompaktowania powinien zostać uruchomiony pełny cykl kompaktowania, dlatego zaleca się zmianę strategii kompaktowania w okresach niskiego ruchu.

Przesunięcie

Może się okazać, że nie uda Ci się zmienić wszystkich węzłów w ciągu jednego dnia, zwłaszcza jeśli masz duże klastry Cassandra, ponieważ indeksy muszą być odbudowywane na każdym węźle po kolei. Możesz zmienić strategię kompaktowania jednego schematu lub jednej grupy kolumn (tabeli) naraz. W tym celu zmień grupę kolumn, aby zmienić strategię kompaktowania, a następnie ponownie utwórz wszystkie indeksy w tabeli (jeśli istnieją) we wszystkich węzłach. Następnie powtórz powyższą procedurę dla każdej tabeli lub przestrzeni kluczy. Takie uruchomienia w przypadku jednej tabeli lub jednej przestrzeni kluczy można podzielić na różne dni.

Aby na przykład zmienić strategię kompaktowania grupy kolumn oauth_20_access_tokens w schemacie kms, możesz wykonać te czynności:

  1. Zmień tabelę, aby zmienić strategię kompaktowania:
       
    ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  2. Przebuduj wszystkie indeksy tylko tej tabeli:
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_app_id_idx
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_client_id_idx
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_refresh_token_idx

Zmiana strategii kompaktowania

Ogólnie rzecz biorąc, zmiana strategii kompaktowania jest procesem dwuetapowym:

  1. Zmień strategię kompaktowania każdej tabeli.
  2. Przebuduj wszystkie indeksy w każdym węźle, jeden po drugim.

Zmiana tabeli w celu ustawienia nowej strategii kompaktowania

Uruchom te polecenia Cassandra Query Language (CQL) na dowolnym węźle Cassandra, zmieniając strategię dla jednej przestrzeni kluczy naraz. Zapytania CQL możesz uruchamiać w wierszu poleceń cql. Aby wywołać prompta cql:

/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`

Zobaczysz odpowiedź podobną do tej:

Connected to apigee at XX.XX.XX.XX:9042.
[cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native
protocol v3]
Use HELP for help.
cqlsh>

Aby zmienić strategię kompaktowania, uruchom te polecenia CQL:

  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy kms:
    ALTER TABLE kms.organizations WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.maps WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.apps WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.app_credentials WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.api_products WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.apiproducts_appslist WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.api_resources WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.app_end_user WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.oauth_20_authorization_codes WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.oauth_10_request_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.oauth_10_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.oauth_10_verifiers WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE kms.app_enduser_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy user_settings:
    ALTER TABLE user_settings.user_settings WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy keyvaluemap:
       
    ALTER TABLE keyvaluemap.keyvaluemaps_r21 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy devconnect:
        
    ALTER TABLE devconnect.developers WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE devconnect.companies WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE devconnect.company_developers WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy counter:
    ALTER TABLE counter.counters_current_version WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.counters_with_expiry WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.counters WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.key_timestamp_count WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.timestamp_key WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.period_timestamp WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE counter.gateway_quota WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy cache:
    ALTER TABLE cache.cache_entries WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE cache.cache_sequence_id_r24 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy ax_custom_report_model:
    ALTER TABLE ax_custom_report_model.report_description WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_id_lookup WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.org_metadata WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.org_report_lookup WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_created_view WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_viewed_view WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy auth:
    ALTER TABLE auth.totp WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy audit:
    ALTER TABLE audit.audits WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE audit.audits_ref WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy apprepo:
    ALTER TABLE apprepo.organizations WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apprepo.environments WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apprepo.apiproxies WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apprepo.apiproxy_revisions WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apprepo.api_proxy_revisions_r21 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy apimodel:
    ALTER TABLE apimodel.apis WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.apis_revision WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.resource WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.method WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.revision_counters WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.template_counters WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.template WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.credentials WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.credentialsv2 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.schemas WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.security WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE apimodel.template_auth WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy identityzone:
    ALTER TABLE identityzone.IdentityZones WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE identityzone.OrgToIdentityZone WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy dek:
    ALTER TABLE dek.keys WITH compaction = {'class' : 'LeveledCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy analytics:
    ALTER TABLE analytics.custom_aggregates_defn WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE analytics.custom_rules_defn WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE analytics.custom_aggregates_defn_updates WITH compaction = {'class' : 'LeveledCompactionStrategy'};
    ALTER TABLE analytics.custom_rules_defn_updates WITH compaction = {'class' : 'LeveledCompactionStrategy'};

Przebuduj indeksy

Ten krok należy wykonać po zmianie strategii kompaktowania. Uruchom kolejno te polecenia nodetool na każdym węźle Cassandra.

Aby ponownie utworzyć indeksy, uruchom te polecenia nodetool:

  • Przebuduj indeksy dla przestrzeni kluczy kms:
    nodetool rebuild_index kms maps maps_organization_name_idx
    nodetool rebuild_index kms apps apps_app_family_idx
    nodetool rebuild_index kms apps apps_app_id_idx
    nodetool rebuild_index kms apps apps_app_type_idx
    nodetool rebuild_index kms apps apps_name_idx
    nodetool rebuild_index kms apps apps_organization_name_idx
    nodetool rebuild_index kms apps apps_parent_id_idx
    nodetool rebuild_index kms apps apps_parent_status_idx
    nodetool rebuild_index kms apps apps_status_idx
    nodetool rebuild_index kms app_credentials app_credentials_api_products_idx
    nodetool rebuild_index kms app_credentials app_credentials_organization_app_id_idx
    nodetool rebuild_index kms app_credentials app_credentials_organization_name_idx
    nodetool rebuild_index kms api_products api_products_organization_name_idx
    nodetool rebuild_index kms app_end_user app_end_user_app_id_idx
    nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_client_id_idx
    nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_organization_name_idx
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_app_id_idx
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_client_id_idx
    nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_refresh_token_idx
    nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_consumer_key_idx
    nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_organization_name_idx
    nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_app_id_idx
    nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_consumer_key_idx
    nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_organization_name_idx
    nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_status_idx
    nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_organization_name_idx
    nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_request_token_idx
  • Przebuduj indeksy dla przestrzeni kluczy devconnect:
    nodetool rebuild_index devconnect companies companies_name_idx
    nodetool rebuild_index devconnect companies companies_organization_name_idx
    nodetool rebuild_index devconnect companies companies_status_idx
    nodetool rebuild_index devconnect company_developers company_developers_company_name_idx
    nodetool rebuild_index devconnect company_developers company_developers_developer_email_idx
    nodetool rebuild_index devconnect company_developers company_developers_organization_name_idx
    nodetool rebuild_index devconnect developers developers_email_idx
    nodetool rebuild_index devconnect developers developers_organization_name_idx
    nodetool rebuild_index devconnect developers developers_status_idx
  • Przebuduj indeksy dla przestrzeni kluczy cache:
        
    nodetool rebuild_index cache cache_entries cache_entries_cache_name_idx
  • Przebuduj indeksy dla przestrzeni kluczy audit:
    nodetool rebuild_index audit audits audits_operation_idx
    nodetool rebuild_index audit audits audits_requesturi_idx
    nodetool rebuild_index audit audits audits_responsecode_idx
    nodetool rebuild_index audit audits audits_timestamp_idx
    nodetool rebuild_index audit audits audits_user_idx
  • Przebuduj indeksy dla przestrzeni kluczy apprepo:
    nodetool rebuild_index apprepo environments environments_organization_name_idx
  • Przebuduj indeksy dla przestrzeni kluczy apimodel:
    nodetool rebuild_index apimodel apis a_name
    nodetool rebuild_index apimodel apis a_org_name
    nodetool rebuild_index apimodel apis_revision ar_a_name
    nodetool rebuild_index apimodel apis_revision ar_a_uuid
    nodetool rebuild_index apimodel apis_revision ar_base_url
    nodetool rebuild_index apimodel apis_revision ar_is_active
    nodetool rebuild_index apimodel apis_revision ar_is_latest
    nodetool rebuild_index apimodel apis_revision ar_org_name
    nodetool rebuild_index apimodel apis_revision ar_rel_ver
    nodetool rebuild_index apimodel apis_revision ar_rev_num
    nodetool rebuild_index apimodel resource r_a_name
    nodetool rebuild_index apimodel resource r_api_uuid
    nodetool rebuild_index apimodel resource r_ar_uuid
    nodetool rebuild_index apimodel resource r_base_url
    nodetool rebuild_index apimodel resource r_name
    nodetool rebuild_index apimodel resource r_org_name
    nodetool rebuild_index apimodel resource r_res_path
    nodetool rebuild_index apimodel resource r_rev_num
    nodetool rebuild_index apimodel method m_a_name
    nodetool rebuild_index apimodel method m_api_uuid
    nodetool rebuild_index apimodel method m_ar_uuid
    nodetool rebuild_index apimodel method m_base_url
    nodetool rebuild_index apimodel method m_name
    nodetool rebuild_index apimodel method m_org_name
    nodetool rebuild_index apimodel method m_r_name
    nodetool rebuild_index apimodel method m_r_uuid
    nodetool rebuild_index apimodel method m_res_path
    nodetool rebuild_index apimodel method m_rev_num
    nodetool rebuild_index apimodel method m_verb
    nodetool rebuild_index apimodel template t_a_name
    nodetool rebuild_index apimodel template t_a_uuid
    nodetool rebuild_index apimodel template t_entity
    nodetool rebuild_index apimodel template t_name
    nodetool rebuild_index apimodel template t_org_name
    nodetool rebuild_index apimodel schemas s_api_uuid
    nodetool rebuild_index apimodel schemas s_ar_uuid
    nodetool rebuild_index apimodel security sa_api_uuid
    nodetool rebuild_index apimodel security sa_ar_uuid
    nodetool rebuild_index apimodel template_auth au_api_uuid
  • Przebuduj indeksy dla przestrzeni kluczy dek:
    nodetool rebuild_index dek keys usecase_index

Weryfikacja

  1. Sprawdź, czy zmiana strategii kompaktowania w schemacie została wprowadzona, postępując zgodnie z instrukcjami w sekcji Sprawdzanie strategii kompaktowania.
  2. Sprawdź, czy po zmianie strategii kompaktowanie zostało przeprowadzone pomyślnie i dane zostały skompaktowane:
    1. Na każdym węźle Cassandra uruchom to polecenie nodetool, aby sprawdzić, czy wszystkie kompaktowania zostały zakończone i nie ma żadnych oczekujących:
      nodetool compactionstats
    2. Po sprawdzeniu za pomocą powyższego polecenia, że nie ma oczekujących kompaktowań, sprawdź, czy sygnatura czasowa ostatniej modyfikacji plików danych (w katalogu /opt/apigee/data/apigee-cassandra/data/) jest późniejsza niż sygnatura czasowa wykonania polecenia CQL zmiany strategii kompaktowania.

Wycofaj zmiany

Jeśli chcesz przywrócić poprzednią wersję, możesz skorzystać z jednej z tych opcji:

Opcja 1. Cofnij zmianę

Przywróć strategię kompaktowania do wersji SizeTieredCompactionStrategy.

Uruchom te polecenia CQL na dowolnym węźle Cassandra, zmieniając strategię dla jednej przestrzeni kluczy naraz. Zapytania CQL możesz uruchamiać w wierszu poleceń cql. Aby wywołać prompta cql:

/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`

Zobaczysz odpowiedź podobną do tej:

Connected to apigee at XX.XX.XX.XX:9042.
[cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native
protocol v3]
Use HELP for help.
cqlsh>

Aby zmienić strategię kompaktowania, uruchom te polecenia CQL:

  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy kms:
    ALTER TABLE kms.organizations WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.maps WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.apps WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.app_credentials WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.api_products WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.apiproducts_appslist WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.api_resources WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.app_end_user WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.oauth_20_authorization_codes WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.oauth_10_request_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.oauth_10_access_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.oauth_10_verifiers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE kms.app_enduser_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy user_settings:
    ALTER TABLE user_settings.user_settings WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy keyvaluemap:
    ALTER TABLE keyvaluemap.keyvaluemaps_r21 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy devconnect:
    ALTER TABLE devconnect.developers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE devconnect.companies WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE devconnect.company_developers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy counter:
    ALTER TABLE counter.counters_current_version WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.counters_with_expiry WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.key_timestamp_count WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.timestamp_key WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.period_timestamp WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE counter.gateway_quota WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy cache:
    ALTER TABLE cache.cache_entries WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE cache.cache_sequence_id_r24 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy ax_custom_report_model:
    ALTER TABLE ax_custom_report_model.report_description WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_id_lookup WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.org_metadata WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.org_report_lookup WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_created_view WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE ax_custom_report_model.report_viewed_view WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy auth:
    ALTER TABLE auth.totp WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy audit:
    ALTER TABLE audit.audits WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE audit.audits_ref WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy apprepo:
    ALTER TABLE apprepo.organizations WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apprepo.environments WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apprepo.apiproxies WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apprepo.apiproxy_revisions WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apprepo.api_proxy_revisions_r21 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy apimodel:
    ALTER TABLE apimodel.apis WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.apis_revision WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.resource WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.method WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.revision_counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.template_counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.template WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.credentials WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.credentialsv2 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.schemas WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.security WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE apimodel.template_auth WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy identityzone:
    ALTER TABLE identityzone.IdentityZones WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE identityzone.OrgToIdentityZone WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy dek:
        
    ALTER TABLE dek.keys WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
  • Polecenia CQL do zmiany strategii kompaktowania dla przestrzeni kluczy analytics:
    ALTER TABLE analytics.custom_aggregates_defn WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE analytics.custom_rules_defn WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE analytics.custom_aggregates_defn_updates WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
    ALTER TABLE analytics.custom_rules_defn_updates WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};

Jeśli po zmianie strategii kompaktowania na LeveledCompactionStrategy indeksy zostały już przebudowane, po zmianie wszystkich grup kolumn musisz ponownie przebudować indeksy. Wykonaj te same czynności co wcześniej, aby ponownie utworzyć wszystkie indeksy. Jeśli indeksy nie zostały wcześniej przebudowane, nie musisz ich przebudowywać podczas przywracania.

Opcja 2. Pełne przywracanie danych z kopii zapasowej

Aby przeprowadzić pełne przywracanie danych, postępuj zgodnie z instrukcjami w sekcji Przywracanie z kopii zapasowej.

Sprawdź strategię kompaktowania

Strategie kompaktowania są ustawiane w Cassandra na poziomie grupy kolumn (tabeli). Aby sprawdzić strategię kompaktowania dla każdej grupy kolumn, możesz użyć poniższych zapytań CQL.

Zapytania CQL możesz uruchamiać w wierszu poleceń cql. Aby wywołać prompta cql:

/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`

Zobaczysz odpowiedź podobną do tej:

Connected to apigee at XX.XX.XX.XX:9042.
[cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native
protocol v3]
Use HELP for help.
cqlsh>

Bieżącą strategię kompaktowania możesz określić w ten sposób:

  • Jeśli strategia kompaktowania jest ustawiona na SizeTieredCompactionStrategy, wynik poniższych zapytań będzie wynosić org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.
  • Jeśli strategia kompaktowania jest ustawiona na LeveledCompactionStrategy, wynik poniższych zapytań będzie wynosić org.apache.cassandra.db.compaction.LeveledCompactionStrategy.

Aby sprawdzić strategię kompaktowania, uruchom te polecenia CQL:

  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy kms:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'organizations';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'maps';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'apps';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_credentials';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'api_products';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'apiproducts_appslist';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'api_resources';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_end_user';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_20_authorization_codes';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_20_access_tokens';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_request_tokens';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_access_tokens';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_verifiers';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_enduser_tokens';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy user_settings:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'user_settings' and columnfamily_name = 'user_settings';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy keyvaluemap:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'keyvaluemap' and columnfamily_name = 'keyvaluemaps_r21';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy devconnect:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'developers';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'companies';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'company_developers';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy counter:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters_current_version';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters_with_expiry';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'key_timestamp_count';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'timestamp_key';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'period_timestamp';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'gateway_quota';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy cache:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'cache' and columnfamily_name = 'cache_entries';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'cache' and columnfamily_name = 'cache_sequence_id_r24';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy ax_custom_report_model:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_description';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_id_lookup';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'org_metadata';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'org_report_lookup';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_created_view';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_viewed_view';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy auth:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'auth' and columnfamily_name = 'totp';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy audit:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'audit' and columnfamily_name = 'audits';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'audit' and columnfamily_name = 'audits_ref';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy apprepo:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'organizations';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'environments';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'apiproxies';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'apiproxy_revisions';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'api_proxy_revisions_r21';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy apimodel:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'apis';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'apis_revision';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'resource';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'method';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'revision_counters';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template_counters';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'credentials';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'credentialsv2';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'schemas';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'security';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template_auth';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy identityzone:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'identityzone' and columnfamily_name = 'identityzones';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'identityzone' and columnfamily_name = 'orgtoidentityzone';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy dek:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'dek' and columnfamily_name = 'keys';
  • Polecenia CQL do weryfikacji strategii kompaktowania dla przestrzeni kluczy analytics:
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_aggregates_defn';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_rules_defn';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_aggregates_defn_updates';
    SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_rules_defn_updates';