共用方式為


設定 Project Server 移轉工具

更新日期: 2009年5月

 

上次修改主題的時間: 2015-02-27

本文內容:

  • 移轉設定檔概觀

  • 移轉設定參數

  • 移轉設定檔範例

  • 查詢 Project Server 2003 資料庫中的專案

  • 設定 SQL 連結的伺服器連線

本文提供有關如何設定 .ini 檔案的資訊,好讓移轉工具在進行 Microsoft Office Project Server 2003 資料移轉至 Microsoft Office Project Server 2007 時使用。本文也提供用許多實用的 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 程式碼行加上分號,讓它變成註解。之後執行移轉工具時,就不會移轉任何專案。

Note附註:
如果您要遵循執行移轉工具的最佳作法,也就是先移轉非專案資料 (企業通用範本、企業資源和 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 設為 No。但即使您指定了這個設定,仍要以手動方式將主專案放入 [Project Names to Save and Publish] 區段中。

Note附註:
在 Office Project Server 2007 中發佈主專案並不會重複計算可用性。

[Project Names to Save]

輸入要在移轉後儲存的專案名稱。在此區段中指定的專案一律不會予以發佈。

Note附註:
您必須指定完整名稱 (如 MSP_PROJECTS 資料表 PROJ_NAME 資料欄中所儲存的名稱)。

[Project Names to Save and Publish]

輸入要在移轉後儲存和發佈的專案名稱。

Note附註:
只有 Project Server 2003 中的已發佈專案 (副檔名為 .PUBLISHED) 才可以發佈到 Office Project Server 2007。如果您指定的是加上版本編號的專案,則只會儲存該專案,並不會予以發佈。
Note附註:
您必須指定專案的完整名稱 (如 MSP_PROJECTS 資料表 PROJ_NAME 資料欄中所儲存的名稱)。
Note附註:
如果您指定了主專案,也設定 neverPublishMasterProjects=false,這樣就會自動發佈子專案 (如果已經移轉或會在移轉執行作業中移轉)。同時也請注意,在 Office Project Server 2007 中發佈主專案並不會重複計算可用性。

[Excluded Project Names]

指定任何要在移轉過程中明確排除的專案。若大部分專案 (並非所有專案) 都要移轉,這個選項通常會與 MigrateAll 設定搭配使用。

Note附註:
您必須指定專案的完整名稱 (如 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= 設定中輸入此資料庫名稱。

Note附註:
移轉工具不會移轉 SQL Server Analysis Services Cube 資料表。您必須在移轉後重新建立 Cube。

Project2003WebTablesDB=

如果 Project Server 2003 資料庫採用分割資料庫設定,請輸入網頁資料表資料庫的名稱。如前文所述,如果 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
Note附註:
與移轉工具一起安裝的移轉設定檔會包含一些說明可用設定選項的註解。這些註解可以協助您正確設定此檔案。完成設定之後,您可以將這些註解保留在檔案中。

查詢 Project Server 2003 資料庫中的專案

若想在 Project Server 2003 資料庫中搜尋要放入移轉設定檔以下任何區段的專案,本小節所列的 SQL Server 指令碼會對您非常有幫助。

  • [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 連結的伺服器連線。使用此設定並設定 SQL 連結的伺服器連線的唯一情況是:您移轉的 Project Server 2003 資料庫無法複製並還原到 Office Project Server 2007 資料庫伺服器上,因而必須從遠端連至該資料庫。

使用 SQL Server 2000 設定 SQL 連結的伺服器連線

如果要將 SQL Server 2000 中的 Project Server 2003 資料庫移轉至另一部電腦上的 Office Project Server 2007,而且 Office Project Server 2007 的資料庫層也是 SQL Server 2000,則請執行下列程序來設定 SQL 連結的伺服器連線。

  1. 使用 Enterprise Manager 連線至 Office Project Server 2007 SQL Server。

  2. 在樹狀結構上按一下以展開 [安全性] 資料夾。

  3. 以滑鼠右鍵按一下 [連結的伺服器 ],然後按一下 [新增連結的伺服器]。

  4. 如需如何建立連結的伺服器詳細資訊,請參閱 SQL Server 文件 (請搜尋「連結的伺服器」這個詞)。請確定您按選的是 [安全性] 索引標籤,且選取正確的安全性選項 (例如,選取 [使用登入的目前安全性內容建立] 選項按鈕。如果此選項不適用於您的環境,請選取 [使用此安全性內容建立],並提供對主控 Project Server 2003 資料庫之 SQL Server 執行電腦有效的使用者名稱和密碼)。

  5. 在繼續進行移轉前,請確認所建立連結的伺服器運作正常。您應該會在 [連結的伺服器] 節點下看到剛建立的連結伺服器。展開連結的伺服器之後,應該會看到 [資料表] 及 [檢視] 節點。如果按一下 [資料表] 或 [檢視],應該會看到一些項目。

  6. 以這個 SQL 連結的伺服器名稱做為移轉設定檔中 Project2003LinkedSQLServer= 參數之值。

    Note附註:
    在某些 IT 環境中,與 Microsoft Distributed Transaction Coordinator (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 Enterprise Manager。

  2. 展開含有要與 Project Server 2003 搭配使用之資料庫伺服器的伺服器群組。

  3. 以滑鼠右鍵按一下該伺服器,然後按一下 [屬性]。

  4. 按一下 [安全性] 索引標籤。

  5. 在 [驗證] 之下,按一下 [SQL Server 及 Windows]。

  6. 按一下 [確定]。

設定連線

  1. 在執行 SQL Server 2000 和 SQL Server 2005 的電腦上,各建立一個相同的 SQL 已驗證使用者帳戶來執行連結伺服器連線。請確定這兩部伺服器所用的密碼都一樣。請確定此帳戶具有您想透過連結伺服器系統進行存取之資料庫的讀取/寫入權。

  2. 在 SQL Server 2000 中,開啟 Query Analyzer,並在您 master 資料庫上執行 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 資料庫所需的 SQL 帳戶及密碼 (在步驟 1 中建立的)。

    6. 按一下 [確定]。

  4. 在 SQL Server 2005 Management Studio 中,對連結的伺服器啟動查詢,以確認該伺服器是否運作正常:

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

    2. 將伺服器和資料庫名稱取代成適當的值。

    3. 如果這個查詢順利傳回結果,表示連線成功。

      Note附註:
      執行移轉作業時,請確定搭配移轉工作執行作業所用的使用者帳戶具有 Project Server 2003 和 Office Project Server 2007 資料庫的讀取權。

另請參閱

概念

從 Project Server 2003 升級專案工作區