如果已选择不使用由 Calendar Server 提供的自动备份工具(使用 csstored),则您需要执行备份过程以保护数据。本章介绍了如何使用 Calendar Server 工具和其他 Sun 工具来执行对日历数据库文件的手动备份和恢复。
要备份和恢复 /var/opt/SUNWics5/csdb 目录中的 Calendar Server 数据,使用以下命令行实用程序:
csbackup 命令备份日历数据库、特定日历或用户的默认日历。要备份的目录必须由运行时用户 (icsuser) 所拥有,否则当您尝试恢复数据时,将会收到一条错误消息。
csrestore 命令恢复使用 csbackup 保存的日历数据库、单个日历或用户默认日历。
如果您具有使用 Berkeley 数据库工具(例如 db_recover)的现有自定义脚本,则会发现在升级到 Calendar Server 版本 6.3 后,这些工具将无法工作。在 Calendar Server 软件的较早版本中,使用静态库对这些工具进行编译。现在使用动态库来编译它们。
要适应此更改,请按以下方式更改自定义脚本以便使用动态链接库:将全局变量 LD_LIBRARY_PATH 更改为动态库的名称 (libdb-4.2.so)。
本章包括以下各节:
Calendar Server 版本 2 数据与当前产品不兼容。请不要尝试恢复由 Calendar Server 版本 2 backup 实用程序备份的日历数据,否则可能会导致数据丢失。
如果您有要移动到当前版本的版本 2 日历数据,则必须与技术支持部门联系以获取相应的迁移实用程序。
csbackup 实用程序可以备份日历数据库、指定日历或用户的默认日历。本节包括以下内容:
以数据库文件所有者的身份登录(例如 icsuser)。
使用 csbackup 实用程序 database 命令。
例如,可使用以下命令将日历数据库备份到名为 backupdir 的目录中:
csbackup -f database backupdir
通过检查备份目录中的 ics50caldb.conf 版本文件来验证是否已备份数据库的正确版本。
如果目标备份目录已存在而您没有指定 -f 选项,则 csbackup 实用程序将失败。例如,如果 backupdir 已经存在,即使该目录为空,以下命令也将失败:
csbackup database backupdir
因此,如果指定的目标备份目录已经存在,则需在运行 csbackup 时包含- f 选项。
也可以指定一个不存在的目标备份目录,让 csbackup 为您创建该目录。
以数据库所有者的身份登录 (icsuser)。
要以 iCalendar 或 XML 格式将日历备份到文件中,使用 csbackup 实用程序 calendar 命令。
备份文件的扩展名(.ics 或 .xml)表明了其格式。
例如,可使用以下命令以 iCalendar (text/calendar MIME) 格式将日历 jsmithcal@sesta.com 备份到 backupdir 目录中的 jsmith.ics 文件中:
csbackup -c jsmithcal@sesta.com calendar backupdir/jsmith.ics
或者,使用以下命令以 XML (text/XML) 格式将日历 jsmithcal@sesta.com 备份到 backupdir 目录中的 jsmith.xml 文件中:
csbackup -c jsmithcal@sesta.com calendar backupdir/jsmith.xml
以数据库所有者的身份登录 (icsuser)。
要以 iCalendar 或 XML 格式将用户的默认日历备份到文本文件中,使用 csbackup 实用程序 def cal 命令。为输出文件指定的文件扩展名(.ics 或 .xml)决定了使用的格式。
例如,使用以下命令以 iCalendar (text/calendar MIME) 格式将用户 jsmith@sesta.com 的默认日历备份到备份目录中名为 jsmith.ics 的文件中:
csbackup -a jsmith@sesta.com defcal backupdir/jsmith.ics
或者,使用以下命令以 XML (text/xml MIME) 格式将用户 jsmith@sesta.com 的默认日历备份到备份目录中名为 jsmith.xml 的文件中:
csbackup -a jsmith@sesta.com defcal backupdir/jsmith.xml
csrestore 实用程序恢复使用 csbackup 保存的日历数据库、单个日历或用户默认日历。必须在安装 Calendar Server 的本地计算机上运行 csrestore 实用程序,且必须首先停止 Calendar Server。(但备份数据库时可以运行 Calendar Server。)
本节包括以下内容:
以数据库所有者的身份登录 (icsuser)。
要恢复使用 csbackup 实用程序保存到备份目录的日历数据库,使用 csrestore 实用程序 database 命令。
例如,可使用以下命令恢复保存到名为 backupdir 的备份目录中的日历数据库:
csrestore database backupdir
以数据库所有者的身份登录 (icsuser)。
要从数据库中恢复使用 csbackup 实用程序保存到备份目录的特定日历,使用带有 -c 选项的 csrestore 实用程序 database 命令。
例如,可使用以下命令从备份数据库目录 backupdir 中恢复日历 jsmithcal@sesta.com :
csrestore -c jsmithcal@sesta.com calendar backupdir
以数据库所有者的身份登录 (icsuser)。
要恢复使用 csbackup 实用程序保存到备份文件中的特定日历,使用带有 -c 选项的 csrestore 实用程序 calendar 命令。
备份文件的文件扩展名(.ics 或 .xml)表明了日历的保存格式。
例如,可使用以下命令恢复以 iCalendar (text/calendar MIME) 格式保存到 backupdir 目录中文件 jsmith.ics 中的日历 jsmithcal@sesta.com:
csrestore -c jsmithcal@sesta.com calendar backupdir/jsmith.ics
或者使用以下命令恢复以 XML (text/calendar MIME) 格式保存到 bcakupdir 目录中文件 jsmith.xml 中的日历 jsmithcal@sesta.com:
csrestore -c jsmithcal@sesta.com calendar backupdir/jsmith.xml
以数据库所有者的身份登录 (icsuser)。
要恢复使用 csbackup 实用程序保存到备份文件中的用户默认日历,使用 csrestore 实用程序 defcal 命令。
备份文件的文件扩展名(.ics 或 .xml)表明了日历的保存格式。
例如,使用以下命令恢复用户 jsmith@sesta.com 的以 iCalendar (text/calendar MIME) 格式保存到备份目录 backupdir 中名为 jsmith.ics 的文件中的默认日历:
csrestore -a jsmith@sesta.com defcal backupdir/jsmith.ics
使用以下命令恢复以 XML (text/xml MIME) 格式保存到备份目录 backupdir 中名为 jsmith.xml 的文件中的 jsmith 默认日历:
csrestore -a jsmith@sesta.com defcal backupdir/jsmith.xml
也可以使用 Sun StorEdge Enterprise Backup 软件(以前称为 Solstice Backup)或 Legato Networker 来备份和恢复 Calendar Server 数据。Sun StorEdge Enterprise Backup 软件和 Legato Networker 相似,本节中的说明同时适用于这两种产品。
然而,在尝试备份 Calendar Server 之前,请参见 Sun StorEdge Enterprise Backup 或 Legato Networker 文档。
有关 Sun StorEdge Enterprise Backup 软件的文档,请访问 http://docs.sun.com。
本节包括以下内容:
Calendar Server 在 /opt/SUNWics5/cal/sbin 目录中提供了以下文件,可与 Sun StorEdge 或 Legato 备份软件一起使用:
Calendar Server 应用程序特定模块 (Application Specific Module, ASM)。ASM 是一个程序,可由 Sun StorEdge 或 Legato 备份软件调用以备份和恢复数据。
用于调用 csbackup 实用程序的脚本。
用于调用 csrestore 实用程序的脚本。
要使用 Sun StorEdge 或 Legato 备份软件来备份日历数据库,请执行以下操作:
将 Sun StorEdge 或 Legato 的 nsrfile 二进制文件复制到 /usr/lib/nsr 目录中。
在 /usr/lib/nsr 目录中创建以下符号链接:
icsasm -\> /opt/SUNWics5/cal/sbin/icsasm nsrfile -\> /usr/lib/nsr/nsrfile
转到 /opt/SUNWics5/cal/sbin 目录,并运行带有 -l 选项的 csbackup 实用程序。例如:
cd /opt/SUNWics5/cal/sbin ./csbackup -l
-l 选项将在当前目录下创建备份目录映像。该目录中是一些空文件,仅用于向备份程序提供关于如何在备份介质中存储日历的信息。如果备份目录已经存在,系统将按照当前目录的结构对其进行同步。
使用 save 命令备份日历数据。例如:
/usr/bin/nsr/save -s /opt/SUNWics5/cal/sbin/budir
也可以使用 Sun StorEdge 或 Legato 备份 GUI 来预定备份,方法是设置客户端存储集以定期备份数据库。
注意:请不要修改 .nsr 文件。这些生成的文件包含备份过程中由 save 命令和 icsasm 命令负责解释的指令。
Calendar Server 不支持增量备份功能。请不要使用该功能,因为备份目录只是文件夹结构的映像,并不包含实际的数据。
不能备份名称中包含非 ASCII 字符或反斜杠 (/) 的日历。
让备份过程自动完成。
前面的步骤介绍了如何手动运行备份操作。在运行备份程序的 save 命令之前,设置备份程序的 backup 命令以运行 Calendar Server csbackup 命令行实用程序,从而实现自动化的备份进程。
要恢复日历数据: