【问题标题】:How to safely delete a data directory after I have dropped a table?删除表后如何安全删除数据目录?
【发布时间】:2020-07-08 18:23:43
【问题描述】:

所以我在 Cassandra V3 中删除了一个表,然后重新创建了同一个表,这样我就可以删除一些不必要的列(我知道我应该使用 alter 命令,我猜当时不太聪明) .

谁啊,我在一个多星期前执行了这个操作,所有这些记录的 TTL 都是 8 天,

AND compaction = {'class': 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 'compaction_window_size': '1', 'compaction_window_unit': 'DAYS', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 691200
AND gc_grace_seconds = 86400
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0

因此,从本质上讲,旧表的数据目录中的所有数据现在都应该过期了。但我看到目录不是空的,并且仍然占用空间(~900MB)。但是当我检查日期时,这些目录的最后一次更新是 1 周前。所以从技术上讲,它们可以安全地被删除。但是有没有更好、更安全的方法来删除或清除这些目录,而不会弄乱生产数据?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    当您删除一个表时,它不再受 Cassandra 控制,因此不会对其执行任何活动,例如旧数据的到期。当drop table 发出时,Cassandra 应该为一个表创建一个快照,名称类似于dropped-<timestamp>-<table-name>。您可以手动从每个节点中删除此快照(最后的手段),或者更好地使用命令nodetool clearsnapshot -t snapshot_name

    【讨论】:

      猜你喜欢
      • 2023-02-24
      • 2021-07-27
      • 2022-10-05
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 2021-02-19
      相关资源
      最近更新 更多