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

第 17 章 备份和恢复 Calendar Server 数据

如果您已选择不使用由 Calendar Server 所提供的自动备份工具(使用 csstored),那么您需要执行备份过程以保护数据。本章介绍了如何使用 Calendar Server 和其他 Sun 工具来执行对日历数据库文件的手动备份和恢复。

要备份和恢复 /var/opt/SUNWics5/csdb 目录中的 Calendar Server 数据,请使用以下命令行实用程序:


注 –

如果您具有使用 Berkeley 数据库工具(例如 db_recover)的现有自定义脚本,则您会发现在升级到 Calendar Server 6 后,这些工具将无法工作。在 Calendar Server 2004Q4 之前,使用静态库对这些工具进行编译。从该版本起,使用动态库对这些工具进行编译。

要适应此更改,请按以下方式更改自定义脚本以便使用动态链接库:将全局变量 LD_LIBRARY_PATH 设置为动态库的名称 (libdb-4.2.so)。


本章包括以下各节:


注意 – 注意 –

Calendar Server 2 数据与当前产品不兼容。请不要尝试恢复使用 Calendar Server 2 backup 实用程序备份的日历数据,否则可能会导致数据丢失。

如果您有要移动到当前版本的 Calendar Server 2 日历数据,则您必须与技术支持部门联系以获取相应的迁移实用程序。


备份 Calendar Server 数据

csbackup 实用程序可以备份日历数据库、指定日历或用户的默认日历。本节包括以下内容:

Procedure将日历数据库备份到目录中

步骤
  1. 以数据库文件属主的身份登录(例如 icsuser)。

  2. 使用 csbackup 实用程序的 database 命令。

    例如,可使用以下命令将日历数据库备份到名为 backupdir 的目录中:


    csbackup -f database backupdir
  3. 通过检查备份目录中的 ics50caldb.conf 版本文件验证是否已备份数据库的正确版本。


    注 –

    如果目标备份目录已经存在而您没有指定 -f 选项,csbackup 实用程序将失败。例如,如果 backupdir 已经存在,即使该目录为空,以下命令也将失败:


    csbackup database backupdir

    因此,如果指定的目标备份目录已经存在,必须在运行 csbackup 时包含 -f 选项。

    也可以指定一个不存在的目标备份目录,让 csbackup 为您创建该目录。


Procedure将特定日历备份到文件中

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要将日历备份到 iCalendar 或 XML 格式的文件中,请使用 csbackup 实用程序的 calendar 命令。

    备份文件的文件扩展名(.ics.xml)表明了其格式。

    例如,可使用以下命令以 iCalendar (text/calendar MIME) 格式将日历 jsmithcal 备份到 backupdir 目录中的 jsmith.ics 文件中:


    csbackup -c jsmithcal calendar backupdir/jsmith.ics

    或使用以下命令以 XML (text/XML) 格式将日历 jsmithcal 备份到 bcakupdir 目录中的 jsmith.xml 文件中:


    csbackup -c jsmithcal calendar backupdir/jsmith.xml

Procedure将用户的默认日历备份到文件中

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要将用户的默认日历备份到 iCalendar 或 XML 格式的文本文件中,请使用 csbackup 实用程序的 defcal 命令。为输出文件指定的文件扩展名(.ics.xml)决定了使用的格式。

    例如,可以使用以下命令以 iCalendar (text/calendar MIME) 格式将日历用户 jsmith 的默认日历备份到备份目录中名为 jsmith.ics 的文件中:


    csbackup -a jsmith defcal backupdir/jsmith.ics

    或使用以下命令以 XML (text/xml MIME) 格式将日历用户 jsmith 的默认日历备份到备份目录中名为 jsmith.xml 的文件中:


    csbackup -a jsmith defcal backupdir/jsmith.xml

恢复 Calendar Server 数据

csrestore 实用程序,用于恢复使用 csbackup 保存的日历数据库、单个日历或用户的默认日历。必须在安装 Calendar Server 的本地计算机上运行 csrestore 实用程序,且必须首先停止 Calendar Server。(但备份数据库时可以运行 Calendar Server。)

本节包括以下内容:

Procedure恢复日历数据库

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要恢复使用 csbackup 实用程序保存到备份目录中的日历数据库,请使用 csrestore 实用程序的 database 命令。

    例如,可使用以下命令恢复保存到名为 backupdir 的备份目录中的日历数据库:


    csrestore database backupdir

Procedure从备份目录中恢复日历

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要从数据库中恢复使用 csbackup 实用程序保存到备份目录中的特定日历,请使用 csrestore 实用程序的 database 命令与 -c 选项。

    例如,可使用以下命令从备份数据库目录 backupdir 中恢复日历 jsmithcal


    csrestore -c jsmithcal calendar backupdir

