以运行 Calendar Server 的用户和组(例如 icsuser 和 icsgroup)身份登录,或以超级用户 (root) 身份登录。
如果必要,请停止 Calendar Server。
使用 csbackup、Sun StorEdge Enterprise BackupTM 软件或 Legato Networker® 等实用程序备份损坏的数据库。
有关更多信息,请参阅第 17 章,备份和恢复 Calendar Server 数据。
使用 db_dump 实用程序转储每个损坏的数据库文件。
数据库文件包括 ics50calprops.db、ics50journals.db、ics50alarms.db、ics50events.db、ics50todos.db 和 ics50gse.db。
依次使用以下选项运行 db_dump,直到数据库恢复(或确定数据库无法恢复):
没有用于数据库稍微损坏的选项。
对于中等程度的数据库损坏,使用 -r 选项。
对于严重程度的数据库损坏,使用 -r 选项。-R 选项从损坏的数据库中转储的数据(包括不完整的记录和已删除的记录)比 -r 选项要多。
例如,运行 db_dump 时带上 -r 选项:
db_dump -r ics50events.db \> ics50events.db.txt
使用 db_load 实用程序将输出文件装入新数据库文件。
例如:
db_load new.ics50events.db < ics50events.db.txt
如果 db_load 报告奇数个关键字或数据条目,编辑 db_dump 输出文件,并删除多余的关键字或数据条目。然后再次运行 db_load。
对其他损坏的数据库文件重复以上两步。
也就是,对其他损坏的数据库文件运行 db_dump。
使用 csdb rebuild 命令重新建立已恢复的数据库文件,如22.5.6 重建损坏的日历数据库所述。
rebuild 完成后,再次查看输出文件中的输出结果。如果重新建立成功,rebuild.out 文件中的最后一行应如下所示:
Calendar database has been rebuilt |
如果 csdb rebuild 命令失败,则使用下一个 db_dump 选项(-r 或 -R)来转储数据库。
如果即使是 db_dump 的 -R 选项也无法恢复损坏的数据库,请与 Sun Microsystems 的技术支持或销售代表联系以获得帮助。在此期间,您可能需要恢复为数据库上次完好无损的备份。