配置 Project Server 的迁移工具

更新时间: 2009年5月

 

上一次修改主题: 2015-03-09

本文内容:

  • 迁移配置文件概述

  • 迁移配置参数

  • 迁移配置文件示例

  • 查询 Project Server 2003 数据库中的项目

  • 配置 SQL 链接服务器连接

本文提供有关如何配置迁移工具用于将 Microsoft Office Project Server 2003 数据迁移到 Microsoft Office Project Server 2007 的 .ini 文件的信息。本文还提供了多个有用的 SQL 查询,可通过这些查询搜索 Project Server 2003 数据库中处于特定状态的项目,以将这些项目包含在迁移配置文件中。

迁移配置文件概述

通常,使用类似于下面的命令行调用迁移工具:

D:\Program Files\Microsoft Office\OFFICE12>P12MigrationTool.exe -c d:\migration\ProjectServer2007Migrate.ini

在运行迁移工具前,您必须在文本编辑器中手动编辑迁移配置文件。此文件可配置某些参数,这些参数可指定升级日志文件的位置、要迁移的项目、运行 Microsoft SQL Server(其上将包含 Office Project Server 2007 数据库)的计算机的位置等。

迁移配置文件示例(名为 ProjectServer2007Migrate.ini.sample)与迁移工具安装在同一目录中。您可以使用正确的配置参数更新此文件示例,然后在运行迁移工具时指向此文件。该文件示例包括介绍可用于每个参数的配置选项的注释。

下面几部分提供了有关迁移配置文件的更多详细信息。

迁移配置参数

以下是可在迁移配置文件中配置的参数。

参数 说明

[General]

常规配置节。下面列出该节的相关参数。

BatchName=

您可以多次运行迁移工具(例如,分批迁移项目)。因此,可为迁移工具的每次运行指定一个唯一名称。会根据指定的 BatchName 参数对每次运行迁移工具时所生成的日志文件进行命名。如果未指定唯一名称,则生成的日志文件将覆盖以前的日志文件。

LogFileNamePrefix=

标识迁移日志文件的前缀。日志文件名是 LogFileNamePrefix 和指定何时开始迁移的时间戳的组合。例如,如果有一个名为 batch1-20060314-1542.log 的日志文件:

  • LogFileNamePrefix=batch1

  • 此日志的迁移运行时间为 2006 年 3 月 14 日下午 3:42

在多次进行迁移时(如采用逐步迁移方法),将前缀应用于日志文件名非常有用。

LogFilePath=

标识由迁移工具生成的日志文件的路径。迁移工具会将冗余信息写入日志文件。日志文件是有关迁移工具的故障排除信息的主要来源。如果迁移工具无法写入日志文件,它将停止运行,从而可确保您始终能够参考日志文件,以获取有关迁移运行的详细信息。

MigrateAll=

Save:将 Project Server 2003 中的所有项目迁移到 Office Project Server 2007,但不发布任何项目。

Publish:将 Project Server 2003 中的所有项目迁移到 Office Project Server 2007,并将 Project Server 2003 中的已发布项目自动发布到 Office Project Server 2007。

如果您希望忽略 MigrateAll 参数,请使用分号在 MigrateAll 行之前添加注释标记。如果这样做,则在运行迁移工具时将不会迁移任何项目。

提示

如果在迁移任何项目前,您选择按照运行迁移工具的最佳方案来迁移非项目数据(企业全局模板、企业资源和 Project Web Access 数据),请在 MigrateAll 参数之前添加注释标记。您还必须确保未在 [Project Names to Save and Publish][Project Names to Publish] 节中指定任何项目。

Important重要信息
如果在 [Project Names to Save and Publish][Project Names to Publish] 节中指定了任何项目名称,则会忽略 MigrateAll= 设置。

FixUpSecurityCategories=

如果将 FixUpSecurityCategories 设置为 Yes,则在迁移项目后会自动这些项目添加到安全类别。如果将其设置为 No,则在迁移后不会将这些项目添加到任何安全类别。通常情况下,如果 Office Project Server 2007 中的类别将与您在 Project Server 2003 中所具有的类别显著不同,并且您希望将项目手动添加到安全类别,则应将此策略设置为 No

StopProjectMigrationIfStatusUpdatesPending=

默认情况下,StopProjectMigrationIfStatusUpdatesPending 的值为 Yes。如果将该值设置为 Yes,则不会迁移包含挂起更新的任何项目。如果将此设置设为 No,则会迁移包含挂起更新的所有项目。在即使项目包含挂起更新,但客户仍希望迁移这些项目时,No 选项非常有用。例如,当需要迁移旧项目,但没有项目经理来为这些项目处理挂起更新时就是这样一种情况。

NeverPublishMasterProjects=

默认情况下,会将 NeverPublishMasterProjects 的值设置为 Yes。此设置可确保不会误发布主项目。对于已在 Project Server 2003 中设置了“NeverPublishMasterProjects”选项的客户来说,此设置非常有用。

如果您希望在迁移后发布任何主项目,请将 NeverPublishMasterProjects 设置为 No。即使您指定了此设置,也需要将主项目手动包含在 [Project Names to Save and Publish] 节中。

提示

在 Office Project Server 2007 中发布主项目不会加倍计数可用性。

[Project Names to Save]

键入要在迁移后保存的项目的名称。不会发布在此节中指定的项目。

提示

您必须指定完整的名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。

[Project Names to Save and Publish]

键入要在迁移后保存和发布的项目的名称。

提示

只能将 Project Server 2003 中的已发布项目(扩展名为 .PUBLISHED)发布到 Office Project Server 2007。如果您指定了已进行版本管理的项目,则只会保存该项目,而不会发布它。

提示

您必须指定项目的完整名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。

提示

如果您指定了一个主项目并设置了 neverPublishMasterProjects=false,则还会自动发布子项目(如果已迁移这些项目或将其作为此迁移运行的一部分进行迁移)。另请注意,在 Office Project Server 2007 中发布主项目不会加倍计数可用性。

[Excluded Project Names]

指定要在迁移过程中明确排除的任何项目。当希望迁移大多数项目(而非所有项目)时,此选项通常可与 MigrateAll 设置一起使用。

提示

您必须指定项目的完整名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。

[Project Server 2007]

Office Project Server 2007 配置节。下面列出该节的相关参数。

Project2007PWAServer=

键入 Microsoft Office Project Web Access URL。例如,Project2007PWAServer=http://Project2007PWAServer/pwa

Project2007SQLServer=

键入承载 Office Project Server 2007 数据库的 SQL Server 实例的名称。

Important重要信息
默认情况下,Project Server 2003 数据库还应为与 Office Project Server 2007 相同的 SQL Server 实例的一部分。为此,请将 Project Server 2003 数据库备份和还原到承载 Office Project Server 2007 数据库的 SQL Server 实例中。如果对您来说,这样做有困难,请参阅 [Project Server 2003] 节中的 Project2003LinkedSQLServer 属性。

DraftDB =

键入 Office Project Server 2007 草稿数据库的名称。

PublishedDB =

键入 Office Project Server 2007 已发布数据库的名称。

[Project Server 2003]

Project Server 2003 配置节。下面列出该节的相关参数。

Project2003ProjectTablesDB =

如果您具有 Project Server 2003 数据库的单个数据库配置(而不是拆分数据库配置),则应在此配置设置以及接下来的 Project2003WebTablesDB= 设置中键入数据库的名称。

提示

迁移工具不迁移 SQL Server Analysis Services 多维数据集表。您必须在迁移后重新构建多维数据集。

Project2003WebTablesDB=

如果 Project Server 2003 数据位于拆分数据库配置中,请键入 Web 表数据库的名称。如上所述,如果 Project Server 2003 位于单个数据库配置中,请在此处和 Project2003ProjectTablesDB= 设置中输入数据库名称。

Project2003LinkedSQLServer=SQLServerName

默认情况下不会启用此设置(已对 Project2003LinkedSQLServer= 设置添加注释标记)。如果未指定此参数,则迁移工具会假定 Project 2003 数据库位于承载 Office Project Server 2007 SQL Server 的计算机中。如果 Project 2003 数据库所在的 SQL Server 计算机无法驻留在承载 Office Project Server 2007 数据库的计算机上,那么您可以使用此设置来指定 Project Server 2003 数据库所在的计算机。但是,要执行此操作,您必须将 Project Server 2003 数据库作为链接服务器添加到 Office Project Server 2007 SQL Server。若要配置 SQL 链接服务器连接,请参阅本文后面的“配置 SQL 链接服务器连接”部分。

迁移配置文件示例

下面是一个已配置迁移配置文件的示例。

[General]
LogFilePath=C:\ProjectServer2007Migration
LogFileNamePrefix=Batch1 
MigrateAll=Publish
FixUpSecurityCategories=yes
StopProjectMigrationIfStatusUpdatesPending=yes
NeverPublishMasterProjects=yes
[Project Names to Save]
Project1.published
Project2.Target
[Project Names to Save and Publish]
Project3.Published
Project4.Published
[Excluded Project Names]
Project5.Published 
Project6.Target 
[Project Server 2007]
Project2007PWAServer=http://Project2007pwaserver/pwa
Project2007SQLServer=Project2007sqlserver
DraftDB=Project2007ProjectServerDraft
PublishedDB=Project2007ProjectServerPublished
[Project Server 2003]
Project2003ProjectTablesDB=Project2003ProjDB
Project2003WebTablesDB=Project2003WebDB
;Project2003LinkedSQLServer=LinkedSQLServerName

提示

随迁移工具安装的迁移配置文件包含介绍可用配置选项的注释。这些注释可帮助您正确配置该文件。配置该文件后,您可以将这些注释留在文件中。

查询 Project Server 2003 数据库中的项目

此节中显示的 SQL Server 脚本在搜索 Project Server 2003 数据库中的项目时非常有用,这些项目需要包含在迁移配置文件的以下任一节中:

  • [Project Names to Save]

  • [Project Names to Save and Publish]

  • [Excluded Project Names]

  • 然后,可在需要时将查询生成的项目名称复制到迁移配置文件的相应节中。

尚未启动的项目

SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p

INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)

WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 0 AND t.TASK_PCT_WORK_COMP = 0

已完成的项目

SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p

INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)

WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 100 AND t.TASK_PCT_WORK_COMP = 100

尚未完成的项目

SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p

INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)

WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP != 100 OR t.TASK_PCT_WORK_COMP != 100)

正在进行的项目

SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p

INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)

WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP > 0 OR (t.TASK_STOP_DATE > t.TASK_START_DATE AND t.TASK_DUR > 0))

其项目大纲代码“Project Status”等于“Opportunity”的项目

对于下面的查询,请使用用于此示例的“Project Status”和“Opportunity”值替换要查询的大纲代码和值。

SELECT p1.PROJ_NAME

FROM dbo.MSP_FIELD_ATTRIBUTES fa

INNER JOIN dbo.MSP_ATTRIBUTE_STRINGS ats ON (fa.PROJ_ID = ats.PROJ_ID AND fa.AS_ID = ats.AS_ID AND fa.ATTRIB_ID = 206)

INNER JOIN dbo.MSP_PROJECTS p ON (p.PROJ_ID = fa.PROJ_ID AND p.PROJ_TYPE = 2)

INNER JOIN dbo.MSP_OUTLINE_CODES oc ON (p.PROJ_ID = oc.PROJ_ID AND oc.OC_FIELD_ID = fa.ATTRIB_FIELD_ID)

INNER JOIN dbo.MSP_CODE_FIELDS cf ON (cf.CODE_FIELD_ID = oc.OC_FIELD_ID AND cf.CODE_UID = oc.CODE_UID)

INNER JOIN dbo.MSP_PROJECTS p1 ON (p1.PROJ_ID = cf.PROJ_ID)

WHERE ats.AS_VALUE like '%Project Status%' AND oc.OC_CACHED_FULL_NAME like 'Opportunity'

项目模板

SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p WHERE PROJ_TYPE = 1

配置 SQL 链接服务器连接

可使用迁移配置文件中的 Project2003LinkedSQLServer= 设置来配置 SQL 链接服务器连接。您只需在迁移无法在 Office Project Server 2007 数据库服务器上复制和还原的 Project Server 2003 数据库时,使用此设置和配置 SQL 链接服务器连接,并且此连接必须远程进行。

使用 SQL Server 2000 配置 SQL 链接服务器连接

