Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Calendar Server 6 2005Q1 管理指南 

第 4 章
数据库迁移实用程序

如果您拥有的是早期版本的 Calendar Server(5.11 或更早版本),则在安装 Calendar Server 6 2005Q1 后执行安装后配置时,您可能需要迁移组件数据库和 LDAP 数据库。

本章提供了选择正确的实用程序一节,帮助您选择正确的实用程序来运行。

本章包括以下各节:


安装后的数据库迁移实用程序

安装 Calendar Server 6 2005Q1 之后,如果您所拥有的日历数据库和 LDAP 数据库条目是来自早期安装的 Calendar Server 5.1.1,请按照给定的顺序运行以下实用程序:


选择正确的实用程序

由于有许多实用程序可供选择,图 4-1 显示了不同的配置方案、要运行的实用程序以及运行的顺序。

图 4-1 选择要运行的迁移实用程序

此图显示了多种影响运行何种 LDAP 迁移实用程序的配置方案。


csmig

csmig 实用程序为日历数据库中的每个日历指定属主,并将每个日历 ID (calid) 映射到一个属主(如果需要)。

csmig 实用程序支持托管(虚拟)域和 LDAP 日历查找数据库 (CLD) 插件。使用 LDAP CLD 插件可以访问已迁移数据库中的日历。有关 LDAP CLD 插件的信息,请参见第 6 章“在多个计算机上配置日历数据库分发”

本节介绍以下主题:

csmig 的功能

csmig 迁移实用程序执行以下功能:

csmig 的要求

使用 csmig 的要求为:

csmig 语法

csmig 实用程序语法如下:

csmig [ -t DestinationDB ] [ -b Backend-DWPHost ]
      [ -o OutputFile ]  [ -e ErrorFile ] [ -m MappingFile ]
        -c calendarOwner -r resourceOwner { migrate|dryrun }

表 4-1 列出了实用程序选项,并给出了每个选项的说明和默认值。

表 4-1 csmig 的选项

csmig 选项

说明和默认值

-t DestinationDB

指定 csmig 生成的目标数据库。默认值为 MigratedDB

-b Backend-DWPHost

指定 DWP 后端主机服务器的名称。此名称必须与 ics.conf 文件中指定的 DWP 后端主机服务器名称相匹配。

-o OutputFile

指定输出文件,此文件捕获 csmig 输出到屏幕的信息以及出现的任何错误。默认值为 MigrateOut

-e ErrorFile

csmig 向其中写入无法解决的错误或数据库条目的文件。如果数据库项无法解决,则不将它们写入目标数据库。默认值为 MigrateError

-m MappingFile

指定 dryrun 模式下生成的输出映射文件,它列出了 LDAP Schema 中需要更改的条目。例如:

Old calid = jsmith New calid = jsmith:basketball

映射文件中仅仅提供要对 LDAP Schema 进行的更改列表,但实际上 csmig 并没有更改模式。

migrate 模式中不使用该映射文件。

-c calendarOwner

为不具有属主的用户日历指定属主。

-r resourceOwner

为不具有属主的资源日历指定属主。

migrate|dryrun

指定实用程序运行的模式。使用 migrate 模式执行迁移。在实际迁移之前,使用 dryrun 模式生成输出映射文件。

csmig 迁移步骤

安装和配置 Calendar Server 6.x 后,必须运行 csmig 来迁移现有的 Calendar Server 和 LDAP 数据。LDAP CLD 插件的正常工作需要进行 LDAP 数据的迁移。要使用 csmig 迁移日历数据,请按照以下步骤执行操作:

  1. 使用 comm_dssetup.pl 配置 Directory Server。
  2. 如果未使用 comm_dssetup.pl 为 LDAP 属性创建索引,请在此时创建索引。这将大大提高 LDAP 数据迁移的性能。

  3. 请使用分步服务器(非产品服务器)执行模拟运行测试。
  4. 模拟运行报告 csmig 在实际迁移过程中将会执行的操作,但模拟运行并没有迁移任何数据。在模拟运行之后以及实际迁移之前,您可以更正任何错误,并确定处理任何未解决的日历的计划。

    有关如何进行模拟运行测试的说明,请参见要执行模拟运行测试

  5. 迁移产品数据
  6. 产品运行时,csmig 将迁移日历数据库(.db 文件)和 LDAP 数据(用户和组首选项数据)、icsSubscribedicsCalendaricsCalendarOwnedicsFreeBusyicsSetuid(用于资源日历)。迁移之后,将为所有日历资源创建 LDAP 项。

    有关如何迁移产品数据的说明,请参见要迁移产品数据

要执行模拟运行测试

  1. 在分步服务器上安装 Calendar Server 6.x(如果需要)。
  2. 将日历数据库的快照复制到分步服务器。
  3. 通过执行以下任务在分步服务器上模仿产品 LDAP 环境:
    • 安装 Directory Server。
    • 在此服务器上安装 LDAP 数据库的快照。
  4. 运行 comm_dssetup.pl 以配置分步 Directory Server。
  5. 运行 csconfigurator.sh 以配置分步 Calendar Server。
  6. icsuser(或者如果不相同,以在配置过程中指定的 Calendar Server 运行时用户 ID)身份登录。如果您以超级用户(root 用户)身份运行 csmig,则可能需要重置已迁移文件的权限。
  7. 转到 cal_svr_base/SUNWics5/cal/sbin 目录。
  8. 运行 csdb check 命令检查数据库是否损坏。如果该命令检测出数据库已损坏,则运行 csdb rebuild 以重新建立数据库。
  9. 考虑为不具有属主的用户日历创建通用的 calid。例如,以下命令将创建 calidorphan 的用户:
  10. ./csuser -g orphan -s adminuser -y password -l en -c orphan create orphan

  11. 使用 stop-cal 命令停止 Calendar Server(如果需要)。
  12. cal_svr_base/SUNWics5/cal/sbin/stop-cal

  13. 运行 csmig 时应带 dryrun 选项。例如,可以输入:
  14. ./csmig -b sesta.com -o csmig.out -e csmig.errors -m csmig.map -c orphan -r calmaster dryrun

    此命令将不具有属主的用户日历(orphan 日历)指定给属主 orphan,将不具有属主的资源日历指定给属主 calmaster

  15. 查看输出映射文件 (csmig.map)。映射文件列出了 LDAP Schema 中需要更新的条目。
  16. 检查输出、映射和出错文件。解决发现的任何 LDAP 问题或错误。在进行实际的迁移之前,确定如何处理未解决的日历。有以下若干选择:
    • 在迁移前,删除任何不需要的日历。
    • 为任何未解决的日历指定属主。
    • 使用 -c-r 选项,允许 csmig 在迁移期间为日历指定属主。
  17. 运行 csmig 以迁移分步日历数据库。
  18. 例如,以下命令将日历数据库迁移至 /var/opt/SUNWics5/testcsdb/ 目录:

    ./csmig -t /var/opt/SUNWics5/testcsdb/ -b sesta.com -o csmig.out -e csmig.errors -m csmig.map -c orphan -r calmaster migrate

  19. 测试迁移完成之后,请执行以下步骤检查新迁移的日历数据库。
    1. 将迁移的数据库复制到 caldb.berkeleydb.homedir.path 参数指定的 /csdb 目录中。或者编辑此参数,使其指向迁移的数据库的新位置。
    2. 对新的日库据库运行 csdb check。迁移的数据库中事件和待办事件的数目应与迁移之前的总数相匹配。
    3. 搜索 icsCalendarOwned 项,并确保这些项与迁移前日历的数目相匹配。
    4. 登录到 Calendar Express 或 Communications Express,并验证迁移的数据库中的某些日历。

如果成功完成了迁移测试,则可以开始迁移产品数据库。

要迁移产品数据

  1. icsuser(或在配置过程中指定的 Calendar Server 运行时用户 ID)身份登录。如果您以超级用户(root 用户)身份运行 csmig,则可能需要重置已迁移文件的权限。
  2. 转到 cal_svr_base/SUNWics5/cal/sbin 目录。
  3. 使用 stop-cal 命令停止 Calendar Server(如果需要)。
  4. cal_svr_base/SUNWics5/cal/sbin/stop-cal

  5. 备份以下数据:
    • 日历数据库(.db 文件)。
    • LDAP 数据:slapd 数据库目录和 LDAP 数据库。
    • ics.conf 文件。此步骤实际上并不需要,但如果要恢复为初始配置,该步骤则会很有帮助。
  6. 运行 csmig 时应带 migrate 选项。
  7. 例如,以下命令将日历数据库迁移至 /var/opt/SUNWics5/newcsdb/ 目录:

    ./csmig -t /var/opt/SUNWics5/newcsdb/ -b sesta.com -o csmig.out -e csmig.errors -m csmig.log -c orphan -r calmaster migrate

  8. 检查错误文件 (csmig.errors) 中是否存在未解决的日历,并根据要执行模拟运行测试步骤 13 中的计划进行解决。
  9. 运行 csdb check 命令以检查迁移的数据库。如果该命令检测出数据库已损坏,则运行 csdb rebuild 以重新建立数据库。
  10. 将新迁移的数据库复制到 caldb.berkeleydb.homedir.path 参数指定的 /csdb 目录中。或者编辑此参数,使其指向迁移的数据库的新位置。
  11. 通过对 ics.conf 文件中的以下配置参数进行必要的更改,以启用 LDAP CLD 插件:
    • service.dwp.enable = "yes"
    • service.dwp.port = "9779"
    • csapi.plugin.calendarlookup = "y"
    • csapi.plugin.calendarlookup.name = "*"
    • caldb.cld.type = "directory"
    • caldb.dwp.server.default = "default-server-name"
    • caldb.dwp.server.server-hostname.ip = "server-hostname"(用于包含本地服务器的每个后端服务器)
    • caldb.cld.cache.enable = "yes"(如果要使用 CLD 高速缓存选项)
    • caldb.cld.cache.homedir.path 指定 CLD 缓存目录的位置。默认值为 /var/opt/SUNWics5/csdb/cld_cache
    • 有关设置 LDAP CLD 插件的配置参数的信息,请参见第 6 章“在多个计算机上配置日历数据库分发”

  12. 使用 start-cal 命令重新启动 Calendar Server。
  13. 登录到日历用户界面(Calendar Express 或 Communications Express),并通过检查若干个迁移的日历来验证配置是否生效。
  14. 要在检查时禁用警报,请将 ics.conf 文件中的以下参数都设置为 "no"

    • caldb.serveralarms = "no"
    • caldb.serveralarms.dispatch = "no"
    • service.ens.enable = "no"
    • service.notify.enable = "no"
    • ine.cancellation.enable = "no"
    • ine.invitation.enable = "no"
    • service.admin.alarm = "no"

csmig 提示和疑难解答

本节介绍了以下提示和疑难解答示例:

csmig 模拟运行日历显示了日历的错误属主。

问题示例

名为 tchang:myCalendar 的日历的属主在日历数据库中为 jsmithcsmig 模拟运行将映射显示为 jsmith:tchang_myCalendar。但是,您希望将此日历命名为 tchang:myCalendar,并将 tchang 指定为属主。

解决方案示例

在迁移之前,使用 cscal 实用程序将 tchang:myCalendar 日历的属主更改为 tchang。执行此操作后,迁移操作会将此日历映射为 tchang:myCalendar,并向 LDAP 条目的用户 ID tchang 添加 icsCalendarowned

LDAP 日历搜索无法正常工作。

问题

迁移之后,将启用 LDAP 日历搜索,但日历搜索对话框不返回任何结果,或仅返回部分结果。

解决方法

启用 LDAP 日历搜索后,Calendar Server 可以搜索 (&(objectclass=icscalendaruser)(icscalendarowned=*substr*))

使用以下过滤器对 LDAP 数据手动运行两个不同的搜索,并比较输出结果:

因为服务器使用包含 icsCalendarUser 对象类的过滤器,所以可能已在禁用模式检查的情况下部署了 LDAP 服务器,并且可能在没有 icsCalendarUser 对象类的情况下已经置备了某些日历条目。

csmig 模拟运行指示重复的日历名称。

问题示例

csmig 空运行映射文件和输出文件指示存在重复的日历名称。例如,在初始数据库中,jsmith 拥有以下日历:

模拟运行的结果表示迁移时将合并这两个日历,生成的日历将为 jsmith:basketball,该日历的属主为 jsmith 并总共具有 15 个事件

输出文件将包含以下警告消息:

Error modifying calendar properties, error=2

解决方案示例

如果不希望合并两个日历,则在迁移之前将 basketball 的属主更改为 jsmith 以外的用户。这可以保持这两个独立日历数据的完整性。

如何将不带有属主的日历指定给不同的属主?

问题

默认情况下,csmig 将所有不带有属主的日历指定给一个属主,但是我希望为其中的某些日历指定不同的属主。

解决方法

csmig 不接受命令行中的映射文件。但是,可以在迁移之前为初始数据库中不带有属主的日历指定属主。检查所有不带有属主的日历的空运行映射文件。然后在迁移之前使用 cscal 实用程序为不带有属主的日历指定属主。在 dryrun 模式下再次运行 csmig 以验证新的属主。

