解决 Project Server 2007 迁移问题

更新时间: 2009年5月

 

上一次修改主题: 2009-04-29

本文内容:

  • 疑难解答之前:验证 Project Server 2007 中的功能

  • 错误日志记录

  • 还原 Project Server 2007 数据库

  • 迁移的用户和权限问题

  • 身份验证问题

  • 迁移流程图

如果在迁移到 Microsoft Office Project Server 2007 的过程中遇到问题,则可以使用本文中介绍的方法。

疑难解答之前:验证 Project Server 2007 中的功能

进一步执行疑难解答之前,请先检查 Microsoft Office Project Server 2007 本身是否正常运行。确定问题是源于迁移还是源于 Office Project Server 2007 配置,可以节省您的时间。

  • 在 Project Server 计算机上创建新的 Project Web Access 实例。请确保此实例未用于迁移。您可以在完成疑难解答之后删除此实例。

  • 在运行 Microsoft Office Project Professional 2007 的计算机上创建、保存并发布有关新建的 Project Web Access 实例的项目。请验证是否可以在项目中心打开该项目。如果不能打开该项目,则可能出现了与 Office Project Server 2007 配置相关的问题。

  • 验证应用程序服务器上是否正在运行队列服务和事件服务。

错误日志记录

当您解决迁移问题时,了解在何处查找任何有关的错误日志记录信息是至关重要的。本节介绍多个具有错误日志记录信息的机制。

  • 查看“队列管理”页,以验证是否存在处于失败状态的作业。查看这些条目的“错误”列,以寻找问题的任何线索。

  • 查看升级日志文件。它位于在迁移配置文件中指定的路径中,可提供在迁移过程中发生的故障的详细说明。

  • 查看服务器的事件日志和跟踪日志。

  • 若要打开并查看事件日志,请在服务器计算机上单击“开始”,然后单击“运行”,键入 Eventvwr,然后单击“确定”。然后单击“应用程序”节点。此操作将显示在服务器上引发的应用程序事件的列表。

  • 若要打开和查看跟踪日志,请在服务器计算机上转到以下文件夹:<驱动器>:\program files\common files\Microsoft Shared\web server extensions\12\LOGS。ULS 跟踪日志按以下格式命名:<服务器名称>-yyyymmdd-time.log(例如,contoso-20060720-1506.log)。

  • 如果您不能通过日志文件确定故障的原因,并计划与 Microsoft 产品支持服务联系以获取帮助,则需要提供以下信息:

    1. 升级日志(位于在迁移配置文件中指定的路径中)

      提示

      请确保服务器写入的是详细日志,这样可以确保记录尽可能多的信息以用于调试。您可以在 SharePoint 管理中心网站的“操作”选项卡中的“诊断日志记录”页上设置此参数。在此页的“事件限制”部分,设置以下参数:
      要报告给事件日志的关键程度最低的事件成功
      要报告给跟踪日志的关键程度最低的事件详细

      单击“确定”保存设置。您可能需要验证是否保存了这些设置。为此,请在同一部分,从“更新单个类别”列表中选择一个类别并验证设置是否相同。

    2. **事件日志文件的副本:**为执行操作,请打开事件日志,右键单击“应用程序”节点并选择“将日志文件另存为”。这允许您将事件日志保存到文件,以便可以将其发送到 Microsoft 产品支持服务。

      提示

      请确保能重现问题,以确保问题被记录到事件日志和跟踪日志。

    3. **最新跟踪日志文件的副本:**如果您要发送跟踪信息以用于调试,请在服务器上重现问题并发送最新的两个或三个跟踪日志文件。可以通过用于命名各个文件的日期和时间戳来确定这些日志文件。

    4. Project Server 2003 数据库文件的副本

  • 如果迁移工具停止响应,则会显示 Microsoft Office Project 对话框,允许您通过 Microsoft 产品支持服务进一步解决问题。在该对话框中,选择“发送错误报告”,以便将该问题发送给产品支持服务。发送完错误报告之后,请转到事件查看器,查找事件 ID = 1001 的事件,将“描述”字段中的内容复制到文本编辑器并将其发送给您的产品支持服务联系人。

  • 将 Office Project Server 2007 还原为空白状态并重试迁移。不要重新设置 Office Project Server 2007 实例,而是还原备份的空白 Office Project Server 2007 数据库和 Project Server 2003 数据库,然后再次运行升级过程。有关如何还原备份的空白 Office Project Server 2007 数据库的信息,请阅读下面一节。

在升级日志文件中查找错误、警告和故障

您可以在命令提示符处运行以下命令,以从升级日志文件中查找警告、错误和故障,并对它们进行编译。

  • 若要在升级日志文件中查找指示警告的所有行,请运行以下命令:

    Find /I "warning" <source log files> >> <output file>

    例如:

    Find /I "warning" c:\myupgradelog.log >> c:\errors.log

  • 若要在升级日志文件中查找指示错误的所有行,请运行以下命令:

    Find /I "error" <source log files> >> <output file>

    例如:

    Find /I "error" c:\myupgradelog.log >> c:\errors.log

  • 若要在升级日志文件中查找指示故障的所有行,请运行以下命令:

    Find /I "fail" <source log files> >> <output file>

    例如:

    Find /I "fail" c:\myupgradelog.log >> c:\errors.log

还原 Project Server 2007 数据库

如果您在数据迁移过程中遇到了不可恢复的问题,则可以还原 Office Project Server 2007 数据库,然后再次运行升级过程。下面是一个用于还原 Office Project Server 2007 数据库的示例脚本。它不是描述性脚本;如有必要,请修改它以满足您的需要。您必须在包含 OSQL 的计算机上运行此脚本。

Rem Note that if you have any open connections to the database, 
Rem   the Restore operation will fail. You can view open connections in 
Rem   Enterprise Manager: 
Rem   under <Server> - Management - Current Activity 
Rem   (hit F5 to refresh) - Process Info. 
Rem You can stop a process by right-clicking, and choosing Kill Process.
echo off

set P12SQLServerName=<SQL Server Name>

Set publishedDB=<DB Name>
Set draftDB=<DB Name>
Set archiveDB=<DB Name>
Set ReportingDB=<DB Name>

Set RestorePublishedDB='<Full path of the backup>'
Set RestoreWorkingDB= '<Full path of the backup>'
Set RestorearchiveDB= '<Full path of the backup>'
Set RestoreReportingDB= '<Full path of the backup>'

Rem The following commands ensure that there are no open connections to 
Rem  the databases that we are restoring to. You can also do this manually.

Set SqlCmd="USE master ALTER DATABASE %publishedDB% SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %draftDB% SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %archiveDB% SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %ReportingDB% SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Rem Restoring the database
set SqlCmd= "RESTORE DATABASE %publisheddb% 
  From disk = %RestorePublishedDB% 
  with replace RESTORE DATABASE %draftdb% From disk = %RestoreWorkingDB% 
  with replace RESTORE DATABASE %archivedb% 
  From disk = %RestorearchiveDB% 
  with replace RESTORE DATABASE %reportingdb% 
  From disk = %RestoreReportingDB% with replace"

osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %publishedDB% SET MULTI_USER"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %draftDB% SET MULTI_USER"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %archiveDB% SET MULTI_USER"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Set SqlCmd="USE master ALTER DATABASE %ReportingDB% SET MULTI_USER"
osql -E -S %P12SQLServerName% -Q %SqlCmd%

Rem Clearing the cache
rd /s /q "%APPDATA%\Microsoft\MS Project\cache"

goto :Clean

:Clean

Rem To clean up the environment variables created
set P12SQLServerName=
Set RestorePublishedDB=
Set RestoreWorkingDB=
Set RestorearchiveDB=
Set RestoreReportingDB=

set SqlCmd=

Set publishedDB=
Set draftDB=
Set archiveDB=
Set ReportingDB=

迁移的用户和权限问题

迁移(尤其是在本地化版本中迁移)之后,您的用户可能对迁移的 Office Project Server 2007 安装不具有某些预期的权限。例如这样的情况,您通过管理员模板获得了分配给您的权限,但您却无法查看时间表。导致可能出现这种情况的原因如下:

  • 在 Project Server 2003 中,权限在组织级别被拒绝。您可以通过以下方法验证此问题:检查您的 Project Web Access 权限,以查看是否有任何权限被禁用,并确定它们是否是问题的原因。

    检查您的 Project Web Access 权限

    1. 在 Project Web Access 主页上的左窗格中,单击“服务器设置”。

    2. 在“服务器设置”中的“安全性”部分,单击“Project Web Access 权限”。

  • 在 Office Project Server 2007 中有一些新增权限。这些权限在迁移过程中可能无法正确映射。您可以查看这些权限列表的安全文档,以确定它们是否是问题的原因。有关 Office Project Server 2007 权限的详细信息,请参阅 Office Project Server 2007 的安全和保护功能

  • 如果 Office Project Server 2007 中存在某个 Project Server 2003 用户或资源(按名称或 Windows NT 帐户),则该用户或资源的安全权限不会被迁移。例如,如果您在迁移前已进行了“AD 同步”(且大部分此类用户存在于 Project Server 2003 中),则这些用户的任何权限都不会被迁移。如果您遇到此问题,请将目标 Project Web Access 设置为“空”,并重新启动迁移过程。

身份验证问题

Project Server 身份验证用于 Project Server 2003 中,但 Office Project Server 2007 不支持该验证。将经过 Project Server 身份验证的用户迁移到 Office Project Server 2007 时,用户帐户被重置,因为 Office Project Server 2007 中的表单身份验证机制与在 Project Server 2003 中使用的 Project Server 身份验证的架构不同。您不会在“Project Web Access 服务器设置管理用户”页上看到所列的这些用户,或者不会看到针对用户的“用户身份验证”部分。但是,您仍可以在 Project Web Access 资源中心编辑这些迁移的用户。

资源数据库中的迁移资源最终可能与发布的数据库不同步。

迁移主项目时出现的问题

将主项目及其关联的子项目从 Project Server 2003 迁移到 Office Project Server 2007 时,以下两种情况将导致项目迁移失败:

  • 子项目在其主项目之后迁移。(您可以在迁移配置文件中更正迁移的顺序)。

  • 项目属于两个不同的主项目的子项目。(在 Project Server 2003 中允许此类分配,但在 Office Project Server 2007 中不允许此类分配)。当尝试发布该项目时,该项目的迁移将失败。

迁移流程图

下面的流程图中用图形表示了数据如何从 Project Server 2003 迁移到 Office Project Server 2007,可用于解决迁移过程中可能出现的问题。

从 Project Server 2003 升级到 Office Project Server 2007 包括基于 Windows 客户端的升级步骤和基于 SQL Server 2000 的升级步骤。

升级过程包括三个阶段:

  1. **全局数据升级阶段:**将全局数据和 Project Web Access 数据升级到 Office Project Server 2007。

  2. **项目数据升级阶段:**将项目数据升级到 Office Project Server 2007。

  3. **Windows SharePoint Services 数据升级阶段:**仅在具有 Project Server 2003 项目的 Windows SharePoint Services 数据时才需要。此阶段与迁移工具的运行不同时进行,因此,此流程图中未包含此阶段。

下面的流程图分别表示了升级过程的前两个阶段。

Project Server 2007 排除故障迁移 Project Server 2007 升级项目数据图表