firebird - firebird gfix 扫不干净
问题描述
我在使用 gfix sweep 命令时遇到了问题,因为它不会清理垃圾收集器。能有什么问题。数据库备份大小比数据库本身小 900mb。如果手动启动的 gfix 扫描不起作用,会有什么问题?
解决方案
备份更小,因为它不包含索引,而仅包含数据库数据本身,并且仅包含最新提交的事务的数据,不包含较早的记录版本。此外,备份的存储格式效率更高,因为它是串行写入和读取的,不需要数据库本身使用的更复杂的布局。
换句话说,在几乎所有情况下,备份都会比数据库本身小,有时甚至小得多(如果您有很多索引或大量事务流失或大量 blob)。
Firebird 中的垃圾收集会删除旧的记录版本,sweep 也会清理交易信息。也不会释放分配的页面,即:数据库文件不会收缩。请参阅Firebird 了解数据库专家:第 4 集 - OAT、OIT 和 Sweep
如果你想收缩一个数据库,你需要备份和恢复它,但通常不需要这样做:Firebird 会自动重用其数据页上的可用空间。
推荐阅读
- vue.js - 如何在 nativescript 中设置 qty 的 ID
- python - Tensorflow ModuleNotFoundErrors 并无法加载本机运行时
- android - Android Gradle依赖重复类错误
- python - Python将具有\和“和'的动态字符串放入mysql表
- java - 触发 ListSelectionListener 操作,但在第二次单击后显示 JDialog
- python - 机器学习的钢琴音符数据集?
- git - 如何返回 PyCharm 中的半合并文件并继续合并?
- python - 错误 - **情感分析**的预测中的“具有多个元素的数组的真值不明确”
- arrays - Java中的项目数组
- amazon-web-services - AWS lambda - 如何从 AWS 服务中了解事件格式