我们有一个带有 NFS 主目录的典型帐户域,可由邮件服务器以及各种用户工作站访问。
vacation
邮件服务器和工作站上安装的软件包版本是否需要匹配?
我的理解是,该vacation
程序使用 Berkeley DB 来跟踪它已经自动回复的发件人,以免向同一发件人发送两次退回邮件。如果数据库是在vacation
链接到 Berkeley DB 的一个版本的工作站上创建的,并且随后由 MDA 使用,而vacation
邮件服务器上的数据库链接到 Berkeley DB 的其他版本,该怎么办?这会导致失败吗?
根据Oracle文档,
Berkeley DB 主要和次要版本可以选择包括所有四个方面的更改,即应用程序 API、区域文件、数据库格式和日志文件可能不向后兼容以前的版本。
所以我担心让不同版本的 Berkeley DB 库访问相同的~/.vacation.{db,dir,pag}
文件可能会导致数据损坏。
答案1
是的,vacation
确实将 Berkeley DB 用于您所描述的目的。
确实,你可以如果您尝试使用不同版本的客户端库访问相同的 Berkeley DB 文件,则会遇到问题。磁盘格式确实会不时发生变化,并且升级通常由客户端应用程序透明地处理(或使用脚本手动处理db_upgrade
)。数据库文件升级后,无法保证使用以前版本的客户端库的客户端能够访问已升级的数据库文件。有鉴于此,vacation
为了安全起见,在整个资产中同步版本可能是一个谨慎的步骤。
还有另一个问题(尽管可能很小)——通过 NFS 访问 Berkeley DB 时可能会遇到并发访问问题。请参阅常问问题了解更多信息。我想这可能不是一个大问题,因为它vacation
不是一个交易处理系统。