上一页    目录    索引    下一页
iPlanet Messaging Server 5.2 管理员指南

第 11 篇 邮件存储库的管理


本章说明邮件存储库和邮件存储库管理界面。本章包括以下各节:


概要

邮件存储库中包含有特定 Messaging Server 实例的用户信箱。邮件存储库的大小随着邮箱、文件夹、日志文件等的数量的增加而增长。您可通过下列方法控制存储库的大小:指定邮箱的容量限度(磁盘空间配额),指定邮件总数的最大允许限度和设置存储库中邮件的时限策略。

随着系统中用户数量的不断增加,对磁盘存储空间的需求也随之增加。邮件存储库需配备的物理磁盘数量(一个或多个)取决于服务器所支持的用户数量。将另外的磁盘空间整合到系统上的方法有两种。最简单的方法是添加另外的分区。还可以选择性地添加另外的 Messaging Server 实例,分别对特定的邮件存储库负责。但是,此方法更为复杂。

另外,如果要支持多个托管域,则应为单独的大型网域配置专用的服务器实例。您可通过此种配置为特定的域指定存储库管理员。还可以通过添加更多分区扩展邮件存储库。

为了便于邮件存储库的管理,iPlanet Messaging Server 不仅提供了 iPlanet Console 界面,而且还提供了一套命令行实用程序。有关这些命令行实用程序的说明,请见表 11-1。有关使用这些实用程序的信息,请参见“维护和恢复作业”iPlanet Messaging Server Reference Manual


表 11-1 邮件存储库命令行实用程序


实用程序

说明

configutil

用于设置和修改存储库的配置参数。

deliver

直接将邮件传递到可由 IMAP 或 POP 邮件客户程序访问的邮件存储库。

hashdir

用于确定保含特定用户邮件存储库的目录。

iminitquota

从 LDAP 目录中重新初始化配额限制并重新计算使用的磁盘空间。

imsasm

处理用户邮箱的保存和恢复。

imsbackup

备份储存的邮件。

imsexport

将 Certificate Management System 邮箱导出到 UNIX /var/mail 格式文件夹。

imsrestore

用于恢复备份的邮件。

imscripter

IMAP 服务器协议脚本工具。执行命令或序列命令。

mboxutil

用于列示、创建、删除、重命名、移动邮箱,并报告空间配额使用情况。

mkbackupdir

创建和保持备份目录与在邮件存储库中信息的同步。

MoveUser

用于将用户帐户从一个邮件服务器移动到另一个邮件服务器。

quotacheck

计算在邮件存储库中每个用户的总邮箱大小,并将其与指定的配额进行比较。

readership

用于在共享 IMAP 文件夹中收集 readership 信息。

reconstruct

用于重建损坏的邮箱。

stored

用于执行各项后台任务和日常任务,清除和删除储存在磁盘中的邮件。


邮件存储库目录布局



图 11-1 所示为某服务器实例的邮件存储库目录布局。邮件存储库在设计上可为邮箱内容的存取提供快速访问能力。有关存储库目录的说明,请见表 11-2

图 11-1 邮件存储库目录布局


例如,示例性的目录路经可以是:

server_root/msg-instance/store/partition/primary/=user/53/53/=mack1


表 11-2 邮件存储库目录说明


位置

内容/说明

server_root/msg-instance/
store/

邮件存储库的顶层目录。包含 mboxlistuserpartition 三个子目录。

.../store/mboxlist/

包含一个数据库(Berkley DB),存储有与服务器中的邮箱有关的信息以及存储空间配额方面的信息。
文件 folder.db 中包含与邮箱有关的信息,其中包括存储邮箱的分区的名字、ACL 以及 store.idx 中某些信息的副本。在 folder.db 中,每个邮箱都有一个条目。
文件 quota.db 中包含有关空间配额及其用量方面的信息。在 quota.db2 中,每个用户都有一个条目。
文件 peruser.db 中包含有关每个用户标志的信息。这些标志表明某用户是否看过或删除了某个邮件。

文件 subscr.db 中包含有关用户订阅方面的信息。

.../store/user/

未使用

.../store/partition/

包含默认的 primary 分区。还可在此分区中放置任何您自定义的子分区。

/partition/=user/

包含分区子目录中的所有用户邮箱。邮箱存储散列结构以利便于快速搜索。需要寻找含有特定用户邮箱的目录时,须使用 hashdir 实用程序。

/=user/hashdir/hashdir/
userid/

ID 为 userid之用户的顶层邮件夹。对默认域而言,useriduid。对于托管域而言,useriduid@domain。邮件即被传递到这个邮件夹中。

/userid/folder

用户定义的文件夹。

/userid/store.idx

一个索引,它提供了下列与存储在目录 /userid/ 中的邮件有关的信息:邮件数量、邮箱使用的空间配额、上一次向邮箱添加邮件的时间、邮件标志、每封邮件的可变长度信息,其中包括报头和 MIME 结构,以及每封邮件的大小等信息。对于每个用户而言,该索引还包含 mboxlist 信息的备份副本和每个用户的空间配额信息的备份副本。

/userid/store.usr

包含一个用户列表,即访问过该文件夹的用户。对于列出的每个用户,包含用户上一次访问该文件夹的时间、用户已查看邮件的列表和用户已删除邮件的列表。

/userid/store.exp

包含一个邮件文件列表,即已清除、但尚未从磁盘中去除的邮件文件。该文件只在有被清除邮件的情况下才会出现。

/userid/store.sub

包含与用户订用情况有关的信息。

/userid/nn/

这是一个散列目录,其中含有 msgid.msg 格式的邮件,这里的 nn 可以是从 00 到 99 的任一数字。

例如,邮件 1 至 99 存储于 00 目录中,邮件 100 至 199 存储于 01 目录中,邮件 9990 至 9999 存储于 99 目录中,邮件 10000 至 10099 存储于 00 目录中,依此类推。


存储库如何清除邮件



存储库中邮件的清除分三步进行:

  1. 删除(Delete)。客户标记要删除的邮件。此时,客户程序可以通过移除“删除”记号,恢复此邮件。

  2. 清除(Expunge)。客户或指定的时限策略从邮箱中清除已有删除标记的邮件。邮件一旦被清除,客户就再也不能将之恢复,但这些邮件仍然存储在磁盘中。(已连接到同一邮箱的第二个客户仍然能够取出这些被清除邮件。)

  3. 清理(Cleanup)。用 stored 实用程序从磁盘中抹掉任何已清除至少一个小时的邮件。

还可以通过设置 expire(失效)选项清除邮件。服务器根据 configutil 定义的时限策略删除邮件。时间耗尽,邮件即被清除,但在清理之前它们并没有从物理上移除。(参阅“指定时限策略”。)


指定管理员的存储库访问权限



邮件存储库管理员可以查看和监控用户邮箱并为邮件存储库指定访问控制。存储库管理员具有代理认证权限,可以访问任何服务(POP、IMAP、HTTP 或 SMTP),这意味着他们可用任何用户的权限,经认证访问任何服务。存储库管理员可通过这些权限运行某些实用程序来管理存储库。例如,存储库管理员可用 MoveUser 将用户的帐户和邮箱从一个系统移到另一个系统。

本节讨论如何为安装的 Messaging Server 系统赋予邮件存储库的存取权限。


备注: 其他用户也可能拥有访问存储库所需的管理员权限。例如,若你处站点使用 Delegated Administration(DA)产品,顶层 DA 管理员在默认状态下具有对邮件系统中所有 Messaging Server 的存储权。而 DA 域管理员在默认状态下只具有其管辖域的存储权限。有关 DA 管理员的更多信息,参见 iPlanet Messaging Server Provisioning Guide 和 DA 文档。



可以执行如下段落所描述的任务:

可以用 configutil 命令或 Console 来指定管理员访问存储库的权限。

如果用 Console,请按下列步骤操作:

  1. 从 Console 中打开需配置的 Messaging Server。

  2. 单击“配置”选项卡并选择左面板中的“邮件存储库”。

  3. 单击右面板中的“管理员”选项卡。


添加管理员

Console 若需通过 Console 添加一个管理员条目,请按下列步骤操作:

  1. 单击“管理员”选项卡。

    选项卡中包含现有管理员 ID 的列表。

  2. 单击“管理员 UID”窗口旁边的“添加”按钮。

  3. 在“管理员 UID”字段中键入要添加的管理员的用户 ID。

    您键入的用户 ID 必须是 iPlanet Directory Server 知道的用户标识。

  4. 单击“确定”将管理员 ID 添加到“管理员”选项卡中显示的那个列表中。

  5. 单击“管理员”选项卡中的“保存”按钮以保存新修改过的管理员列表。

