Sun Java System Calendar Server 6 2005Q4 管理指南

重建损坏的日历数据库

本节介绍了如何使用 csdb rebuild 命令,并包含以下主题:

rebuild 概述

rebuild 命令可以扫描日历数据库并检查日历属性 (calprops)、事件和待办事件(任务),以确定是否发生了损坏。如果 rebuild 命令发现了冲突,它将在 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目录中重新建立一个日历数据库(.db 文件)。

如果未指定 -g 选项,rebuild 命令将重新建立除组调度引擎 (Group Scheduling Engine, GSE) 数据库之外的所有数据库。如果还要重新建立 GSE 数据库,请包含 -g 选项。

要确定 GSE 数据库中是否存在任何条目,请运行 csschedule -v list 命令,然后在 GSE 处理完这些条目后再运行 rebuild 命令。

Procedure重建日历数据库

步骤
  1. 以具备管理权限的用户身份登录安装了 Calendar Server 的系统。

  2. 停止 Calendar Server。

  3. 制作日历数据库的副本并将其放到 /tmp/db 目录中。

    只需复制数据库 (.db) 文件和日志 (log.*) 文件。无需复制任何共享 (__db.*) 文件。

  4. 转至 cal_svr_base/SUNWics5/cal/sbin 目录。

    例如,在 Solaris 操作系统上,为转到默认目录,请输入:


    cd /opt/SUNWics5/cal/sbin

    注 –

    如果 sbin 目录的磁盘空间不足,请在其他目录中运行 rebuild 命令。


  5. 针对日历数据库副本运行 rebuild 命令:


    ./csdb rebuild /tmp/db /tmp/

    如果未指定数据库路径,rebuild 将使用当前目录。/tmp/ 参数指定了重新建立的数据库所在的目录。

    如果还要重新建立 GSE 数据库,请包含 -g 选项。

    rebuild 命令会生成许多信息,所以请考虑将所有输出结果(包括 stdoutstderr)重定向到一个文件中。


    注 –

    请始终使用最新的备份副本重建日历数据库。

    但是,如果曾丢失大量数据,同时由于定期备份数据库而创建了多个副本,请从最新副本向最旧副本进行重建。(这样做的唯一缺点是已删除的日历组件将重新出现在重建数据库中。)

    例如,如果目录 db_0601db_0615db_0629 中分别有三组备份日历数据库文件,请按以下顺序运行 rebuild 命令:


    ./csdb rebuild db_0629 
    ./csdb rebuild db_0615 
    ./csdb rebuild db_0601

    rebuild 命令然后会将重新建立的数据库写入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目录中。


  6. 运行完 rebuild 命令后,查看rebuild.out 文件中的输出结果。

    如果重新建立成功,rebuild.out 文件中的最后一行应如下所示:


    Calendar database has been rebuilt
  7. 在上一步中验证重新建立成功后,将重新建立的数据库 (.db) 文件从 rebuild_db 目录复制到您的生产数据库中。

  8. 如果从已损坏的数据库中恢复了任何共享 (__db.*) 或日志 (log.*) 文件,请将它们移到其他目录中。

  9. 重新启动 Calendar Server。

重建输出样例

以下示例显示了此命令及其生成的输出:


# ./csdb -g rebuild
Building calprops based on component information.
Please be patient, this may take a while...
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning events database...
512 events scanned
Scanning todos database...
34 todos scanned
Scanning deletelog database...
15 deletelog entries scanned
Scanning gse database...
21 gse entries scanned
Scanning recurring database...
12 recurring entries scanned
Successful components db scan
Calendar database has been rebuilt
Building components based on calprops information.
Please be patient, this may take a while...
Scanning calprops database to uncover events...
25 calendars scanned
Scanning calprops database to uncover todos...
25 calendars scanned
Successful calprops db scan
Calendar database has been rebuilt
            

注 –

以上样例输出显示了对事件和待办事件数据库扫描了两次。这不是错误。首次扫描是为了验证日历属性数据库中的信息,再次扫描是为了确保可以访问日历属性数据库。