Cassandra
Cassandra 2.0.17 -> 3.11.11 -> 4.0.5 的升級路徑失敗
我有 Cassandra 集群,它最初安裝了 Cassandra 2.0.17 版本。在此期間它已經通過次要版本和主要版本進行了升級,最後是 3.11.11 版本。
現在我正在嘗試將其升級到 4.0.5 版本,但它在啟動時退出並出現以下錯誤。
ERROR [main] 2022-09-01T07:29:46,009 CassandraDaemon.java:911 - Detected unreadable sstables \ /data/keyspace1/api_user-c21e2aa0a72b11e9ad8a2b34a639a098/la-1-big-Data.db, /data/keyspace1/group_index-c3a2ced0a72b11e9ad8a2b34a639a098/la-1-big-Statistics.db, /data/keyspace1/user_auth-c1c53530a72b11e9ad8a2b34a639a098/la-1-big-Summary.db, /data/system_auth/roles-5bc52802de2535edaeab188eecebb090/la-1-big-CompressionInfo.db, /data/system_auth/roles-5bc52802de2535edaeab188eecebb090/la-1-big-Data.db, /data/keyspace1/api_user-c21e2aa0a72b11e9ad8a2b34a639a098/la-1-big-Filter.db, /data/keyspace1/ssl_keystore-cfe03340a72b11e9ad8a2b34a639a098/la-1-big-CompressionInfo.db, /data/keyspace1/license_v2-cf226180a72b11e9ad8a2b34a639a098/la-1-big-Statistics.db, /data/keyspace1/inv_settings-c74b3d60a72b11e9ad8a2b34a639a098/la-1-big-Filter.db, /data/system_auth/roles-5bc52802de2535edaeab188eecebb090/la-1-big-Summary.db, /data/keyspace1/user_auth-c1c53530a72b11e9ad8a2b34a639a098/la-2-big-Index.db, /data/keyspace1/group_index-c3a2ced0a72b11e9ad8a2b34a639a098/la-1-big-Data.db, /data/keyspace1/api_user-c21e2aa0a72b11e9ad8a2b34a639a098/la-1-big-CompressionInfo.db, /data/keyspace1/user_index-c3715e90a72b11e9ad8a2b34a639a098/la-1-big-Summary.db, /data/keyspace1/user_index-c3715e90a72b11e9ad8a2b34a639a098/la-1-big-Filter.db, /data/keyspace1/group_index-c3a2ced0a72b11e9ad8a2b34a639a098/la-1-big-Filter.db, /data/keyspace1/dashboard_groups-c7bf0dd0a72b11e9ad8a2b34a639a098/la-1-big-CompressionInfo.db, /data/keyspace1/user_auth-c1c53530a72b11e9ad8a2b34a639a098/la-2-big-Statistics.db, /data/keyspace1/user_auth-c1c53530a72b11e9ad8a2b34a639a098/la-1-big-Index.db, /data/keyspace1/group_index-c3a2ced0a72b11e9ad8a2b34a639a098/la-1-big-Index.db, /data/keyspace1/user_index-c3715e90a72b11e9ad8a2b34a639a098/la-1-big-Statistics.db, /data/keyspace1/api_user-c21e2aa0a72b11e9ad8a2b34a639a098/la-1-big-Index.db, /data/keyspace1/user_auth-c1c53530a72b11e9ad8a2b34a639a098/la-1-big-Statistics.db, /data/keyspace1/ssl_keystore-cfe03340a72b11e9ad8a2b34a639a098/la-1-big-Statistics.db
初始版本為 3.XX 的集群我可以成功升級 4.0.5。兩種情況的最終 cassandra.yaml 相同(2.XX –>、3.XX –>)
是否支持按照 Cassandra 2.0.17 -> 3.xx -> 4.0.5 的路徑升級?
升級路徑不是問題。問題是您仍然擁有來自非常舊版本的 Cassandra 的 SSTable。
帶有前綴的文件
la-
是BigFormat
Cassandra 2.2:public static final String current_version = "la";
Cassandra 4.0 可以讀取
ma
的最早的 SSTable 格式是:public static final String current_version = "nb"; public static final String earliest_supported_version = "ma";
我們始終建議您
upgradesstables
在升級 Cassandra 之前在所有節點上執行,以確保不會遇到此問題。通常,我會說您可以通過將舊文件移出
data/
目錄來解決該問題,但其中一個文件與角色有關:system_auth/roles-5bc52802de2535edaeab188eecebb090/la-1-big-Data.db
如果刪除此文件,您將失去其中包含的角色。如果您在其他地方有角色的副本,那麼一旦節點重新聯機,您應該能夠重新創建它們。乾杯!