命令行 若需通过命令行添加管理员条目,请输入下列命令行:

configutil -o store.admins -v "adminlist"

其中 adminlist 是一个以空格分隔的管理员 ID 列表。如果需指定多个管理员,必须用引号将列表括起来。


修改管理员条目

Console 若需通过 Console 修改邮件存储库“管理员 UID”列表中现有的条目,请按下列步骤操作:

  1. 单击“管理员”选项卡。

  2. 单击“管理员 UID”窗口旁边的“编辑”按钮。

  3. 在“管理员 UID”字段中输入改动。

  4. 单击“确定”提交所做的改动并关闭“编辑管理员”窗口。

  5. 单击“管理员”选项卡中的“保存”按钮以提交和保存修改的管理员列表。

命令行 若需通过命令行修改邮件存储库“管理员 UID”列表中现有的条目,请输入下列命令行:

configutil -o store.admins -v "adminlist"


删除管理员条目

Console 若需通过 Console 删除邮件存储库“管理员 UID”列表中的一个条目,请按下列步骤操作:

  1. 单击“管理员”选项卡。

  2. 选择“管理员 UID”列表中的一个条目。

  3. 单击“删除”后即可删除该条目。

  4. 单击“保存”按钮以提交和保存对管理员列表所做的改动。

命令行 若需通过命令行删除存储库管理员,可按如下方式编辑管理员列表:

configutil -o store.admins -v "adminlist"


关于邮件存储库空间配额



本节包含下列信息:


用户空间配额

您可通过指定用户邮箱大小的限度来限制邮件存储库的大小。可指定的空间配额类型有下列:

空间配额信息以 LDAP 属性和配置变量的形式存储。如果启用了空间配额管制功能,Messaging Server 则检查空间配额高速缓存和配置文件,以确保在将邮件插入到邮件存储库之前空间配额未超限。如果启用了空间配额通知功能,系统将在磁盘空间配额超限时向用户发送出错讯息。还可通过设置使服务器在用户接近配额限度时发送警告讯息。

既可为所有用户设置默认的空间配额,也可为单个用户单独设置空间配额。确定一用户是否超出空间配额时,Messaging Server 首先检查是否为该用户单独设置了空间配额。如果没有设置,Messaging Server 接着查看为所有用户设置的默认空间配额。

如果一个用户的邮件超过了配额,则来件保留在 MTA 队列中,直到以下情况之一出现:

(1)所有用户的邮件总量或总数不再超限,此时服务器将邮件传递给用户。(2)未传递的邮件保留在 MTA 队列中的时间长于指定的宽限期。请参阅“设置宽限期”

当用户删除并擦去邮件,或当服务器根据已建立的时限策略删除邮件后,磁盘空间变为可用。


域空间配额和家庭群组空间配额

您还可为某一特定的域或某个域中的家庭群组设置空间配额。这两种空间配额是非强制性的,但可用于报告目的。


Telephony Application Server 的例外情况

为了支持统一的邮件传输要求,Messaging Server 提供为邮件存储库所利用的重设配额限制的能力。这可保证已被某些代理,即电话应用服务器(TAS)接受了的邮件的传递。TAS 所接收的邮件是通过特殊的 MTA 通道路由传输的,这就保证了无论是否超出空间配额限度邮件都能传递到存储库。有关配置 TAS 通道的详细情况,请参阅第 8 篇 “配置通道定义”


配置邮件存储库空间配额



您可通过 iPlanet Console 或用 configutil 命令为所有用户设置默认的空间配额。也可为单个用户、家庭群组以及托管域设置空间配额。

本文说明如何设置默认空间配额。有关为单个用户、家庭群组以及域设置空间配额的详细信息,请参阅Delegated Administrator 用户指南

本节说明下列任务:

如果用 iPlanet Console,请按下列步骤操作:

  1. 从 iPlanet Console 中打开需配置的 Messaging Server。

  2. 单击“配置”选项卡并选择左面板中的“邮件存储库”。

  3. 单击右面板中的“空间配额”选项卡。


指定默认用户配额

默认空间配额适用于那些尚未为之单独设置空间配额的用户。为单独用户设置的空间配额将取代默认空间配额。

Console 通过 Console 指定默认空间配额:

  1. 单击“空间配额”选项卡。

  2. 若要为“默认用户磁盘配额”字段指定默认用户磁盘配额,请选择下列选项之一:

    无限(Unlimited)。如果不需要设置默认的空间配额,请选择此项。

    指定大小(Size specification)。如果需要将磁盘空间配额限定为指定的大小,请选择此项。在按钮旁的字段中键入一个数字,并从下拉列表中选择 MB(Mbytes,兆字节)或 KB(Kbytes,千字节)。

  3. 若要在“默认用户邮件配额”复选框中指定邮件的配额数,请键入一个数字。

  4. 单击“保存”。

命令行 若需为邮件总量指定一个默认的用户磁盘空间配额,请按下列步骤操作:

configutil -o store.defaultmailboxquota -v [ -1 | number ]

其中 -1 表示没有配额; number 表示字节数。

若需为总邮件数指定一个默认的用户空间配额,请按下列步骤操作:

configutil -o store.defaultmessagequota -v [ -1 | number ]

其中 -1 表示没有配额;number 表示邮件数。


启用空间配额管制和空间配额通知功能

您可通过设置启用或关闭空间配额管制和空间配额通知功能。服务器的操作取决于这两个配置变量是如何设置的,如表 11-3 所示。

表 11-3 空间配额管制和空间配额通知


启用管制

关闭管制

启用通知

邮件将在指定的宽容限期内延缓传递,期满则拒收。邮件不能添加到邮箱中。

IMAP SELECT、IMAP APPEND、SMTP 发送邮件机制和 deliver 命令将显示出错讯息。

邮件被传递到存储库。邮件能够添加到邮箱中。

IMAP SELECT、IMAP APPEND、SMTP 发送邮件机制和 deliver 命令不显示出错讯息。

关闭通知功能

邮件将在指定的宽容限期内延缓传递,期满则拒收。邮件不能添加到邮箱中。

IMAP SELECT 命令、deliver 命令以及 SMTP 发送邮件机制不显示出错讯息。

IMAP APPEND 命令将显示出错讯息。

邮件被传递到存储库。邮件能够添加到邮箱中。

IMAP SELECT、IMAP APPEND、SMTP 发送邮件机制和 deliver 命令不显示出错讯息。


启用空间配额管制功能

Console 通过 Console 启用空间配额管制功能:

  1. 单击“空间配额”选项卡。

  2. 选中“启用空间配额强制”复选框。

    此复选框为切换开关。需关闭空间配额通知功能时,取消此复选框的选中状态即可。

  3. 单击“保存”。

命令行 通过命令行启用空间配额管制功能:

configutil -o store.quotaenforcement -v [ yes | no]

如果指定 no,空间配额不会强制实施。


启用空间配额通知功能

Console 通过 Console 启用空间配额通知功能:

  1. 单击“空间配额”选项卡。

  2. 选中“启用空间配额通知”复选框。

    此复选框为切换开关。需关闭空间配额通知功能时,取消此复选框的选中状态即可。

  3. 定义配额警告讯息

    请参阅“定义空间配额警告讯息”

  4. 单击“保存”。

命令行 通过命令行启用空间配额通知功能:

configutil -o store.quotanotification -v [ yes | no ]
configutil -o store.quotaexceededmsg -v message

如果没有设置邮件,则将没有配额警告讯息发送到用户。


定义空间配额警告讯息

可以像下面这样定义警告讯息,以便在用户超出其磁盘空间配额时发送给用户。警告讯息将发送到用户的邮箱。

Console 通过 Console 定义空间配额警告讯息:

  1. 单击“空间配额”选项卡。

  2. 从下拉列表中选择要使用的语言。

  3. 在下拉表列下方的邮件文本字段中键入想要发送的邮件。

  4. 单击“保存”。

命令行 通过命令行定义空间配额警告讯息:

configutil -o store.quotaexceededmsg -v message

其中的邮件必须是 RFC 822 格式。

定义警告讯息发送的频度:

configutil -o store.quotaexceedmsginterval -v number

其中 number 表示天数。例如,3 的意思是每 3 天发送一次邮件。


指定空间配额阈值

通过指定一个空间配额阈值,可以在 IMAP 用户超过其磁盘空间配额之前向他们发送警告讯息。当某用户的磁盘用量超出指定的阈值时,服务器就向该用户发送一则警告讯息。

对于其客户机支持 IMAP ALERT 机制的 IMAP 用户,每当用户选择一个邮箱时,警告讯息就会显示在用户的屏幕上(该邮件同时写入 IMAP 日志)。

