Lotus Domino/Notes是目前最为流行的文档数据库系统之一,其自身所带的电子邮件系统、基于Domino服务器开发的收发公文处理系统、信息采编与发布系统等具有强大的功能,能够很好地满足工作人员办公自动化的要求。
本人一直负责Domino服务器的建设、维护和应用程序的开发工作,多年的探索与实践感到OA系统的维护包括三个渐进的层次:基本层次—客户端简单故障的排除;中级层次—监控Domino服务器的运行状态、优化系统的运行、Domino服务器的升级;高级层次—OA应用系统的升级、响应用户的需求变化及时修改应用数据库程序代码。为此培养一个OA高级管理员的目标应该是系统管理员、信息安全员、程序设计人员基本素质的结合。
下面就Lotus Domino服务器及办公自动化系统的维护谈一些体会,希望对OA系统维护的同仁有借鉴意义。
Domino服务器的监控
系统资源的监控
包括Domino控制台访问、数据库复制、邮件路由等消息的监控;服务器的硬盘剩余容量监控;Windows操作系统中Notes进程的监控,当某个Notes进程在任务管理器的进程中多次出现时,意示系统的资源不能释放,此时应该重新启动Windows操作系统或Domino服务器系统。为使OA系统充分利用系统资源,建议不要在OA服务器上再安装其它应用软件。
日志文件监控
Domino自身带的系统日志功能比较完善,它记录了关于 Domino 系统的信息,管理员可以从中把握服务器的运行状态,例如:用户的访问时间、数据库是否破坏、Domino系统崩溃的时间及之前相关信息等。系统管理员应该定期查看此日志以了解系统状态。当日志文件log.nsf太大时(如几百兆),系统的运行速度受到影响,应该考虑释放其中的无效空间。具体办法是:关闭Domino服务,在本地新建log.nsf的拷贝,替换原log.nsf后,可以达到释放90%空间的效果。类似的外出邮箱数据库inoc.box,它一直在增长且不能释放无效空间,在Domino服务器运行时就可以压缩此数据库释放资源。
防病毒处理
Notes数据库一般不会感染病毒,但是数据库文档所带的Word、Excel、html等格式的附加文件极容易感染病毒,当用户打开带病毒的附件,病毒立即感染本机或Domino服务器。为了防患于未然,应该安装针对Notes数据库的杀毒软件,例如Kill、熊猫都有此类产品。以下为安装Kill for Notes后用户邮件数据库中的一杀毒提示:
KILL Lotus Notes Domino Option 在从 [CN=Cwczt/OU=Cwc/O=CIC] 到 [财务处刘霞@CIC] 的邮件中发现病毒,主题是[开会通知]. 被感染的附件为: [会议参加人员安排情况(综合).doc] . 采取的操作: 文件被修复
用户邮件库的监控
笔者体会Notes邮件的功能非常优秀,大大强于互联网上注册申请的邮箱功能。用户得到的实惠是:收发邮件快捷、提供了类似Word的邮件内容编辑功能(如字体设置、表格绘制等)、附件数目及容量不受限制、在邮箱内可以直接查看或启动附件、提供的日历和会议日程安排非常实用。
由于用户使用水平的差异,有的用户长期保留过期文件不删除,特别是大容量的附件容易造成服务器资源浪费,系统管理员采取的措施包括:在邮件模版中编制代码,使用代理自动删除每个用户某个时间之前的邮件;关注每个用户的邮箱大小,对本单位邮箱过大的数据库特殊处理,与用户协商删除大容量附件,并压缩数据库释放空间。
Domino服务器的优化
群集的使用
使用Domino群集的出发点是平衡服务器间的负载、备份服务器。当访问的客户太多时,单台服务器负荷较重,采用群集后,两台服务器可以平均分配负荷。群集的前提条件是两台服务器上的数据库互为副本。当用户访问群集中某服务器上不可用的数据库时,Domino将自动转移到群集中其他服务器上此数据库的副本(如果副本可用)并打开。实际应用中当某个服务器上的数据库有所变化时,则另一个服务器上的该数据库的副本也同步变化,Domino群集的这种不断同步复制数据库,保证了无论用户打开哪个副本,其信息总是完全相同的。
只有在 Domino Administrator 中群集服务器的“服务器”“状态”附签“任务”列表中存在 CLDBDIR(Cluster Database Directory Manager) 和 CLREPL(Cluster Replicator),才表示群集创建成功。笔者曾测试过群集功能,并监控两台服务器的控制台显示信息。正常工作时,一台服务器的数据库有变化,控制台立即显示将此变化push给另一台服务器的数据库副本上;当人工关闭一台服务器时,另一台服务器立即自动承担所有任务,客户端的Notes状态栏也显示出重定向副本的信息。
共享邮件的使用
使用共享邮件的出发点是节省服务器的硬盘空间。例如,张三给全体工作人员(共100人)发送了一个1M的邮件,若没有采用共享邮件,则每个用户邮箱中都存入此1M邮件,共占有服务器100M的硬盘空间;若采用了共享邮件,则仅在每个用户的邮箱中加一条指针链接记录,真正1M的内容仅在共享邮件中保存一份,故共占有服务器硬盘空间为1M多一点。这对用户来说是完全透明的,用户依然同没设置共享邮件之前一样操作自己的邮箱。
高版本继承低版本的共享邮件,5.0以上版本共享邮件的大小没有限制(5.0之前最大为4G),笔者在5.0上设置共享邮件,曾升级到5.0.3,后又升级到5.0.9,用户邮件不受影响。设置共享邮件后,重启动Domino服务器,控制台显示一条记录:“Router: Shared mail database e:\Lotus\Domino\Data\shared01.nsf will be used for mail delivery and transfer”,说明共享邮件设置成功。
系统用户的管理
Notes应用中涉及到用户的维护工作主要包括:
用户注册
应该根据本单位的机构设置来规划用户的注册,有多个部门时,应该先为每个部门注册组织单元,再用每个组织单元的验证字id注册对应部门的个人。用户注册对话框中应该选择高级,将用户的标识符文件存储在服务器的本地上,这样即使客户端的id丢失,也能找到服务器上的备份,但这些服务器上的id文件应该严格管理。
用户权限的分配
涉及到权限管理的地方主要为:数据库的存取控制列表、表单文档的读者和作者域。此外可以在事件中编写 scripts 和公式来限制用户的权限,例如为保证最新公文只有系统管理员才能删除,笔者在资源“数据库Script”的Querydocumentdelete事件中加入了限制代码:
Set collection = Source.Documents
Set doc = collection.GetFirstDocument()
If doc.processflag(0) =“1”Then '最新公文视图
user = session.CommonUserName
If user ”admin”Then
Messagebox”您不能删除此文档!”, MB_OK, “错误”
Continue = False
Else
answer = Messagebox(“真正要删除选定的文档吗?”, 4, “确认”)
If answer = 7 Then
Continue = False
End If
End If
End If
用户id的重新验证
当用户验证字将要过期并希望指定新的过期日期时,需要重新验证标识符。重新验证时若服务器上没有CERTLOG.NSF文件,则会提示错误。因此在安装了第一台 Domino 服务器后,就应创建 Certification Log (CERTLOG.NSF)。向 Domino 添加服务器和用户时,Certification Log 将保留有关注册它们的记录,如验证日期和到期日期。缺省验证字的有效期为两年,到期前三个月客户端就开始提示要求重新验证,因此为减少重新验证的工作量,注册或重验证时可以适当延长有效期。
重新验证有两种方法,一种方法是用户通过电子邮件直接向管理员申请新的验证字,管理员反馈邮件,用户按邮件提示操作完成;另一种方法是由系统管理员通过Administrator的“个人”-“重新验证”功能,分别对本单位不同部门的人员(n个部门操作n次)统一验证,验证完后客户访问服务器时自动更新本地用户标识符,在状态栏提示:“已根据新的到期日而更改了标识符文件中的层次结构验证字”。推荐使用第二种方法,此方法对用户是透明的,不需要用户的申请,管理员操作也简单。
Notes客户端的维护
对于C/S结构的Notes应用,客户端需要安装Lotus Notes,6.0以后的版本支持从服务器的自动升级。如下表简单列出了Notes客户端比较典型的几类故障及解决办法。
OA应用系统的维护
数据文档的保护
所有的应用数据库都应经常备份,建立备份规则,可以直接拷贝到服务器本地或用第三方软件备份到文件服务器,应保证每周至少备份一次。
修改OA系统的某个模块设计时,为防止数据库设计的意外破坏及数据文档的丢失,修改前应该备份数据库。
数据库运行一段时间后,发现某个视图的文件可以越权删除,此时可以在Querydocumentdelete事件中加入限制代码,能有效保护文档的安全性。
数据库权限的管理
应该严格规划好数据库的存取控制列表,限制数据库的读者、作者、编辑者、管理者、不能存取者等用户类型,同时结合表单的设计可以使用角色,使某个人、某个群组具有特定权限。
文档权限或域值的变更
由于人员或规章制度的变化,可能需要扩充或变更文档的读者、作者权限。例如Cwcaa调走后其原先起草的文件后来的人无法归档,则对这类文档采取的办法是先过滤掉Cwcaa,再在文档的作者域中加入新人Cwcbb,加入新人代码为:
Set item13 = doc.GetFirstItem(“zzhs”)
Call item13.Appendtotextlist(“CN=Cwcbb/OU=Cwc/O=CIC”)
若需要改变某些文档的域值,简单的代码如下:
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
doc.jian = “简秧根”
Call doc.Save(True,True)
Set doc = view.GetNextDocument( doc )
Wend
数据库模板的维护
当多个数据库具有相同功能,但希望文档分开时,应该考虑建立数据库模板。模板功能完善后再基于模板创建多个数据库。例如用户邮件的数据库模板均为mail50.ntf,多个部门的收文模板可以设置为sw_Model.ntf。
修改模板的代码后,基于模板的数据库能自动或手工刷新设计。例如用户邮件数据库的收件箱视图日期列缺省不能显示完整的日期,可以在Designer中修改邮件模板mail50.ntf的“收件箱”文件夹,将日期列的宽度加大为10,第二天所有用户的邮箱自动继承了模板的设计。
维护日志的建立
管理员应建立运行维护日志、模块代码修改日志,对系统的维护与程序修改作流水账管理。以下是笔者对程序修改所作的流水账之一:
时间:2002.9.28
模块:收文数据库
修改原因:财务处出纳张彤反映该岗位原来人员调走,自己无法看到原来的收文文件。
处理办法:在“收文登记本”表单中加入隐藏的作者域chuna,其缺省值为“[出纳]”角色;在“收文登记”视图中加入LotusScript操作代码,为每个历史收文文档加入“[出纳]”角色;在收文库的ACL中增加财务处张彤为作者并赋予“[出纳]”角色。
解决人:简秧根
备注:角色的加入彻底解决了由于人员的变更而产生的收文库文档权限问题。
系统的升级
Domino服务器的升级
笔者曾经从Domino5.0升级到5.0.3,又从5.0. 3升级到5.0.9,用户的邮件库、共享邮件数据库、OA应用数据库每次升级后都运行良好。
升级前应该做好严格的准备工作,包括:原有系统的备份、新系统的安装与调试(若不更换服务器则事先应在别的机器上调试成功)、新系统应用数据库的完全更新。高版本的Domino要继承低版本的文件有:
◆ 用户的id、用户通讯录names.nsf、用户的邮件库;
◆ OA应用数据库;
◆ 服务器系统配置文件notes.ini、验证字日志数据库certlog.nsf;
◆ 共享邮件库shared01.nsf、共享邮件指针文件mailobj.nsf;
◆ 群集目录数据库CLDBDIR.NSF、群集空闲时间信息数据库CLUBUSY.NSF。
高版本Domino安装完成后,将上述文件拷贝到所在目录,启动Domino服务器,根据控制台的提示信息对系统进行细节调整。客户端的Notes不需要升级,若客户端访问正常且Domino控制台显示无错误则表示服务器升级成功。
OA应用系统的升级
由于原有系统规划设计不合理、单位部门的变更、业务变更、工作流程调整、应用系统模块重大调整等原因,OA系统运行一段时间后必须升级。个人体会是:
◆ 建立完善的需求说明书;
◆ 某个数据库升级时建立新旧表单域的对应表,对新增加的域列出详细说明;
◆ 建立升级数据库所有表单的读者域、作者域列表,对文档权限的变更列出详细说明;
◆ 旧数据库文档导入新数据库时,由于原库的设计可能多次调整,会造成部分文档的丢失,此时应对比丢失文档与非丢失文档的域差异,发现规律后采用特殊编程办法提取丢失的老文档;
◆ 备份所有旧版数据库文件,保证新版系统试运行时数据的无缝交接;
◆ 完善文档的打印功能,包括已有稿纸的套打功能、单页多记录的续打功能、多记录的分页打印功能、表格列多字符的裁剪功能;
◆ 完善文档的查询功能,Notes自带的全文检索功能有限,应该做到按字段模糊查询,如按拟稿人、拟稿部门、拟稿的起始时间段、文件密级、文件标题等查询,为了增强查询的友好性,可以采用进度条显示处理百分比或在状态栏显示处理情况;
◆ 从文件的兼容性考虑,可以将正文的内容以Word形式显示,加入修改痕迹,实现Notes与Word的无缝结合;
◆ 数据库在权限方面的设计尽量基于角色来考虑,最大限度地弱化由于人员的变更产生的问题;
◆ 从主页面数据库个性化功能的考虑,用户角色不同在主页面上看到的功能模块不同;
◆ 新版OA系统试运行前应在老版系统主页面上加入链接,供用户测试使用。
以上六个方面简要介绍了Domino服务器及其应用系统的高级管理,笔者体会为进一步做好OA系统的管理及维护工作,OA系统管理员不仅应深入研究Notes数据库技术,跟踪其最新的发展方向,而且应拓展知识面,了解SQLServer数据库、Oracle数据库、面向对象的编程等知识点,借鉴这些技术促进OA系统的管理工作。
故障描述 原因或解决办法
找不到用户标识符 标识符丢失,从服务器的备份中提取
忘记自己的登录口令 从服务器的备份中提取,为注册时的口令
人员变更后用新id后有时提示没有权限 Notes安装时记住第一个用户的信息,因此需要先卸载Notes,删除
Lotus目录,再安装新的Notes。
1.看系统是否存在nhldaemn.exe,若有手动关闭此进程,重启动Notes;
Lotus Notes无法启动 2.重新启动计算机,再启动Notes;
3.Notes应用程序意外破坏或丢失,需要重新安装Notes。重装
Notes系统时要注意是否有保留在本地的数据库,若有则要事先备份。
高版本注册id无法安装低版本Notes 注册用户时,缺省的标识符安全性类型为北美范围,应改为国
际范围。
1.检查服务器是否运行正常,保证Domino服务不中止;
2.检查对应的OA数据库是否破坏;
3.检查客户端场所是否发生变化;
无法访问OA应用库 4.检查OA应用主页数据库是否“设置书签为主页”;
5.检查客户网络是否通畅;
6.检查客户端是否识别服务器名:domino/cic,若不
行则使用domino.cic.com.cn。
1.检查用户邮件库是否存在。若不在则很可能是用户删除了
自己的数据库,因为只有用户才是自己邮件库的管理者;
2.检查用户对该邮件库的管理权限是否丢失,若丢失则在服务
无法打开邮件数据库 器本地打开邮件并在ACL中重新加入该用户。
3.检查用户邮件库是否损坏,若损坏尝试在Domino控制台上用
Fixup命令修复;
4.若不能修复,则使用邮件库的最新备份还原。