DROP COLUMN FAMILY from cassandra CLI will not drop the CF

泄露秘密 提交于 2019-12-07 11:57:02

问题


We tried to drop CF's using cassandra cli

DROP COLUMN FAMILY cfName

And when we list the CF from CLI it was not there and when i tried to get the existing CF's via hector

I still could see the CF name

   KeyspaceDefinition keyspaceDefinition = newConnection().describeKeyspace(keyspaceName);
    keyspaceDefinition.getCfDefs();

Data inside the CF is not there however, the CF is still listed, after listing the CFs via hector if i do a cassandra -cli list column families i can see my deleted CF again


回答1:


I had to deal with this issue back on Cassandra 1.1 as well. Basically, my column family had become corrupted, and the only way to alter its schema, was to drop/restore the keyspace (which DataStax walked me through, at the time).

If you have a support contract with DataStax, I would HIGHLY recommend contacting them before proceeding. The first thing they'll tell you, is that this is a bug in specific versions of Cassandra 1.1, and that you should upgrade. I haven't tested it, but according to them an in-place upgrade would allow you to modify your schema in the new version. So you might be able to fix this by upgrading to 1.2 or 2.0.

In my case (production, enterprise environment) upgrading on-the-spot was not an option. To fix this, I basically had to drop my entire keyspace, re-create it (and my column families), and recover from a snapshot. I loosely followed the instructions found here:

  • Take a snapshot of the keyspace on each node. The snapshot files should be stored in the [keyspaceName]/snapshots dir, but I copied mine to another non-Cassandra location just to be on the safe side.
  • DROP your keyspace.
  • Stop all nodes.
  • On each node, delete the .db files in the keyspace directory (but not the snapshot dir).
  • Copy the files from the snapshot directory back into the keyspace directory.
  • Restart one node
  • From that node's cassandra-cli re-create your keyspace.
  • Verify that your data is there.
  • Restart the remaining nodes.


来源:https://stackoverflow.com/questions/22982954/drop-column-family-from-cassandra-cli-will-not-drop-the-cf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!