Console 通过 Console 指定空间配额阈值:

  1. 单击“空间配额”选项卡。

  2. 在“空间配额警告阈值”字段,输入一警告阈数值。

    这个数字表示允许空间配额的百分比。例如,若指定 90%,该用户则在允许磁盘空间配额的 90% 被后得到警告。默认值为 90%。若需关闭此功能,输入 100%。

  3. 单击“保存”。

命令行 通过命令行指定空间配额阈值:

configutil -o store.quotawarn -v number

其中 number 表示允许配额的百分比。


设置宽限期

宽限期指定在邮件被退回到发件人之前,邮件可以超过配额(磁盘空间或邮件数)的时间。邮件被 MTA 接受,但保留在 MTA 队列中,直到以下情况之一出现才会传递到邮件存储库:

例如,如果宽限期设置为两天,而超过配额的时间为一天,新邮件将继续被接收并滞留在队列中,并且传递尝试将继续。第二天后,邮件被退回。

备注: 宽限期不是邮件将在队列中滞留的时间,而是在包括在队列中的那些邮件在内的所有来件被退回之前,邮箱超过配额的时间。



Console 通过 Console 设置邮件滞留于队列中的宽容限期:

  1. 单击“空间配额”选项卡。

  2. 在“超过空间配额宽限期”字段中,输入一个数字。

  3. 从下拉列表中指定 Day(s)Hour(s)

  4. 单击“保存”。

命令行 通过命令行指定空间配额宽容期限:

configutil -o store.quotagraceperiod -v number

其中 number 表示小时数。


指定时限策略



时限策略是另一种控制服务器磁盘用量的手段。可以控制邮件在一个或多个邮箱中的存储时间。如果磁盘空间很有限,则可能需要设置时限策略,以便从存储库中删除邮件。如果设置了时限策略,则应教育用户了解这些策略,因为服务器在将邮件从存储库中删除之前不会发送警告讯息。

可基于下列标准创建时限规则:

如果为一邮箱指定了多个规则,所有指定的期满删除规则都将适用,但最严格的规则先行。例如,假定将两条规则应用于一个邮箱。第一条规则允许 1000 封邮件;第二条规则允许 500 封邮件。当出现过期现象时,服务器将删除邮箱中的邮件,直到剩下 500 封为止。再举一个例子。若第一条规则允许邮件的大小为 100,000 字节并滞留 3 天,第二条规则允许邮件的大小为 1000 字节并滞留 12 天,则作为结果的规则是将这两条规则合并,允许邮件的大小为 100,000 字节,滞留 3 天。服务器将删除超过 100,000 字节且在邮箱中滞留了 3 天的所有邮件。对于特定的邮箱或邮箱组,如果想确保一个特定的规则是其唯一的规则,则须使用 Exclusive 参数。

Console 通过 Console 创建新规则:

  1. 从 iPlanet Console 中打开需配置的 Messaging Server。

  2. 单击“配置”选项卡并选择左面板中的“邮件存储库”。

  3. 单击右面板中的“时限”选项卡。

  4. 单击“添加”转到“添加规则”窗口。

  5. 输入新规则的名称。

  6. 指定此规则适用的目标文件夹。

    可以输入路径名、文件名或部分字串。可以按如下说明使用 IMAP 统配符:

    * - 匹配任何字符序列。
    % - 匹配任何除斜杠外的任何字符序列。

    新规则只适用于匹配所指定之模式的文件夹。

  7. 如果此规则是适用目标文件夹的唯一规则,则单击“专用”复选框。

  8. 如果要创建基于文件夹大小的规则,请遵照下面的步骤:

    • 在“邮件计数”字段中,指定在最老的邮件被移除前在文件夹中滞留邮件的最大数量。

    • 在“文件夹大小”字段中指定表示文件夹大小的数字;从相关连的下拉列表中选择 MB 或 KB。

    当超出指定的文件夹大小时,服务器将删除最老的邮件,直到该大小不再超出为止。

  9. 如果要创建一个基于时限的规则,须在“天数”字段指定一个数字,用以表示邮件滞留于文件夹的天数。

  10. 如果要创建基于邮件大小的规则,请按下列步骤操作:

    • 在“邮件大小限制”字段中输入一个数字,用以表示文件夹中允许的最大邮件大小;从相关连的下拉列表中选择 MB 或 KB。

    • 在“宽限期”字段中,输入一个表示超过指定大小的邮件应该滞留在文件夹中时间的数字。

    过了宽容限期,服务器将删除那些超大邮件。

  11. 单击“确定”将新规则添加到“时限规则”列表并关闭“添加”窗口。

  12. 单击“保存”按钮以提交并保存现行的“时限规则”列表。

命令行 通过命令行创建新规则须使用下面的命令,其中 name 是为规则取的名字:请注意,这里描述的仅仅是最经常使用的 store.expire* 选项。有关完整的列表,请参见 iPlanet Messaging Server Reference Manual

指定此规则适用的目标文件夹时,请按下列操作:

configutil -o store.expirerule.name.folderpattern -v pattern

