在 Domino 数据库管理中,压缩命令是优化数据库性能、释放存储空间的重要操作,Domino 数据库在使用过程中,由于文档的增删改、附件的添加与删除等操作,会产生大量碎片空间,导致数据库文件体积膨胀、访问效率下降,通过定期压缩,可以有效整理数据结构,回收未使用的空间,并可能修复 minor 数据库损坏。

Domino 数据库压缩命令详解
Domino 提供了多种压缩方式,可通过 Notes 客户端、服务器控制台或 Domino Designer 执行,核心命令为 COMPACT,不同场景下,压缩命令的参数和效果有所差异,以下是具体说明:
压缩命令的基本语法
在 Domino 服务器控制台或客户端命令窗口中,压缩命令的基本格式为:
COMPACT 数据库路径 [选项]
数据库路径 需使用完整路径,mail\user.nsf(相对数据目录)或 C:\Domino\data\mail\user.nsf(绝对路径)。选项 参数用于指定压缩类型,如 -C(标准压缩)、-D(删除未使用空间)、-M(维护模式压缩)等。
常见压缩选项及功能说明
以下是常用压缩选项的对比:
| 选项 | 全称 | 功能描述 | 适用场景 |
|---|---|---|---|
-C |
Compact | 标准压缩,整理碎片但不释放空间 | 日常维护,减少碎片 |
-D |
Deallocate | 删除未使用空间,缩小数据库文件体积 | 需要释放存储空间时 |
-M |
Maintenance | 维护模式压缩,包含 -C 和 -D 功能,并尝试修复 minor 损坏 |
数据库性能明显下降或怀疑损坏时 |
-K |
Keep Replica ID | 压缩时保留复制 ID,避免复制冲突 | 需要保持数据库复制关系的场景 |
-Z |
Force Compress | 强制压缩,即使数据库正在使用 | 紧急修复,可能影响用户访问 |
不同环境下的执行方式
- 服务器控制台:以管理员身份登录 Domino 服务器控制台,输入
COMPACT 数据库路径 [选项],压缩邮件数据库mail\test.nsf并释放空间:COMPACT mail\test.nsf -D。 - Notes 客户端:选择数据库,右键点击“属性”→“高级”→“压缩”,勾选“删除未使用空间”并执行。
- Domino Designer:在“应用程序”视图中右键数据库,选择“压缩”或通过公式语言
@Command([CompactDatabase])触发。
注意事项
- 数据库锁定:压缩过程中,数据库会被锁定,用户可能无法访问,建议在低峰期执行,尤其是
-M或-Z选项。 - 复制冲突:若压缩后数据库复制 ID 发生变化(未使用
-K),可能导致复制冲突,需谨慎操作。 - 备份优先:压缩前务必备份数据库,避免因意外损坏导致数据丢失。
- 日志监控:通过服务器日志(
LOG compact)查看压缩进度和结果,确保成功完成。
相关问答 FAQs
Q1: 压缩 Domino 数据库时,用户无法访问怎么办?
A: 压缩操作会锁定数据库,导致用户短暂无法访问,建议选择服务器负载较低的时段(如夜间)执行压缩,或使用 -M 选项时提前通知用户,若必须在线压缩,可尝试 -K 选项减少锁定时间,但大型数据库仍可能影响性能,对于关键业务数据库,建议采用滚动压缩(分批次压缩用户数据库)。

Q2: 压缩后数据库文件大小未减少,是什么原因?
A: 可能的原因包括:
- 数据库未使用空间较少(频繁删除文档后已自动回收碎片);
- 使用了
-C选项仅整理碎片未释放空间; - 数据库包含大量不可压缩内容(如加密字段、附件存储在 NSF 外部)。
建议改用-D或-M选项,并检查数据库设计是否包含大量冗余数据(如过期文档未归档),若问题持续,可通过SHOW STAT database命令查看数据库状态,或考虑使用FIXUP命令修复潜在损坏。