如何将日历用户移动到其他后端服务器?

问题

如何将用户从一个后端服务器移动到另一个后端服务器?

解决方法

要移动日历用户,应通过 export 命令导出初始服务器上该用户的每个日历,然后通过 import 命令将日历输入到第二个服务器。移动日历后,可以删除初始服务器上的日历。有关如何移动日历的说明,请参见将用户日历移至不同的后端服务器将资源日历移至不同的后端服务器


csvdmig

csvdmig 实用程序为要使用托管(虚拟)域的工作地点修改 Calendar Server 数据库和 LDAP Directory Server 数据库。

本节包含以下主题:

csvdmig 的功能

csvdmig 实用程序按以下方式将域名添加到用户 ID:

csvdmig 语法

csvdmig 实用程序的语法如下:

csvdmig [-t DestinationDB] [-c ConfigFile] [-e ErrorFile] [-m MappingFile]
  migrate [DB | LDAP]

表 4-2 列出了 csvdmig 使用的选项,并给出了每个选项的说明。

表 4-2 csvdmig 的选项

选项

说明和默认值

-m  MappingFile

指定映射文件的输入参数。有关映射文件的更多信息,请参见映射文件。默认值为 MigrateMapping

-c ConfigFile

指定 Calendar Server 配置文件的输入参数。默认值为 ics.conf 文件。

-t  DestinationDB

指定数据库位置的输出参数。默认值为 MigratedDB。请参见目标 DB

-e  ErrorFile

为无法解决的错误指定错误文件的名称的输出参数。默认值为 MigrateError

DB|LDAP

指定要修改的数据库:

DB — Calendar Server 数据库
LDAP — LDAP 目录

默认值为日历数据库 (DB)。

映射文件

映射文件是输入文本文件,可将现有用户映射到其各自的域。运行 csvdmig 之前,您必须创建映射文件。每行指定一个条目,在旧值和新值之间留有一个空格。例如:

user1 user1@sesta.com
user2 user2@siroe.com
user3 user3@sesta.com
...
user-n user-n@siroe.com

目标 DB

虽然此变量的名称为 DestinationDB 并且其默认值为 MigratedDB,但 csvdmig 并不创建单独的迁移数据库。它只是对用该选项指定的原始数据库进行相应更新。

csvdmig 示例


commdirmig

commdirmig 实用程序将 LDAP 数据从 Sun LDAP Schema 1 迁移到 Schema 2,为将 Access Manager 用于验证服务做好准备。

本节包含以下主题:

谁应运行该实用程序

如果之前使用的是 Messaging Server 5.x 或 Calendar Server 5.x,则您的 LDAP 条目的格式为 Schema 1。在新的 Calendar Server 6 2005Q1 环境中,如果要使用 Access Manager 来进行验证,则必须运行此实用程序将 LDAP 条目转换为 Schema 2 格式。

如果使用的不是 Access Manager,由于 Schema 2 是所有使用 LDAP 的 Java Enterprise System 产品首选的 LDAP Schema,所以仍应考虑迁移 LDAP 数据。将来,更新的通信产品(Calendar、Messaging 和 Instant Messaging)版本可能不再支持 Schema 1。但是,如果您目前不打算使用 Access Manager,则可以在以后适当的时候进行迁移。


如果具有首选的单独 LDAP 目录,则必须在该 LDAP 和用于验证的 LDAP 上运行 commdirmig


何时运行该实用程序

如果要从 Java Enterprise System 之前的 Calendar Server 版本迁移,请在运行 cs5migratecsmigcsvdmig 之后运行此实用程序。

何处查找文档

该迁移实用程序需要特殊的准备和规划。此迁移实用程序在单独的文档指南中有说明,请参见以下站点中的 Sun Java System Communications Services Schema Migration Guide

http://docs.sun.com/coll/CalendarServer_05q1
http://docs.sun.com/coll/CalendarServer_05q1_zh

何处查找该实用程序

在 Sun Java Enterprise System 2005Q1 中,此实用程序与 Access Manager 2005Q1 以及用户管理实用程序 commadmin 捆绑在一起。

如果不打算更新 Access Manager 并且只需要用于 Calendar Server 的迁移实用程序,可从技术支持处获得此实用程序的修补程序。



上一页      目录      索引      下一页     


文件号码:819-1478。版权所有 2005 Sun Microsystems, Inc. 保留所有权利。