Procedure从文件中恢复日历

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要恢复使用 csbackup 实用程序保存到备份文件中的特定日历,请使用 csrestore 实用程序的 calendar 命令与 -c 选项。

    备份文件的文件扩展名(.ics.xml)表明了日历的保存格式。

    例如,可使用以下命令恢复以 iCalendar (text/calendar MIME) 格式保存到 backupdir 目录中文件 jsmith.ics 中的日历 jsmithcal


    csrestore -c jsmithcal calendar backupdir/jsmith.ics

    或者使用以下命令恢复以 XML (text/calendar MIME) 格式保存到 bcakupdir 目录中文件 jsmith.xml 中的日历 jsmithcal


    csrestore -c jsmithcal calendar backupdir/jsmith.xml

Procedure恢复用户的默认日历

步骤
  1. 以数据库属主的身份登录 (icsuser)。

  2. 要恢复使用 csbackup 实用程序保存到备份文件中的用户的默认日历,请使用 csrestore 实用程序的 defcal 命令。

    备份文件的文件扩展名(.ics.xml)表明了日历的保存格式。

    例如,可使用以下命令恢复以 iCalendar (text/calendar MIME) 格式保存到备份目录 backupdir 中文件 jsmith.ics 中的日历用户 jsmith 的默认日历:


    csrestore -a jsmith defcal backupdir/jsmith.ics

    使用以下命令恢复以 XML (text/xml MIME) 格式保存到备份目录 backupdir 中文件 jsmith.xml 中的日历用户 jsmith 的默认日历:


    csrestore -a jsmith defcal backupdir/jsmith.xml

使用 Sun StorEdge Enterprise BackupTM 或 Legato Networker®

也可以使用 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

本节包括以下内容:

StorEdge 或 Legato 工具

Calendar Server 在 /opt/SUNWics5/cal/sbin 目录中提供了以下文件,可与 Sun StorEdge 或 Legato 备份软件一起使用:

icsasm

Calendar Server 应用程序特定模块 (Application Specific Module, ASM)。ASM 是一个程序,可由 Sun StorEdge 或 Legato 备份软件调用以备份和恢复数据。

legbackup.sh

用于调用 csbackup 实用程序的脚本。

legrestore.sh

—用于调用 csrestore 实用程序的脚本。

Procedure使用 Sun StorEdge Enterprise Backup 软件或 Legato Networker 备份日历数据

要使用 Sun StorEdge 或 Legato 备份软件来备份日历数据库,请执行以下操作:

步骤
  1. 将 Sun StorEdge 或 Legato 的 nsrfile 二进制文件复制到 /usr/lib/nsr 目录中。

  2. /usr/lib/nsr 目录中创建以下符号链接:


    icsasm -\> /opt/SUNWics5/cal/sbin/icsasm nsrfile -\> /usr/lib/nsr/nsrfile
  3. 转到 /opt/SUNWics5/cal/sbin 目录,并在运行 csbackup 实用程序时带上 -l 选项。例如:


    cd /opt/SUNWics5/cal/sbin ./csbackup -l

    -l 选项将在当前目录下创建备份目录映像。该目录中是一些空文件,仅用于向备份程序提供关于如何在备份介质中存储日历的信息。如果备份目录已经存在,系统将按照当前目录的结构对其进行同步。

  4. 使用 save 命令备份日历数据。例如:


    /usr/bin/nsr/save -s /opt/SUNWics5/cal/sbin/budir

    也可以使用 Sun StorEdge 或 Legato 备份 GUI 来预定备份,方法是设置客户端存储集以定期备份数据库。

    注意:请不要修改 .nsr 文件。这些生成的文件包含备份过程中由 save 命令和 icsasm 命令负责解释的指令。

    Calendar Server 不支持增量备份功能。请不要使用该功能,因为备份目录只是文件夹结构的映像,并不包含实际的数据。

    不能备份名称中包含非 ASCII 字符或反斜杠 (/) 的日历。

  5. 让备份过程自动完成。

    前面的步骤介绍了如何手动运行备份操作。在运行备份程序的 save 命令之前,设置备份程序的 backup 命令以运行 Calendar Server csbackup 命令行实用程序,从而实现自动化的备份进程。

Procedure使用 Sun StorEdge Enterprise Backup 软件或 Legato 软件来恢复日历数据

要恢复日历数据:

步骤
  1. 使用 Sun StorEdge Enterprise Backup 软件的 nwrestore 功能或 recover 命令恢复备份的日历信息。

    如果使用 nwrestore,将看到以下消息:


    "File already exists. Do you want to overwrite, skip, backup, or rename?"
  2. 选择 overwrite

    出现该消息是因为备份树只是目录的分层结构。也就是说,备份树由空文件组成,且永远保持这种状态。