是否有任何快速方法从本地数据库中删除所有数据?比如SQL 'drop数据库‘?
我正在翻阅文档,但还没有发现任何有趣的地方。
发布于 2014-01-29 03:35:26
您可以通过清除整个密钥范围来完成此操作。
在Python中,如下所示:
Database.clear_range('', '\xFF')根据clear_range文档,其中'‘是默认的切片开始,'\xFF’是默认的切片结束。
您可以为您在clear_range中使用的API找到更多关于文档的信息。
发布于 2018-07-12 12:54:46
"CLI“方式
使用提供的fdbcli接口,可以使用单个clearrange命令清除数据库中的所有键,如下所示:
fdb> writemode on
fdb> clearrange "" \xFF
Committed (68666816293119)请注意,它立即执行,并且没有撤销的可能!
此外,任何仍然连接到数据库的应用程序都可以使用缓存的目录子空间前缀继续读取/写入数据,这可能会导致数据损坏!您应该确保只在没有任何活动使用群集的情况下才使用此方法。
此方法要求群集处于工作状态,它不会立即恢复磁盘上使用的空间,也不会重置群集的读取版本。
的“硬”方式
如果您有一个单节点集群,则可以停止fdb服务,删除其data_dir文件夹中的所有文件,重新启动服务,然后使用fdbcli执行configure new single ssd命令。
这将回收以前使用的磁盘空间,并将所有内容重置回安装后状态。
发布于 2018-07-30 02:24:20
若要在Java中以编程方式执行此操作,请执行以下操作:
db.run(tx -> {
final byte[] st = new Subspace(new byte[]{(byte) 0x00}).getKey();
final byte[] en = new Subspace(new byte[]{(byte) 0xFF}).getKey();
tx.clear(st, en);
return null;
});https://stackoverflow.com/questions/21417785
复制相似问题