是否有任何快速的方法可以从本地数据库中删除所有数据?像sql" drop database'?
我正在查看文档,但还没有发现任何有趣的东西。
" cli"方式
使用提供的fdbcli
接口,您可以使用单个clearrange
命令清除数据库中的所有键,例如:
fdb> writemode on
fdb> clearrange "" xFF
Committed (68666816293119)
请警告它立即执行,并且没有撤消!
此外,仍连接到数据库的任何应用程序都可以使用缓存目录子空间前缀继续读取/编写数据,这可能会引入数据损坏!您应该确保在没有积极使用群集的情况下仅使用此方法。
此方法要求您的群集处于工作状态,并且不会立即收回磁盘上使用的空间,也不会重置群集的读取版本。
"硬"方式
如果您有单个节点群集,则可以停止FDB服务,删除其data_dir
文件夹中的所有文件,重新启动服务,然后使用fdbcli
,执行configure new single ssd
命令。
这将回收以前使用的磁盘空间,并将所有内容重置回到安装后状态。
您可以通过清除整个键来做到这一点。
在Python中,看起来像这样:
Database.clear_range('', 'xFF')
其中''是默认切片开始,而' xff'是默认切片结束,根据clear_range
文档。
您可以在文档中使用的API找到有关clear_range的更多信息。
在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;
});