如果您要将 SQL Server 2000 中的 Project Server 2003 数据库迁移到另一台计算机上的 Office Project Server 2007,且 Office Project Server 2007 的数据库层也为 SQL Server 2000,请使用下面的步骤来配置 SQL 链接服务器连接。

  1. 使用企业管理器连接到 Office Project Server 2007 SQL Server。

  2. 在树状结构中,单击以展开“安全”文件夹。

  3. 右键单击“链接服务器”,然后单击“新建链接服务器”。

  4. 有关如何创建链接服务器(搜索术语“链接服务器”)的详细信息,请参阅 SQL Server 文档。确保单击“安全”选项卡并选择了正确的安全选项。(例如,选择“使用登录名的当前安全性上下文建立连接”选项按钮。如果此选项在您的环境中无法运行,请选择“使用此安全上下文建立连接”并提供一个在运行 SQL Server(承载 Project Server 2003 数据库)的计算机上起作用的有效用户名和密码。)

  5. 在继续迁移前,请确保所创建的链接服务器运行正常。“链接服务器”节点下应显示刚创建的链接服务器。展开链接服务器后,您会看到“表”和“视图”节点。如果单击“表”或“视图”,则会显示一些项。

  6. 将 SQL 链接服务器的名称用作迁移配置文件中 Project2003LinkedSQLServer= 参数的值。

    提示

    在一些 IT 环境中,可能需要打开与 Microsoft 分布式事务处理协调器 (MSDTC) 相关的特定端口,链接服务器配置才能运行。有关详细信息,请参阅有关链接服务器的 SQL Server 文档或与您的系统管理员联系。

配置从 SQL Server 2000 到 SQL Server 2005 的 SQL 链接服务器连接

如果要将 SQL Server 2000 中的 Project Server 2003 数据库迁移到另一台计算机上的 Office Project Server 2007,但 Office Project Server 2007 要使用的数据库服务器是 SQL Server 2005,请使用下列步骤配置 SQL 链接服务器连接。

首先,在 SQL Server 2000 和 SQL Server 2005 中,将身份验证模式设置为混合模式,以便接受 SQL Server 登录和 Windows 登录。

将 SQL Server 2005 身份验证配置为混合模式

  1. 打开 SQL Server 2005 Management Studio。

  2. 在“对象资源管理器”窗格中,右键单击 SQL 2005 服务器名称,然后单击“属性”。

  3. 在“选择页面”列表中,单击“安全”。

  4. 在“服务器身份验证”部分,选择“SQL Server 和 Windows 身份验证模式”。

  5. 单击“确定”。

将 SQL Server 2000 身份验证配置为混合模式

  1. 打开 SQL Server 企业管理器。

  2. 展开包含将与 Project Server 2003 一起使用的数据库服务器的服务器组。

  3. 右键单击该服务器,然后单击“属性”。

  4. 单击“安全”选项卡。

  5. 在“身份验证”下,单击“SQL Server 和 Windows”。

  6. 单击“确定”。

配置连接

  1. 在运行 SQL Server 2000 和 SQL Server 2005 的计算机上,创建一个相同的 SQL 已验证用户帐户以运行链接服务器连接。请确保两台服务器上帐户的密码相同,并确保这些帐户对要使用链接服务器系统访问的数据库具有读/写权限。

  2. 在 SQL Server 2000 中打开查询分析器,在主数据库上,运行名为 instcat.sql 的文件。该文件应位于“Program Files”中的 SQL 文件夹下。

  3. 在 SQL Server 2005 Management Studio 中,选择运行 SQL Server 2005 的计算机,展开“服务器对象”,右键单击“链接服务器”,然后单击“新建链接服务器”。

    1. 输入运行 SQL Server 2000 的计算机的服务器名称。

    2. 选择“SQL Server”选项。

    3. 单击侧面窗格中的“安全”选项卡。

    4. 选择“使用此安全上下文建立连接”选项。

    5. 输入访问 Project Server 2003 数据库和 Office Project Server 2007 数据库所需的、在步骤 1 中创建的 SQL 帐户和密码。

    6. 单击“确定”。

  4. 在 SQL Server 2005 Management Studio 中,针对链接服务器启动查询以验证它是否运行。

    1. SELECT * from <P200Server>.<P11DBName>.dbo.msp_web_admin

    2. 使用适当的值替换服务器和数据库名称。

    3. 如果此查询成功返回,表明连接成功。

      提示

      在运行迁移时,请确保用于运行迁移工具的用户帐户对 Project Server 2003 和 Office Project Server 2007 数据库具有读权限。

另请参阅

概念

从 Project Server 2003 升级项目工作环境