例如,模式 user/* 匹配任何文件夹;模式 user/%@siroe.com/* 匹配在 siroe.com 域中所有用户的全部文件夹;而模式 user/%/Trash 则匹配所有用户的 Trash 文件夹。

若需将此规则指定为适用于目标文件夹的唯一规则,请按下列操作:

configutil -o store.expirerule.name.exclusive -v [ yes | no ]

若需指定在最老的邮件被删除之前可滞留于文件夹中的邮件的最大数量,请按下列操作:

configutil -o store.expirerule.name.messagecount -v number

指定文件夹大小时,请按下列操作:

configutil -o store.expirerule.name.foldersizebytes -v number

其中 number 是字节的大小。

指定邮件时限时,请按下列操作:

configutil -o store.expirerule.name.messagedays -v number

其中 number 表示天数。

指定邮件大小时,请按下列操作:

configutil -o store.expirerule.name.messagesize -v number

其中 number 是字节的大小。

若需指定超大邮件可在文件夹中滞留的时间,请按下列操作:

configutil -o store.expirerule.name.messagesizedays -v number

其中 number 表示天数。


指定失效时间和天

指定失效时间和天:

configutil -o store.expirestart -v time (示例:23 是 11:00PM)
configutil -o local.store.expire.workday -v day (0-6,0 是星期日)

local.store.expire.workday 设置为 -1 或大于 6 的值将禁用失效/清理。stored 将每天在 store.expirestart 指定的时间检查此配置变量。如果没有设置 local.store.expire.workday,则默认为每天运行。在更改此变量后,不需要重新启动 stored


配置邮件存储库分区



在默认状态下,所有用户邮箱储存在目录 msg-instance/store/partition/ 中。目录 partition 是一逻辑目录,其中可包含一个或多个子分区。子分区可映射单个物理磁盘,也可映射多个物理磁盘。在启动时,目录 partition 中只包含一个子分区,称做 primary 分区。

必要时可将分区添加到 partition 目录中。例如,有可能需要按如下方式划分一个单独的磁盘来组织用户:

msg-instance/store/partition/mkting/
msg-instance/store/partition/eng/
msg-instance/store/partition/sales/

随着磁盘存储量的加,可能需要将这些分区映射到不同的磁盘驱动器。

应该限制任何一个磁盘中邮箱的数量。在多个磁盘上合理地分布邮箱可提高邮件传递时间(但并不改变 SMTP 的接收速率)。为每个磁盘分配多少邮箱数量取决于磁盘容量和分配给每个用户的磁盘空间大小。例如,为每个用户分配的磁盘空间越少,为每个磁盘分配的邮箱就可越多。

如果邮件存储库需要多个磁盘,可使用 RAID(冗余廉价磁盘阵列)技术以简化多磁盘管理。RAID 技术可将数据分布在一系列磁盘中,但这些磁盘以一个逻辑磁盘卷出现,因此简化了磁盘的管理。还可为冗余目的使用 RAID 技术,即为了故障恢复目的而对存储的数据进行备份。


备注: 为改进磁盘存取速度,邮件存储库和邮件队列应驻留在不同的磁盘中。




添加分区

添加分区时,您须指定磁盘存储分区的绝对物理路径和称为分区别名的逻辑名。

您可通过分区别名将用户映射到一个逻辑分区名,而不管其具体的物理路径为何。在为用户设立帐户和指定邮件存储库时,可以使用这个分区别名。输入的别名必须是由字母数字组成的名字,而且必须是小写。

在创建和管理分区时,用于运行服务器的用户 ID 必须具有针对相应物理路径所指定位置的写入许可。


备注: 添加一个分区后,必须停止并重新启动服务器,以刷新配置信息。



Console 通过 Console 添加存储库的分区:

  1. 从 iPlanet Console 中打开需配置的 Messaging Server。

  2. 单击“配置”选项卡并选择左面板中的“邮件存储库”。

  3. 单击右面板中的“分区”选项卡。

  4. 单击“添加”按钮。

  5. 输入分区别名。

    这是指定分区的逻辑名。

  6. 输入分区路径。

    这是指定分区的绝对路径名。

  7. 若需将此分区指定为默认分区,单击标有“使之成为默认分区”的复选框。

  8. 单击“确定”以提交此分区的配置条目并关闭窗口。

  9. 单击“保存”以提交并保存当前分区列表。

命令行 通过命令行添加存储库的分区:

configutil -o store.partition.nickname.path -v path

这里的 nickname 是分区的逻辑名,path 是存储分区的绝对路径名。

指定默认主分区的路径时,请输入:

configutil -o store.partition.primary.path -v path


将邮箱移动到其他的磁盘分区

默认情况下,邮箱是在 primary 分区内创建的。如果分区已满,额外的邮件将不能被储存。有几种解决这一问题的方法:

如果可能的话,我们推荐使用容量管理软件在系统上添加其他的磁盘,因为此过程对用户来说最为透明。不过,也可以使用下列方法将邮箱移动到其他的分区:

  1. 请确认在迁移过程中,用户与其邮箱是断开的。为此,可以通过通知用户在邮箱迁移过程中注销并保持注销状态,或通过设置 mailAllowedServiceAccess 属性,使 POP,IMAP 和 HTTP 服务在其注销后不再允许访问。(参见 iPlanet Messaging Server Provisioning Guide 的“Provisioning Users”一章)。

    备注: mailAllowedServiceAccess 设置为不允许 POP,IMAP,HTTP 访问并不断开任何到邮箱的打开连接。必须确保移动邮箱前关闭所有连接。



  2. 使用以下命令移动用户的邮箱:

    mboxutil -r user/<userid>/INBOX user/<userid>/INBOX <partition_name>

    示例:
    mboxutil -r user/ofanning/INBOX user/ofanning/INBOX secondary

  3. 将被移动用户的 LDAP 条目中的 mailMessageStore 属性设置为新分区的名称。

    示例:
    mailMessageStore: secondary

  4. 通知用户现在允许连接邮件存储库了。如果适用,更改 mailAllowedServiceAccess 的属性以允许 POP,IMAP 和 HTTP 服务。


维护和恢复作业

本节提供之信息与邮件存储库的维护和恢复任务所用的实用程序有关。应经常阅读 Postmaster 邮件以获知服务器可能发送的警告或报警信息。还应监视日志文件以了解服务器的运行状况。有关日志文件的详细信息,请参阅第 13 篇 “日志记录和日志分析”

本节包含以下内容:


管理邮箱

本节说明下列管理和监控邮箱的实用程序:mboxutilhashdirreadership


mboxutil 实用程序

mboxutil 命令用于执行各种典型的邮箱维护任务。这些任务包括:

也可用 mboxutil 命令查看有关空间配额方面的信息。有关详细信息,请参阅“监视配额限制”

表 11-4 中列示了 mboxutil 命令的选项。有关详细的语法和使用要求,请参见 iPlanet Messaging Server Reference Manual


表 11-4 mboxutil 选项


选项

说明

-a

列示所有用户空间配额信息。

-c mailbox

创建指定的邮箱。

-d mailbox

删除指定的邮箱

-f file

创建,删除或锁定指定数据文件中所列出的一个或多个邮箱。

-g group

列示指定组的空间配额信息。

-k mailbox cmd

在文件夹级锁定指定的邮箱,然后执行指定的命令,命令完成后解除锁定。

-l

列出服务器中的所有邮箱。

-p pattern

当与 -l 选项结合使用时,只列示其名字与 pattern 相匹配的那些邮箱。可使用 IMAP 通配符。

-q domain

列示指定域的空间配额信息。

-r oldname newname
[partition]

邮箱名从 oldname 更改为 newname。若需将一个文件夹从一个分区移到另一个分区,请用 partition 选项。

此选项可用于重命名一个用户。例如,mboxutil -r user/user1/INBOX user/user2/INBOX 将 user1 的所有邮件和邮箱移动到 user2,新的邮件将在新的收件箱中出现。(如果 user2 已经存在,此操作将失败)。

-u user

列示诸如邮件存储库当前大小、空间配额(如果设置了的话)、当前使用的空间配额百分比等用户信息。

-x

与 -l 选项结合使用时,显示邮箱的路径和访问控制。


邮箱命名约定
必须按下面的格式指定邮箱名:user/userid/mailbox,这里的userid 标识拥有邮箱的用户,mailbox 即邮箱的名字。对于托管域,useriduid@domain

例如,下面的命令可用于创建名为 INBOX 的邮箱,其用户 ID 是 crowe。对于传递到用户 crowe。的邮件,INBOX 是默认邮箱。

mboxutil -c user/crowe/INBOX

重要提示:这个 INBOX 名字是保留名,作为每个用户的默认邮箱名。INBOX 是唯一无需区分大小写的文件夹名。其他文件夹名都须区分大小写。


范例
列示所有用户的所有邮箱:

mboxutil -l

列示所有邮箱并包含路径和 ACL 信息:

mboxutil -l -x

为用户 daphne 创建名为 INBOX 的默认邮箱:

mboxutil -c user/daphne/INBOX

删除用户 delilah 的名为 projx 的邮件夹:

mboxutil -d user/delilah/projx

删除用户 druscilla 的名为 INBOX 的默认邮箱以及所有邮件夹

mboxutil -d user/druscilla/INBOX

将用户 desdemona 的邮件夹 memos 更名为 memos-april

mboxutil -r user/desdemona/memos user/desdemona/memos-april

锁定用户 dulcinea 的名为 legal 的邮件夹:

mboxutil -k user/dulcinea/legal cmd

这里的 cmd 是希望在文件夹被锁定过程中执行的命令。

将用户 dimitria 的邮件帐户移到一个新分区:

mboxutil -r user/dimitria/INBOX user/dimitria/INBOX partition

其中 partition 指定新分区的名称。

将用户 dimitria 的名为 personal 的邮件夹移到一个新分区:

mboxutil -r user/dimitria/personal user/dimitria/personal partition


hashdir 实用程序

邮件存储库中的邮箱存储为散列结构以利于快速搜索。因此,寻找包含特定用户的邮箱时,须使用 hashdir 实用程序。

用此实用程序可确定包含特定帐户的邮件存储库的目录。此实用程序报告通往邮件存储库的相对路径,诸如 d1/a7/。路径是相对于基于用户 ID 上一层的目录的。实用程序将路径信息发送到标准输出。

例如,要寻找到用户 crowe 邮箱的相对路径,可输入:

hashdir crowe


Readership 实用程序

Readership 实用程序可用来报告除邮箱所有者外还有多少用户阅读了共享 IMAP 文件夹中的邮件。

IMAP 文件夹的所有者可准许其他用户阅读该文件夹中的邮件。一个允许其他用户访问的文件夹称为共享文件夹。管理员可用 readership 实用程序了解除文件夹所有者外其他用户访问共享文件夹的情况,如访问人数。

此实用程序可用来扫描所有邮箱并为每个共享文件夹产生一行输出,报告读者数,后跟一个空格,然后是邮箱名。

在已过去的指定天数内选择了共享文件夹的每个用户具有独自的认证身份。阅读其个人邮箱的用户并不计算在内。除非除文件夹所有者外至少还有另外一个读者,否则报告中不包括个人邮箱查阅方面的信息。

例如,下面的命令把任何具有在最近的 15 天内选择了共享 IMAP 文件夹的用户统计为读者:

readership -d 15


监视配额限制

您可通过 mboxutil 实用程序监控空间配额的使用和限制情况。mboxutil 实用程序可生成一份报告,列示任何已定义的空间配额和限制情况,并提供空间配额使用量方面的信息。报告中的空间配额及其使用量以千字节为单位。

例如,下面的命令列示所有用户的空间配额信息:

mboxutil -a

接下来的例子列示用户 crowe 的空间配额信息:

mboxutil -u crowe

接下来的例子列示 siroe.com 域的空间配额信息:

mboxutil -q siroe.com


监控磁盘空间

您可指定系统监控磁盘空间的频次,以及何种情况下系统发送警告信息。配置磁盘空间监控和通知功能时,请用 configutil 命令设置报警属性,方法见表 11-5 中的描述。


表 11-5 磁盘空间报警属性


磁盘空间属性

默认值

alarm.diskavail.msgalarmstatinterval

3600 秒

alarm.diskavail.msgalarmthreshold

10%

alarm.diskavail.msgalarmwarninginterval

24 小时

例如,若要系统每 600 秒监控一次磁盘空间,则指定用下面的命令:

configutil -o alarm.diskavail.msgalarmstatinterval -v 600

如果每当可用磁盘空间低于 20% 时都希望收到警告信息,则指定使用下面的命令:

configutil -o alarm.diskavail.msgalarmthreshold -v 20

有关设置警告属性的更多信息,请参见 iPlanet Messaging Server Reference Manual“监控磁盘空间”


使用 stored 实用程序

stored 实用程序可在服务器上执行下列监控和维护任务:

stored 实用程序可自动于每天半夜执行清理和期满检测操作。可以选择进一步的清理和期满检测操作。

表 11-6 列示了 stored 的选项。表后列有几个常见用法的例子。有关详细的语法和使用要求,请参见 iPlanet Messaging Server Reference Manual


表 11-6 stored 选项


选项

说明

-c

执行一次性的清理任务,删掉已清除邮件。运行一次,然后退出。-c 选项是一次性的操作,因此无须指定 -1 选项。

-d

作为守护程序运行。执行系统检查并启动报警、死锁检测以及数据库修复。

-1

运行一次,然后退出。

-n

仅以试运行模式运行。并不真正对邮件进行时限或清理处理。运行一次,然后退出。

-v

详细输出。

-v -v

更详细的输出。

测试期满失效策略:

stored -n

执行一次性的时限和清理任务:

stored -l -v

如果要更改自动清理和期满失效操作的时间,须按下面的方式使用 configutil 实用程序:

configutil -o store.expirestart -v 21

偶尔也可能需要重启动 stored 实用程序,例如,当邮箱列表数据库损坏的时候。通过 UNIX 命令行重启动 stored 时,须使用下列命令:

server-root/msg-instance/stop-msg store
server-root/msg-instance/start-msg store

如果任何服务器守护程序出现崩溃,则须停止并重新启动包括 stored 在内的所有守护程序。


修复邮箱和邮箱数据库

如果一个或多个邮箱出现损坏现象,可用 reconstruct 实用程序重建邮箱或邮箱数据库,并修复任何不一致之处。

实用程序 reconstruct 可用来重建一个或多个邮箱,或主邮箱文件,修复任何不一致之处。可用此实用程序复原邮件存储库中的几乎任何形式的数据损坏。注意,低层的数据库修复(如完成的事务和重算未完成事务等)是通过 stored -d 进行的。

表 11-7 列示了 reconstruct 可用的各种选项。有关详细的语法和使用要求,请参见 iPlanet Messaging Server Reference Manual


表 11-7 reconstruct 选项


选项

说明

-f

强制 reconstruct 针对一个或多个邮箱执行修正。

-m

修理并执行邮箱数据库的一致性检查。此选项检查在假脱机缓冲区找到的每个邮箱,适当地在邮箱数据库中添加或移除条目。每当在邮箱数据库中添加或删除条目时,就向标准输出文件输送可打印的邮件。

-n

只检查邮件存储库,不对一个或多个邮箱执行修正。-n 选项不能被自己使用,除非提供一个邮箱名。在没有提供邮箱名的情况下,-n 选项必须与 -r 选项一起使用,-r 选项可以与 -p 选项相结合。例如,以下命令都是有效的:

reconstruct -n user/dulcinea/INBOX

reconstruct -n -r

reconstruct -n -r -p primary

reconstruct -n -r user/dulcinea/

-o

检查确定无主帐户。在当前 Messaging Server 主机中搜索在 LDAP 中没有对应条目的收件箱。例如,-o 选项可以发现已从 LDAP 删除或已移到另一个服务器主机中的收件箱所有者。对于所发现的每一个无主帐户,reconstruct 将把下面的命令写到标准输出中:

mboxutil-d user/userid/INBOX

-o -d filename

如果 -d filename 指定有 -o 选项,reconstruct 则打开指定的文件并将 mboxutil -d 命令写入该文件。该文件随即可变为成为脚本文件,用于删除无主帐户。

-p partition

指定一个分区名,不使用全路径名。如果没有指定此选项,reconstruct 对所有分区都是默认的。

-q

修正配额系统中的任何不一致性,如邮箱带有错误配额根,或配额根带有错误的配额使用报告。-q 选项在其他服务器进程运行时可以运行。

-r [mailbox]

对指定的一个或多个邮箱的分区进行修理并执行一致性检查。-r 选项对指定邮箱内的所有子邮箱进行修理。如果指定 -r 时没有加带“邮箱”参数,实用程序则在必要时修复数据库中所有邮箱的假脱机缓冲区。


重建邮箱

重建邮箱时,请用 -r 选项。应该在下列情况下使用此选项:

5.0 版的 reconstruct -r 实用程序首先执行一致性检查。然后报告一致性情况并只在检测到问题时进行重建。因此在本版中 reconstruct 实用程序的执行已得到改善。

可以像下面例子所描述的那样使用 reconstruct

若需重建用户 daphne 邮箱的假脱机缓冲区,请使用下面的命令:

reconstruct -r user/daphne

若需重建邮箱数据库中所有邮箱的假脱机缓冲区,请使用下面的命令:

reconstruct -r

但使用此选项时要谨慎,因为对于较大的邮件存储库,重建邮箱数据库中的所有邮箱的假脱机缓冲区需要花很长的时间。(参阅“reconstruct 的操作性能”。)故障恢复的更好的方法是利用多个磁盘构建存储库。如果其中一个磁盘出了问题,不会影响整个存储库。如果某一磁盘损坏,只需像下例所示用 -p 选项重建存储库的一部分:

reconstruct -r -p subpartition

若需重建命令行参数中列示的邮箱(但只有当其在 primary 分区中时),请输入下列:

reconstruct -p primary mbox1 mbox2 mbox3

如果确实需要重建所有的 primary 分区中的邮箱,请输入下列:

reconstruct -r -p primary

如果需强制 reconstruct 在不进行一致性检查的情况下重建文件夹,则须用 -f 选项。例如,下面的命令将强制重建用户文件夹 daphne

reconstruct -f -r user/daphne

若需在不加以修正的情况下检查所有邮箱,可按下面的例子使用 -n 选项:

reconstruct -r -n


检查和修复邮箱

若需对邮箱数据库进行高层次的一致性检查并修复,请输入下列:

reconstruct -m

在下列情况下应使用 -m 选项:


移除无主帐户

搜寻无主帐户(无主帐户即在 LDAP 中没有对应条目的邮箱)时,请输入:

reconstruct -o

命令的输出如下:

  reconstruct: Start checking for orphaned mailboxes
  mboxutil -d user/test/annie/INBOX
  mboxutil -d user/test/oliver/INBOX
  reconstruct: Found 2 orphaned mailbox(es)
  reconstruct: Done checking for orphaned mailboxes


若需创建一个列示无主邮箱的名为 orphans.cmd 的文件(该文件可转换为删除无主邮箱的脚本文件),请输入:

reconstruct -o -d orphans.cmd

命令的输出如下:

  reconstruct: Start checking for orphaned mailboxes
  reconstruct: Found 2 orphaned mailbox(es)
  reconstruct: Done checking for orphaned mailboxes



reconstruct 的操作性能

reconstruct 一次操作所需的时间取决于若干因素,其中包括:

reconstruct -r 选项首先进行一致性检查;此次检查可改善 reconstruct 的操作性能;操作性能的改善程度取决于须重建的文件夹数量。

举例来说,假定有大约 2400 个用户,一个 85GB 的邮件存储库,服务器中有并行的 POP、IMAP 或 SMTP 活动:


备份与恢复邮件存储库

备份与恢复是最常见、最重要的管理任务之一。必须为邮件存储库实施一套备份与恢复策略以确保出现问题时数据不致丢失;可能出现的问题包括:

在迁移用户时也需要备份数据。

Messaging Server 提供的命令行实用程序可用于备份和恢复邮件存储库。Messaging Server 还提供了一种与 Legato Networker 集成的解决方案。

Messaging Server 采用单副本备份方法。无论有多少包含特定邮件的用户文件夹,在备份过程中,邮件文件只备份一次,即所找到的第一个邮件文件。第二个邮件副本被备份为通往第一个邮件文件名的链接,其他类似。backup 实用程序以邮件文件的索引节或信息节点(inode)作为索引,将所有邮件列于一个散列表。但在恢复数据时,此方法会使操作复杂化。有关详细信息,请参阅“关于部分恢复的考虑”

本节包含下列内容:


创建备份策略

建立备份策略时,需考虑到若干因素,诸如:


业务负载高峰

在为系统规划备份时需考虑到业务负载高峰这一因素。例如,备份最好安排在凌晨,如上午 2:00。


完整备份和递增备份

递增备份法可先扫描存储库以搜寻变更数据并只备份变更的数据。完整备份法则备份整个邮件存储库。需确定系统进行完整备份相对于递增备份的频次。可将递增备份作为每日维护作业加以实施。在需要移动或迁移数据时,进行完整备份是适宜的。


并行备份和串行备份

当用户数据存储于多个磁盘时,可选择以并行方法备份用户组。并行备份方法从总体上可加速备份过程,具体指标取决于系统资源。但也有需要串行备份的时候,例如,在不想影响服务器性能时。是用并行备份还是用串行备份取决于多方面的因素,如系统负载、硬件配置、可用的磁带机数量等等。


创建备份组

通过将用户划分为若干组,可改善备份管理。例如,可以为每个组分别指定备份作业时段。也可以选择以并行方式同时备份若干组。

假定用户邮件按用户的姓氏安排存储,字头为 A 的所有用户的邮件归为一个备份组,字头为 B 的所有用户的邮件归为另一个备份组。

邮件存储库的逻辑图可按下列划分:

               存储库
           ______|______
          |             |
        A 组             B
       ___|___
      |       |
    用户       用户
          ____|____
         |         |
       邮箱         邮箱


通过将用户划分为若干组,可改善备份管理。例如,可以为每个组分别指定备份作业时段。也可以选择以并行方式同时备份若干组。有关创建备份组方面的详细信息,请参阅“创建备份组”

若需创建备份组,则要创建一个配置文件以存储组定义。该文件必须命名为 backup-groups.conf 而且必须存储在下列目录中:

server_root/msg-instance/config/backup-groups.conf

该文件的格式是:

groups=definitions
groups=definitions
.
.
.

例如,若将用户按用户 ID 的首字母分组,可用如下的定义:

groupA=a*
groupB=b*
groupC=c*

备份对象的命名采用如下的邮件存储库逻辑结构:

/server/group/user/mailbox

其中 server 是邮件存储库实例名。例如:siroe

Messaging Server 包含一个预定义备份组,可在没有创建配置文件 backup-groups 情况下使用。这个组称为 ALL,包含所有用户。


Messaging Server 备份和恢复实用程序

为了备份和恢复数据,可用 Messaging Server 提供的 imsbackupimsrestore 两种实用程序。

请注意,imsbackupimsrestore 这两种实用程序并不提供通用备份功能。这两种实用程序不具备 Legato Networker 这样的通用工具所具备的一些高级特性。例如,这两种实用程序只向自动换带机提供非常有限的支持。不能将单一的存储库写入多个并行设备中。要获得完善的备份功能须用如 Legato Networker 这样的通用化的外挂工具。有关 Legato Networker 的使用方面的详细信息,请参阅“使用 Legato Networker”


imsbackup 实用程序

您可通过 imsbackup 实用程序将邮件存储库中选取的内容写到任何串行设备中,其中包括磁带、UNIX 管道、无格式文件等。备份或备份中选取的部分可在以后用 imsrestore 实用程序恢复。imsbackup 的输出可通过管道送往 imsrestore

进行备份作业时,可按下例使用 imsbackup 命令,例中将 user1 备份到 backupfile

imsbackup -f backupfile /mystore/ALL/user1

此命令采用默认的块因子 20。有关 imsbackup 命令的完整语法描述,请参阅 iPlanet Messaging Server Reference Manual


imsrestore 实用程序

从备份设备中恢复备份数据时,可用 imsrestore 命令。例如,下面的命令可为 user1 从文件 backupfile 中恢复邮件。

imsrestore -f backupfile /mystore/ALL/user1

有关imsbackup 命令的完整语法描述,参见 iPlanet Messaging Server Reference Manual


关于部分恢复的考虑

这种单副本备份方法在恢复邮件时有下列需注意的地方:

假定有三个邮件分别属于三个用户 A、B 和 C,如下所示:

A/INBOX/1
B/INBOX/1
C/INBOX/1

例 1:在第一个例子中,系统执行一个部分备份和完整恢复作业,过程如下:

  1. 备份用户 B 和 C。

  2. 删除用户 B 和 C。

  3. 从步骤 1 恢复备份数据。

在这个例子中,B/INBOX/1 和 C/INBOX/1 被赋予一个新的信息节点号,邮件数据写入磁盘中的一个新位置。仅有一个邮件副本被恢复,第二个邮件只是到第一个邮件的硬链接。

例 2:在这个例子中,系统执行完整备份和部分恢复,过程如下:

  1. 执行完整备份。

  2. 删除用户 A。

  3. 恢复用户 A。

A/INBOX/1 被赋予一个新的信息节点号。

例 3:在这个例子中,部分恢复可能要尝试多次:

  1. 执行完整备份。

    B/INBOX/1 和 C/INBOX/1 被备份为到 A/INBOX/1 的链接。

  2. 删除用户 A 和 B。

  3. 恢复用户 B。

    恢复实用程序请求管理员首先恢复 A/INBOX。

  4. 恢复用户 A 和 B。

  5. 删除用户 A(可选)。

    备注: 如果想确保所有邮件都以部分恢复方式恢复,可在运行 imsbackup 时使用 -i 选项。-i 选项使得必要时每个邮件可备份多次。此选项在 POP 环境下最有用。




使用 Legato Networker

Messaging Server 包含一个备份 API,可用来提供如 Legato Networker 这样的第三方备份工具的接口。邮件存储库的物理结构和数据格式被封装在备份 API 中。备份 API 与邮件存储库直接交互,为备份服务提供邮件存储库的逻辑界面。备份服务以邮件存储库的概念显示方式存储和检索备份对象。

Messaging Server 提供的 Application Specific Module(ASM)可被 Legato Networker 的 saverecover 命令调用,以便备份和恢复邮件存储库数据。ASM 接着调用实用程序 Messaging Server imsbackupimsrestore


备注: 本节提供的信息涉及如何将 Legato Networker 用于 Messaging Server 邮件存储库。有关 Legato Networker 界面方面的说明,请参阅 Legato 文挡。




用 Legato Networker 备份数据

在用 Legato Networker 对 Messaging Server 邮件存储库进行备份时,在援用 Legato 界面之前必须执行以下准备步骤:

  1. 创建一个从 usr/lib/nsr/imsasmserverRoot/msg-instance/bin/imsasm 的象征性的链接。

  2. 从 Sun 或 Legato 处索取一份二进制文件 nsrfile 的副本并将之复制到下面的目录中:

    /usr/lib/nsr/nsrfile

  3. 如果按组备份用户,请执行以下步骤:

    1. 遵照“创建备份组”中的说明创建备份组文件。

    2. 若需检查所做的配置,请运行 mkbackupdir.sh

      查看在server_root/backup 中的目录结构。该结构应与图 11-2 中展示的结构类似。

    注意,如果没有指定 backup-groups.conf 文件,备份进程将对所有用户使用默认的备份组 ALL

  4. 在目录 /nsr/res/ 中为保存组创建一个 res 文件,以便在备份前调用脚本 mkbackupdir.sh。请见图 11-3 中的范例。

    备注: Legato Networker 具有 64 个字符限制的保存集名称。默认情况下,mkbackupdir.sh 将在 server_root/backup 目录下创建存储映像。如果此目录名加上邮箱的逻辑名(例如,siroe/groupA/fred)大于64 个字符,则必须运行 mkbackupdir.sh -p。因此,应该为 mkbackupdir.sh-p 选项使用一个短路径名。例如,下列命令将在 /backup 目录下创建备份映像:

    mkbackupdir.sh -p /backup

    重要提示:备份目录对于邮件存储库所有者必须是可写的(例如:mailsrv)。



图 11-2 所示为备份组目录结构的一个样板。

图 11-2 备份组目录结构

siroe-groupA-a1
            -a2
     -groupB-b1
            -b2
     -groupC-c1
            -c2


图 11-3 所示为一个在 /nsr/res 目录中的名为 IMS.res 的示例性 res 文件:

图 11-3 res 文件样板

type: savepnpc
precmd: "echo mkbackupdir started",
   "/usr/siroe/server5/msg-siroe/bin/mkbackupdir.sh -p /backup"
pstcmd: "echo imsbackup Completed";
timeout: "12:00 pm";



现在准备好按下面的步骤运行 Legato Networker 界面:

  1. 如有必要,则先创建 Messaging Server 保存组。

    1. 然后运行 nwadmin

    2. 选择 Customize | Group | Create。

  2. savepnpc 用作备份命令以创建一个备份客户:

    1. 将保存集设置为由 mkbackupdir 所创建的目录。

      对单一任务备份,请使用 server_root/backup

      对于平行备份,请使用 server_root/backup/server/group

      检查是否已经按“创建备份组”中的定义创建了 group

      还必须按照备份作业时段数设置并行性。

      请参阅“范例:在 Networker 中创建备份客户”

  3. 选取 Group Control | Start 以测试备份配置。

范例:在 Networker 中创建备份客户 在 Networker 中创建备份客户时,从 nwadmin 中选择 Client | Client Setup | Create:

Name: siroe
Group: IMS
Savesets:/backup/siroe/groupA
   /backup/siroe/groupB
   /backup/gotmail/groupC
         .

         .
Backup Command:savepnpc
Parallelism: 4


用 Legato Networker 恢复数据

恢复数据时,可用 Legato Networker 的 nwrecover 界面或命令行实用程序 recover。下面的例子可用来恢复用户 a1 的 INBOX:

recover -a -f -s siroe /backup/siroe/groupA/a1/INBOX

接下来的例子可用来恢复整个邮件存储库:

recover -a -f -s siroe /backup/siroe


使用第三方备份软件(Legato 除外)

iPlanet Messaging Server 提供两个存储库备份解决方案,命令行 imsbackup 和 Solstice Backup(Legato Networker)。对于大型邮件存储库,通过一次运行 imbackup 来备份整个邮件存储库会花费相当长的时间。Legato 解决方案支持在多个备份设备上的并行备份会话。并行备份可以大大缩短备份时间(已达到每小时备份 25 GB 的数据)。

如果使用另一个第三方并行备份软件(如,Netbackup),可以使用以下的方法将备份软件与 iPlanet Messaging Server 相整合。

  1. 将用户分为若干组(参见“创建备份组”)并在 server_root/msg-<instance>/config/ 目录下创建 backup-groups.conf 文件。

    例如,对于 UID 标识的组用户,使用在 /usr/iplanet/server5/msg-siroe/config/backup-groups.conf 中的以下定义:

    groupA=a*
    groupB=b*
    groupC=c*
    . . .


    备注: 此备份解决方案要求更多的磁盘空间。为了并行备份所有的组,所要求的磁盘空间是邮件存储库空间的 2 倍。如果没有如此多的磁盘空间,可将用户分成更小的组,然后一次备份一批用户组。例如,组 1 - 组 5,组 6 - 组 10。备份后移除这些组数据文件。



  2. 运行 imsbackup 将每个用户组备份到分段区下的文件中。

    命令格式是 imsbackup -f <device> /<instance>/<group>

    可以同时运行多个 imsbackup 进程。例如:

    # imsbackup -f- /siroe/groupA > /bkdata/groupA &
    # imsbackup -f- /siroe/groupB > /bkdata/groupB &

    . . .

    imsbackup 不支持大型文件,如果备份数据大于 2 GB,就需要使用 -f- 选项以将数据写到 stdout(标准输出),然后使用管道输出到文件。

  3. 使用第三方软件备份在分段区的组数据文件(在我们的例子中是 /bkdata)。

  4. 若要恢复一个用户,请确定该用户的组文件名,从磁带上恢复该文件,然后使用 imsrestore 从数据文件中恢复该用户。

    请注意imsrestore 不支持大型文件。如果数据文件大于 2 GB。请使用以下命令:

    # cat /bkdata/groupA | imsrestore -f- /siroe/groupA/andy


对邮件存储库进行故障诊断

本节提供对邮件存储库进行预见性维护的指导方针。此外,本节还描述在邮件存储库受损或意外关闭的情况下,可以使用的其他邮件存储库恢复程序。注意,本节关于其他邮件存储库恢复程序是对“修复邮箱和邮箱数据库”的扩充。

在阅读本节之前,强烈建议回顾本章和命令行实用程序以及 iPlanet Messaging Server Reference Manual 中的 configutil 各章。本章包含以下主题:


标准邮件存储库监控程序

本节简述邮件存储库的标准监控程序。这些程序对于例行检查,测试和标准维护很有帮助。

有关详细信息,请参阅“监控邮件存储库”


检查硬件空间

邮件存储库应具有足够的额外磁盘空间和硬件资源。当邮件存储库的接近磁盘空间和硬件空间的最大限额时,可能会在邮件存储库内产生问题。

磁盘空间不足是造成邮件服务器问题和失败的最常见的问题之一。如果邮件存储库没有要写的空间,邮件服务器将失败。另外,当可用的磁盘空间低于某阈值后,将出现与邮件传递、登录等等相关联的问题。当 stored 进程的清理功能失效,被删除的邮件不能从邮件存储库擦去时,磁盘空间可被迅速地耗尽。

有关监控磁盘空间的信息,请参见“监控磁盘空间”“监控邮件存储库”


检查日志文件

检查日志文件以确认邮件存储库进程是按照配置运行的。Messaging Server 为每个主要协议或服务单独创建一批日志文件,所支持的协议或服务有:SMTP,IMAP,POP 和 HTTP。可以通过 Console 或在目录 server-root/msg-instance/log/ 中查看这些日志文件。日志文件的监控应当例行化。

应当意识到,日志记录会对服务器的性能产生影响。定义的日志记录越详细,在给定时间量内日志文件所占用的磁盘空间就越大。应对服务器定义有效而现实的日志记录轮换、失效和备份策略。有关对服务器定义日志记录策略的信息,参见第 13 篇 “日志记录和日志分析”


检查 stored 进程

stored 功能执行多种重要任务,诸如邮件数据库的死锁和事务操作,强制时限策略,以及清除储存在磁盘上的邮件等。如果 stored 停止运行,则 Messaging Server 将最终陷入问题。如果 stored start-msg 已运行后仍不启动,则其他进程将不能启动。

有关 stored 进程的更多信息,请参见“使用 stored 实用程序”iPlanet Messaging Server Reference Manual 的“Messaging Server 命令行实用程序”一章的 stored 实用程序。

有关监控 stored 功能的其他信息,请参见“监控邮件存储库”


检查数据库日志文件

数据库日志文件指 sleepycat 事务检查点日志文件(在目录 server-root/msg-instance/store/mboxlist 中)。如果日志文件累积,则不会发生对数据库检查点的检查。一般来说,在一个单一的时段内有两个或三个数据库日志文件。如果有更多的文件,则可能是出问题的信号。


检查用户文件夹

如果要检查用户文件夹,可以执行命令:
reconstruct -r -n(recursive nofix 递归 不修正),将对任何用户文件夹进行检查并报告错误。有关 reconstruct 命令的更多信息,请参见“修复邮箱和邮箱数据库”


检查核心文件

只有当进程意外终止时,核心文件才会存在。检查这些文件很重要,特别是在邮件存储库发现问题时。


常见问题和解决办法

本节列出常见的邮件存储库问题和解决办法:


用户邮箱目录问题

用户邮箱问题是指当邮件存储库的损害仅限于少数用户而且没有对系统的全局造成损害时的情况。以下的指导方针对识别、分析和解决用户邮箱目录问题的处理过程提出了建议:

  1. 查看日志文件、错误信息或用户观察到的任何不寻常行为。

  2. 若要保留调试信息和历史,将整个 server-root/msg-instance/store/mboxlist/ 用户目录复制到邮件存储库以外的另一个位置处。

  3. 要找出可能造成问题的用户文件夹,应当运行 reconstruct -r -n 命令。如果用 reconstruct 不能找到有问题的文件夹,则该文件夹可能不在 folder.db 中。

    如果用 reconstruct -r -n 命令不能找到有问题的文件夹,可使用 hashdir 命令确定其位置。有关 hashdir 的更多信息,请参见“hashdir 实用程序”iPlanet Messaging Server Reference Manual 的“Messaging Server 命令行实用程序”一章的 hashdir 实用程序。

  4. 一旦找到那个文件夹,检查其中的文件,检查权限,验证文件大小正确性。

  5. 使用 reconstruct -r(没有 -n 选项)重建邮箱。

  6. 如果 reconstruct 不能检测到已观察到的问题,可以使用 reconstruct -r -f 命令强制执行邮件夹的重建。

  7. 如果这个文件夹不存在于 mboxlist 目录(server-root/msg-instance/store/mboxlist)中,而存在于 partition 目录 server-root/msg-instance/store/partition)中,则可能有全局性不一致问题。在这种情况下,应运行 reconstruct -m 命令。

  8. 如果前面的步骤不起作用,可以移除 store.idx 文件并再次运行 reconstruct 命令。

    注意:

    如果确信在该文件中有一个用 reconstruct 命令无法找到的问题,则只应移除 store.idx 文件。



  9. 如果问题局限于有问题邮件,应将该邮件文件复制到邮件存储库以外的另一个位置处,然后针对 mailbox/ 目录运行 reconstruct -r 命令。

  10. 如果确定该文件夹在磁盘(的 erver-root/msg-instance/store/mboxlist/partition/ 目录中)存在,而显然不在数据库(server-root/msg-instance/store/mboxlist/ 目录)中,请运行 reconstruct -m 命令以确认邮件存储库的一致性。

有关 reconstruct 命令的更多信息,请参见“修复邮箱和邮箱数据库”


全局性存储库问题

如果可以确定邮件存储库失败是影响所有用户的问题或是系统全局性损害的结果,可以使用以下的指导方针恢复系统:

  1. 停止邮件存储库进程。

    1. 一旦证实邮件存储库进程已被停止,可重新启动邮件存储库进程。

    2. 运行 stored 进程以恢复数据库。

    在许多情况下,数据库可以自动地从失败中恢复。因为当 stored 开始运行时,它启动一数据库恢复程序,该程序对照缓存文件和数据库文件分析数据库日志文件。该程序尝试将数据库置于一致状态。

  2. 如果 msg-start 命令在 stored 进程命令试图启动一个邮件存储库时意外终止,则 stored 或是失败,或是尝试恢复存储库。

    如果当 stored 试图启动邮件存储库时,此处理过程反常地结束,则 stored 进程可能在检查大型日志文件以恢复数据库。

    1. 请检查 server-root/msg-instance/log/default/ 目录以查看 stored 已分析的信息。

    2. 此外,还可以检查配置和 pidfile.store 文件。

      pidfile.store 文件表明 pid 以及 stored 进程的状态。如果正在恢复中,pidfile 将该状态以 init 状态,如果 stored 进程完成数据库修理,则以 ready 表示。

  3. 如果 pidfile 表示出 ready 状态,则数据库已恢复,邮件存储库的其余部分可以重新启动。

    1. 启动存储库进程并运行 reconstruct -m 命令。有关 reconstruct 的更多信息,请参见“修复邮箱和邮箱数据库”

    2. 通过监控测试帐号和查看日志文件确定用户邮箱是否有效。

      如果个别用户邮箱损坏,请运行 reconstruct -r 命令。

    3. 如果对邮件存储库的损害是广泛的,可能有必要在邮件存储库进程停止的状态下进行修理。请参阅“邮件存储库恢复程序”

  4. 如果 pidfile 不能更改到 ready 状态,则 stored 进程或是在检查 mboxlist 日志文件,或是数据库不能恢复。

    1. 如果在 server-root/msg-instance/store/mboxlist 目录中有许多数据库日志文件,stored 进程可能不会脱离 init 状态。另外,数据库恢复可能需要过长的时间(例如,对于多数计算机上,20 到 30 个日志文件的处理时间就太长了。)如果此情况出现,应停止 stored 进程,移除在 server-root/msg-instance/store/mboxlist 目录中的文件,并启动快照或快速恢复程序。

    2. 如果 stored 进程不能恢复邮件存储库,则此数据库很有可能已经损坏。在这种情况下,需要恢复数据库的快照副本,或启动快速恢复技术。有关详细信息,请参阅“邮件存储库恢复程序”

      注意:

      当进程在访问数据库时,绝不要将其终止。如果将 stored 进程在 init 状态下终止,将不能从现有的 mboxlist 数据中恢复数据库。因此,这些数据必须移除。如果终止正在访问数据库的其他进程,该数据库可能会保持在不一致状态下,需要关闭整个邮件存储库并重新启动。




邮件存储库恢复程序

本节描述重建或修理邮件存储库的恢复程序。


执行快速恢复

当数据库不一致时,可在标准恢复程序中使用 reconstruct 实用程序。(参阅“修复邮箱和邮箱数据库”。)

如果数据库的损坏超出标准修理范围,可以通过以下这些步骤用 reconstruct 进行快速恢复:

  1. 停止邮件存储库进程。

  2. 验证所有存储库进程已被停止。

  3. server-root/msg-instance/store/mboxlist/* 这些文件复制到一个安全的位置,用于随后检查。

  4. 移除 server-root/msg-instance/store/mboxlist/ 目录中的所有文件。

  5. 启动如 storedimapdpopdmshttpd 这样的邮件存储库进程。

  6. 运行 reconstruct -m 实用程序重建 folder.db


创建数据库快照备份

预见到邮件存储库的损坏,可预防性地创建邮箱数据库和日志文件的备份(称为快照)。这样,在数据库损坏的情况下,可以使用快照替代数据库,而不需要重建数据库。快照工具随时制成数据库的一致副本并可恢复。请确认有足够的磁盘空间保存这些备份。


备注: 除非另有说明,否则在表 11-9 中列出的数据库快照参数只能用于 iPlanet Messaging Server 5.2。



表 11-9 描述了三个用于创建数据库快照的 configutil 参数。这些数据库快照在恢复过程中被 stored 进程所调用:

表 11-9 configutil 数据库快照参数 


数据库快照参数

说明

local.store.snapshotpath

指定向其中复制 mboxlist 目录的路径。为邮件存储库所有者设置权限。快照将被放置在子目录中。

local.store.snapshotinterval

快照间的时间间隔。时间单位是分钟。建议一天至少执行一次此程序。

local.store.snapshotdirs

储存在磁盘上的不同快照数。最小值为 2,默认值为 3,建议这个数量足够确保在当前数据库的损害超出修理范畴时,具有很好的数据库支持。

创建数据库备份时,须用 configutil 命令为下列参数指定数值:

configutil -o local.store.snapshotinterval -v number

这里的 number 用于指定 stored 备份数据库的频次,number 表示以分为单位的时间间隔。

configutil -o local.store.snapshotpath -v path

其中path 表示备份副本的位置。


注意:

来自较早的 Messaging Server 版本的数据库快照实用程序与这些实用程序的功能不尽相同。因此,不赞同将快照实用程序的先期 Messaging Server 版本用于 Messaging Server 5.2。




用数据库快照恢复邮件存储库

为了用数据库快照恢复数据库,熟悉邮件存储库布局十分必要。有关详细信息,请参阅“邮件存储库目录布局”

在数据库快照被创建后,(如在“创建数据库快照备份”中所解释的),它们被储存在 src 子目录中。这些文件最终将被移动到 dst server-root/msg-instance/store/mboxlist/ 目录中,那也是恢复的数据库驻留的地方。除了快照文件外,在创建快照时还要创建控制文件。表 11-10 描述的是数据库快照控制文件。注意,这些文件为邮件存储库所有者所拥有:

表 11-10 数据库快照控制文件 


控制文件

说明

dst/.nosnap

禁用数据库快照处理,即使配置数据没有刷新。

dst/.snaprst

将所有先前的快照标记为无效。在生成第一个新快照后,此文件被移除。

dst/.catrecov

触发 stored 进程,以启动将快照恢复到可用格式的灾难性恢复。

src/.snaptime

表明目录中有一有效的快照。此文件的时间戳表明快照是何时完成的。

下列步骤解释如何通过使用数据库快照,控制文件,src/dst/ 目录执行手工恢复:

  1. 在执行恢复前,请确认自己是邮件存储库的所有者。

  2. 停止邮件存储库进程并验证所有进程是否已停止。

  3. server-root/msg-instance/store/mboxlist/ 目录中的文件复制到一个安全的位置以备以后查看。

  4. 检查快照,确定哪一个(如果有的话)可以替代邮件存储库。有关详细信息,请参阅“创建数据库快照备份”

    1. 使用 *.snaptime 文件确定备份的有效性和时间。如果一快照对应过多的日志文件,请查看另一个快照。

    2. 拾取最近的,没有捕获到数据库问题的有效快照。

      如果没有快照可用,请遵循快速恢复程序。有关详细信息,请参阅“执行快速恢复”

  5. 移除在 server-root/msg-instance/store/mboxlist/ 目录中的所有文件,因为它们已经损坏。

  6. 将与选中快照对应的快照文件复制到 server-root/msg-instance/store/mboxlist/ 目录中,但请确认不要复制 *.snaptime 文件。

  7. touch 命令在 server-root/msg-instance/store/mboxlist/ 目录中创建 .catrecov 文件。

    一个 .catrecov 文件向邮件存储库发出需要执行灾难性恢复的信号。

  8. 启动邮件存储库进程。

  9. 监控 stored 进程。stored 进程应恢复。

  10. stored 进程恢复后,确认文件 server-root/msg-instance/store/mboxlist/.catrecov 已移除,否则一旦启动,邮件存储库将认为需要进行灾难性恢复。

  11. 运行 reconstruct -m 以修正 snaptime 文件和数据库失败间的任何不同。


上一页    目录    索引    下一页
(c) 2002 年 Sun Microsystems, Inc. 版权所有。

更新日期:2002 年 2 月 27 日