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

使用转储和装入过程来恢复日历数据库

本节包含以下主题:

转储和装入概述

使用转储和装入过程尝试恢复损坏的数据库。转储和装入过程使用 Berkeley 数据库 db_dumpdb_load 实用程序,它们包含在 Calendar Server 的以下目录中:


cal_svr_base/SUNWics5/cal/tools/unsupported/bin

db_dump 实用程序读取数据库文件并将数据库条目写入输出文件,使用的格式与 db_load 实用程序兼容。

要获得有关 db_dumpdb_load 实用程序的文档,请访问 Sleepycat Software 公司的 Web 站点:

http://www.sleepycat.com/docs/utility/index.html

使用 db_dumpdb_load 实用程序恢复数据库能否成功取决于数据库的损坏程度。可能需要使用多个 db_dump 选项才能成功恢复数据库。但如果数据库严重损坏,不可能再恢复,您可能需要恢复为最近一次完好的数据库热备份或归档备份。


注 –

在执行转储和装入过程之前,您的日历数据库必须为 Berkeley DB version 3.2.9 版本或更高版本。如果使用的是早期版本,请首先运行 cs5migrate 实用程序升级日历数据库。

要获得 cs5migrate 的最新版本,请与 Sun 技术支持联系。


Procedure执行转储和装入过程

步骤
  1. 以运行 Calendar Server 的用户和组(例如 icsusericsgroup)身份登录,或以超级用户 (root) 身份登录。

  2. 如果必要,请停止 Calendar Server。

  3. 使用 csbackup、Sun StorEdge Enterprise BackupTM 软件或 Legato Networker® 等实用程序备份损坏的数据库。

    有关更多信息,请参阅第 17 章,备份和恢复 Calendar Server 数据

  4. 使用 db_dump 实用程序转储每个损坏的数据库文件。

    数据库文件包括 ics50calprops.dbics50journals.dbics50alarms.dbics50events.dbics50todos.dbics50gse.db

    依次使用以下选项运行 db_dump,直到数据库恢复(或确定数据库无法恢复):

    • 没有用于数据库稍微损坏的选项。

    • 对于中等程度的数据库损坏,请使用 -r 选项

    • 对于严重程度的数据库损坏,请使用 -R 选项-R 选项从损坏的数据库中转储的数据(包括不完整的记录和已删除的记录)比 -r 选项要多。

      例如,运行 db_dump 时带上 -r 选项:


      db_dump -r ics50events.db \> ics50events.db.txt
  5. 使用 db_load 实用程序将输出文件装入新数据库文件。

    例如:


    db_load new.ics50events.db < ics50events.db.txt

    如果 db_load 报告奇数个关键字或数据条目,请编辑 db_dump 输出文件,并删除多余的关键字或数据条目。然后再次运行 db_load

  6. 对其他损坏的数据库文件重复以上两步。

    也就是,对其他损坏的数据库文件运行 db_dump

  7. 使用 csdb rebuild 命令重新建立已恢复的数据库文件,如重建损坏的日历数据库所述。

    rebuild 完成后,再次查看输出文件中的输出结果。如果重新建立成功,rebuild.out 文件中的最后一行应如下所示:


    Calendar database has been rebuilt

    如果 csdb rebuild 命令失败,则使用下一个 db_dump 选项(-r-R)来转储数据库。

    如果即使是 db_dump-R 选项也无法恢复损坏的数据库,请与 Sun Microsystems 的技术支持或销售代表联系以获得帮助。在此期间,您可能需要恢复为数据库上次完好无损的备份。