上一章 目录 索引 下一章 |
Sun ONE Calendar Server 管理员指南 |
第 5 章 管理 Calendar Server 数据库
本章介绍如何使用 csdb 公用程序来管理 Sun ONE Calendar Server 数据库和日历数据。
要运行 csdb 公用程序,请在运行 Calendar Server 的系统上使用具有管理权限的用户身份登录。有关更多信息,请参见第 7 章 “Calendar Server 命令行公用程序”。
有关如何备份和恢复日历数据库的信息,请参见第 6 章 “备份和还原 Calendar Server 数据”。
指定目标数据库
csdb 公用程序的 -t 选项允许您指定目标数据库:
如果没有添加 -t 选项,则 csdb 会作用于所有这三个数据库,但 check 和 rebuild 命令除外,它们只会作用于日历数据库。
表 5-1 说明日历数据库 (caldb) 文件:
查看日历数据库状态
要查看日历数据库的状态,请使用 csdb 公用程序的 list 命令。Calendar Server 可在运行状态或停止状态。
使用 -t 选项可指定目标数据库(caldb、sessdb 或 statdb);否则,csdb 将作用于所有这三个数据库。
例如,要查看所有数据库的数据库状态和统计信息,请执行以下命令:
要以详细模式查看当前目录中的日历数据库信息,请执行以下命令:
删除日历数据库
要删除日历数据库,请使用 csdb 公用程序的 delete 命令。必须停止 Calendar Server。
使用 -t 选项可指定目标数据库(caldb、sessdb 或 statdb);否则,csdb 将删除所有这三个数据库。
导入和导出日历数据
要将日历数据导出到文件或从文件导入日历数据,请使用 csexport 和 csimport 公用程序。日历数据可以是 iCalendar (.ics) 或 XML (.xml) 的格式。
必须在安装 Calendar Server 的机器上运行 csexport 和 csimport。Calendar Server 可在运行状态或停止状态。
导出日历数据
要将日历数据导出到文件,请使用 csexport。为输出文件指定的文件扩展名(.ics 或 .xml)确定所使用的格式。
例如,要以 iCalendar(text/calendar MIME)格式将日历 ID (calid) 为 JSmithcal 的日历导出到名为 jsmith.ics 的文件,请执行以下命令:
csexport -c JSmithcal calendar jsmith.ics
要以 XML(text/xml MIME)格式将日历 JSmithcal 导出到名为 jsmith.xml 的文件,请执行以下命令:
csexport -c JSmithcal calendar jsmith.xml 导入日历数据
要从先前使用 csexport 公用程序保存的文件导入日历数据,请使用 csimport。导入文件的文件扩展名(.ics 或 .xml)指示了保存文件时所使用的格式。
例如,要从以 iCalendar (text/calendar MIME) 格式保存的文件 jsmith.ics 将日历数据导入到日历 ID (calid) JSmithcal,请执行以下命令:
csimport -c JSmithcal calendar jsmith.ics
要从名为 jsmith.xml 的文件(此文件以 XML (text/xml MIME) 格式保存)将数据导入到日历 JSmithcal,请执行以下命令:
csimport -c JSmithcal calendar jsmith.xml
如果指定的日历 ID (calid) 已经存在,则在导入新数据之前会清除该日历 ID 的数据。
恢复损坏的数据库
要恢复损坏的会话或统计数据库,请使用 csdb 公用程序的 recover 命令。使用 -t 选项可指定目标数据库:sessdb(会话数据库)或 statdb(统计数据库)。
在运行 recover 命令前,请使用 stop-cal 命令停止 Calendar Server。
备注 要恢复已损坏的日历数据库 (caldb),请使用 csdb 公用程序的 check 和 rebuild 命令,而不是 recover 命令。
有关更多信息,请参见“检查和重建日历数据库”。
检查和重建日历数据库
csdb 公用程序命令包括以下检查命令和在必要时重建日历数据库 (caldb) 的命令:
check 命令会扫描日历数据库,确定是否有任何损坏,并在命令输出中报告结果。(check 命令不会检查警报或组日程安排引擎 (GSE) 数据库中是否有损坏的情形。) csdb 公用程序还包括用于恢复损坏的会话或统计数据库的 recover 命令。如果损坏的是日历数据库,则请使用 check 和 rebuild,而不是 recover。
在运行这些命令之前,请使用 csbackup 公用程序(或其他备份公用程序)来备份日历数据库。
检查日历数据库是否损坏
check 命令会扫描日历数据库,并检查日历属性 (calprops) 事件和待办事项(任务)是否有任何损坏发生。如果 check 命令发现不一致的情形且无法解决,则此命令会在输出中报告此情况。
您应定期运行 check 命令,检查日历数据库是否有不一致的问题。例如,考虑在每次备份数据库后运行 check。然而,如果已经知道日历数据库发生损坏,就不必运行 check 命令。继续执行并重建损坏的数据库。
要检查日历数据库是否损坏:
请使用具有管理权限的用户登录到安装 Calendar Server 的系统。
Calendar Server 可在运行状态或停止状态,但是最好先停止 Calendar Server。
如果尚未创建日历数据库的副本,请创建一个。只需复制六个数据库 (.db) 文件。不必复制任何共享 (*.share) 或日志 (log.*) 文件。
定位到 server-root/cal/bin/ 目录。例如,在 Solaris 上输入:
cd /opt/SUNWics5/cal/bin
对日历数据库副本运行 check 命令:
./csdb check dbdir > /tmp/check.out 2>&1
如果没有指定 dbdir,则 check 会使用当前目录中的数据库。
check 命令会产生大量信息,因此请考虑将所有输出(包括 stdout 和 stderr)重定向到文件(如本示例所示)。
在 check 完成后,请查看输出文件。如果数据库已损坏,请运行 rebuild 命令。 重建损坏的日历数据库
rebuild 命令会扫描日历数据库,并检查日历属性 (calprops) 事件和待办事项(任务)是否有任何损坏发生。如果 rebuild 命令发现不一致的情形,它会在 server-root/cal/bin/rebuild_db/ 目录中生成一个重建的日历数据库(即 .db 文件)。
备注 rebuild 命令可重建除组日程安排引擎 (GSE) 数据库以外的所有数据库。要确定 GSE 数据库中是否包含项,请运行 csschedule -v list 命令,然后让 GSE 处理完各项,然后再运行 rebuild 命令。
重建损坏的日历数据库:
请使用具有管理权限的用户登录到安装 Calendar Server 的系统。
如果尚未创建日历数据库的副本,请创建一个。只需复制六个数据库 (.db) 文件。不必复制任何共享 (*.share) 或日志 (log.*) 文件。
定位到 server-root/cal/bin/ 目录。例如,在 Solaris 上输入:
cd /opt/SUNWics5/cal/bin
对日历数据库副本运行 rebuild 命令:
./csdb rebuild dbdir > /tmp/rebuild.out 2>&1
如果没有指定目录,则 rebuild 会使用当前目录中的数据库。
rebuild 命令会产生大量信息,因此请考虑将所有输出(包括 stdout 和 stderr)重定向到文件(如本示例所示)。
在 rebuild 完成后,请查看 rebuild.out 文件中的输出。如果重建成功,则 rebuild.out 文件中的最后一行应为:
Calendar database has been rebuilt
在上一步中验证重建成功后,请将重建的数据库 (.db) 文件从 server-root/cal/bin/rebuild_db/ 目录复制到产品数据库。
上一章 目录 索引 下一章
版权所有 2002 Sun Microsystems, Inc. 全权所有。
更新日期 2002 年 8 月 30 日