zoukankan      html  css  js  c++  java
  • 新手必读之管理篇——视图索引和服务器时间

    作为管理员的你,应该——
    在服务器使用时切记:千万不要修改服务器的时间!!!
    同样,还有一个要求,
    在服务器安装和使用之前切记:校对服务器的时间!!!

    不要求精确到几秒,不过应该控制在10秒之内。
    另外,不仅要校对时间,而且建议检查时区——Domino服务器默认调用的操作系统的时区,因此时区的设置尤为重要。

    怕文章写得太长,先把有人碰到过的错误作为前车之鉴提出来。
    如果这么写了还是有人看过就忘记的话,后果只好自负了,嘿嘿。

    为什么?请看后面有关的描述。

    说明:(本段纯属废话,可以忽略
    因为准备技术材料,想做一些总体的规划,所以具体的材料内容一拖再拖,不过看看有些用户都已经暴露出问题了,所以赶紧优先级提高,把本篇提到日程上来。
    其实为什么要提这篇文档,因为它的危害力是挺大的,但是管理员的重视程度不如对id、通讯录、邮箱等数据那么高,所以有必要重点描述一下。
    其实从题目来讲,可以分开介绍,但是因为往往错误会差不多同时出来,而且篇幅也不大,所以就放在一个专题里了。

    二、视图(文件夹)索引

    1. 视图也有索引
    可能有许多人知道数据库要建索引,可能更多的理解都是全文索引,这个是需要在数据库属性中手工去创建的,当然通过程序也可以做。
    其实很多人会忽略视图的索引,其实文件夹也有类似的索引,但是由于它的更新通常是人工的,所以这里不专门说明了。

    我们知道,表单是用来创建文档的,但是表单并不是数据库中的表结构,这块概念我们其他主题再讨论。
    我们也知道,视图是用来显示文档的,我们可以定义这个视图显示产品文档,那个视图显示合同文档。但是视图并不是天生就会显示出那些我们需要的文档,它跟数据库的Index一样,需要建索引。

    索引有啥好处,当然是访问快速啦。我们可以对视图方便地进行分类、排序以及快速定位检索,这些都不需要重新读取数据库中的文档,只需要在已经建好的索引中访问就可以了。
    而且在Web上访问,还可以做缓存,进一步提高视图索引的访问速度,基本上我们在打开一个简单的以HTML显示的视图,和打开一个HTML页面速度差不多。
    我们写程序查找文档一直推荐用notesView.GetDocumentByKey,比notesDatabase.Search要快速得多的缘故。
    同样的全文索引,也会加快访问速度,因此我们推荐在创建全文索引后用notesDatabase.FTSearch来代替notesDatabase.Search。

    说了这么多,需要感性认识一下,我们用Designer打开某个视图,会出现视图的属性对话框(看不见的话用“设计->视图属性”菜单打开),大概在第5个“高级”标签(倒数第2个标签)下,我们可以看到“索引”栏目,里面有“刷新”和“废弃”两个子栏目可以设置;看一下“刷新”的选项,通常设置都是“第一次使用后自动刷新”。

    第一次使用,通常指我们第一次打开这个视图,就会为它创建索引了,以后有文档更新时,它也会自动更新,这个也可以解释为什么新邮件到来时,系统会知道并作出提示,因为“收件箱”(虽然它是文件夹,其实道理一样)更新过了嘛。
    为什么不在视图修改后立即创建,应该是处于节省空间的考虑。既然有人使用过了,那么它会一直更新,保证数据是最新的。

    考虑到视图索引更新的效率,它首先为创建好的索引打上时间戳,上次是啥时候更新过的,下次更新将只更新那个时候更改过的数据。这也引发了第一个标题,如果改了时间,所有的索引都将会错乱,它会遗漏一些需要更新的文档。

    使用中就有因为修改了时间导致索引混乱的情况。
    1999-2000年,就碰到不少系统为了“千年虫”的问题,修改过时间调试,但是可能没有考虑到索引等情况,修改后就出现了系统紊乱,代价惨重。

    2. 视图索引问题
    相对来说,索引的损坏比数据库中文档的损坏要频繁,实际使用中最常见的一些系统索引问题如下:
    * 邮箱里收不到邮件,或者收件箱显示不出来。
    * 新注册用户结果看不到。
    * 用户修改了密码,结果访问不了。
    * 用户的权限或者群组无法更新,或者某些设置没有生效。
    * 修改了视图的列居然看不到,或者新建了表单居然无法创建等等。
    * 某个文档已经删除了,视图上还有。
    以上的问题对使用有很大的影响,当然也有实际生产系统中出现的索引问题,因为没有代表性,这里就不列举了。

    3. 索引的修复和重建
    当然因为毕竟是索引,它损坏造成的危害也少一些,所以如果数据还在的话,可以通过重建索引来解决问题,下面两种方法都可以尝试:
    1) 如果是单个数据库损坏的话,可以在Notes客户端上打开数据库,通过Ctrl+Shift+F9实时重建。
    2) 如果数据库多的话,或者不需要实时的话,可以在服务器控制台上输入updall命令重建。
    对所有数据库:load updall -r;对单个数据库:load updall mail/admin.nsf -r。
    当然也可以load compact -D压缩数据库,同时删除索引,继续访问的时候,它就会自动再重建了,但是这样不够及时,对数据量大的库,重建需要较长的一段时间,因此建议压缩完立即按方法2重建。

    其他情况:
    如果出现数据库被损坏无法使用的情况,有时候不一定非是文档和数据损坏,索引损坏也会导致数据库无法使用的情况。
    但是在我们不确定的时候,我们可以先试着用前面的updall方法重建索引。如果还是解决不了,可以用以下几招尝试进行修复:
    在服务器控制台上分别输入:
    1) load fixup <yourdb>.nsf
    fixup是对数据库进行修复,
    2) load compact <yourdb>.nsf -c
    compact -c是对fixup后的数据库进一步压缩和修复
    3) load updall <yourdb>.nsf -r
    updall -r是重建所有已经使用的视图索引
    把<yourdb>.nsf替换成损坏的数据库文件名,记得带domino/data下的子路径,如mail/admin.nsf。
    如果还不行的话,只好保佑你还有其他数据库的复本或者备份可以了。
    所以,养成良好的备份习惯还是很重要的。

    这里提一下收件箱,因为它情况比较特殊,其实是个文件夹,很多时候是靠邮件邮递机制放入到这个文件夹中的,它的损坏目前只能归结为设计的视图索引问题(所有的设计文档也是放在各个设计视图中的,自然也会有索引问题)。系统看不见收件箱了,因此邮件发送过来,虽然放进了邮箱,但是放不到收件箱中。
    所以很多时候的建议都是刷新一下设计,如果再不行再建索引。但是有可能设计本身是在的,刷新设计并不起作用,只能通过更换设计(先换成别的设计模板,再换回来)。但是这样一来,所有旧邮件就全部从收件箱中“消失”了。
    不过如果正常的话,以上方法至少可以让新邮件继续放进收件箱,邮箱可以正常使用了。
    三、服务器时间的影响

    服务器时间跟视图索引有着密切的关系,但服务器时间不仅仅跟它有关,数据的复制、同步和备份,以及事务日志等涉及到数据的内容,系统的认证(如口令的校验、密码修改、甚至多服务器验证)等,都依赖于服务器时间。

    说得夸张一点,只要服务器时间一开始运行,所有的系统正常都挂在这个时间上了,你对时间任意的修改,都有可能像时光机器的产生,对历史进程产生巨大的影响。

    嗯,这个事情延伸开去就比较大了,不过因为没有仔细整理,所以目前还是先收尾吧。不管怎样,先记住时间的重要性,再了解视图的索引原理和方法,在实际工作中应该会有比较大帮助。

    问题帖举例:
    简述 (Domino/Data/log.nsf) 时间离现在太远 原因
    * 2007-07-18 http://www.lotusfans.com/forum/showthread.php?t=34742
    * 2007-03-03 http://www.lotusfans.com/forum/showthread.php?t=32619
    * 2007-07-12 http://www.lotusfans.com/forum/showthread.php?t=34621
    因系统时间被更改了,无法发送邮件~ 2007-06-27
  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/hannover/p/2563312.html
Copyright © 2011-2022 走看看