Project Server の移行ツールを構成する

更新日: 2009年5月

 

トピックの最終更新日: 2015-03-09

この記事の内容 :

  • 移行構成ファイルの概要

  • 移行構成パラメータ

  • 移行構成ファイルの例

  • Project Server 2003 データベースに対してプロジェクトをクエリする

  • SQL リンク サーバー接続を構成する

ここでは、移行ツールで Microsoft Office Project Server 2003 のデータを Microsoft Office Project Server 2007 に移行する際に使用する .ini ファイルの構成方法について説明します。また、Project Server 2003 データベースを検索して、移行構成ファイルに含める特定の状態のプロジェクトを探すために使用する、いくつかの便利な SQL クエリも紹介します。

移行構成ファイルの概要

通常は、次のようなコマンド ラインを使用して移行ツールを起動します。

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

移行ツールを実行する前に、テキスト エディタで移行構成ファイルを手動で編集する必要があります。このファイルは、アップグレード ログ ファイルの場所、移行するプロジェクト、Office Project Server 2007 データベースを置く Microsoft SQL Server を実行しているコンピュータの場所などを指定するパラメータを構成します。

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=

FixUpSecurityCategoriesYes に設定すると、プロジェクトは移行後に自動的にセキュリティ カテゴリに追加されます。これを No に設定すると、プロジェクトは移行後にセキュリティ カテゴリに追加されません。通常は、Office Project Server 2007 でのカテゴリが Project Server 2003 でのカテゴリと大きく異なり、プロジェクトをセキュリティ カテゴリに手動で追加する必要がある場合に、このポリシーを No に設定します。

StopProjectMigrationIfStatusUpdatesPending=

既定では、StopProjectMigrationIfStatusUpdatesPending の値は Yes です。これを Yes に設定した場合、保留中の更新があるプロジェクトは移行されません。この設定を No に設定した場合、保留中の更新があるプロジェクトもすべて移行されます。No オプションは、保留中の更新があるプロジェクトも移行することを顧客が望んでいる場合に便利です。それはたとえば、移行する必要がある古いプロジェクトにアクティブなプロジェクト管理者が存在せず、保留中の更新を処理できない場合です。

NeverPublishMasterProjects=

既定では、NeverPublishMasterProjects の値は Yes に設定されます。この設定を使用すると、マスタ プロジェクトが誤って発行されることがありません。これは、顧客が Project Server 2003 で [マスタ プロジェクトを発行しない] オプションを設定していた場合に便利です。

移行後にマスタ プロジェクトを発行する場合は、NeverPublishMasterProjectsNo に設定します。この設定を指定した場合でも、発行するマスタ プロジェクトを [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 データベースは、SQL Server の Office Project Server 2007 と同じインスタンスに含める必要があります。そのためには、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 Tables データベースの名前を入力します。前述のように、Project Server 2003 が単一データベース構成の場合は、この設定と Project2003ProjectTablesDB= 設定にデータベース名を入力します。

Project2003LinkedSQLServer=SQLServerName

既定では、この設定は無効 (Project2003LinkedSQLServer= 設定がコメント アウトされた状態) になっています。このパラメータを指定しない場合、移行ツールは、Office Project Server 2007 の SQL Server をホストするコンピュータに Project 2003 データベースがあるものと見なします。Project 2003 データベースがある SQL Server コンピュータを、Office Project Server 2007 データベースをホストするコンピュータ上に置けない場合は、この設定を指定して、Project Server 2003 データベースがあるコンピュータを指定できます。ただし、この設定が機能するには、Office Project Server 2007 の SQL Server へのリンク サーバーとして Project Server 2003 データベースを追加する必要があります。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 リンク サーバー接続を構成する

SQL リンク サーバー接続の構成は、移行構成ファイルの Project2003LinkedSQLServer= 設定を使用して行います。この設定を使用して SQL リンク サーバー接続を構成する必要があるのは、移行する Project Server 2003 データベースが、Office Project Server 2007 データベース サーバーにコピーも復元もできず、リモート接続する必要がある場合だけです。

SQL Server 2000 を使用して SQL リンク サーバー接続を構成する

SQL Server 2000 の Project Server 2003 データベースを、別のコンピュータ上にある、データベース層が同じく SQL Server 2000 の Office Project Server 2007 に移行する場合は、次の手順に従って SQL リンク サーバー接続を構成します。

  1. Enterprise Manager を使用して Office Project Server 2007 の SQL Server に接続します。

  2. ツリー構造内の [セキュリティ] フォルダをクリックして展開します。

  3. [リンク サーバー] を右クリックし、[新しいリンク サーバー] をクリックします。

  4. リンク サーバーの作成方法の詳細については、SQL Server のドキュメントを参照してください ("リンク サーバー" という用語を検索します)。[セキュリティ] タブをクリックし、適切なセキュリティ オプションを選択してください (たとえば、[ログインの現在のセキュリティ コンテキストを使用する] オプション ボタンを選択します)。このオプションが環境内で機能しない場合は、[このセキュリティ コンテキストを使用する] を選択し、Project Server 2003 データベースをホストする SQL Server を実行しているコンピュータで機能する有効なユーザー名およびパスワードを指定します。

  5. 移行を続行する前に、作成したリンク サーバーが正常に機能することを確認します。作成したリンク サーバーは、[リンク サーバー] ノードに表示されます。このリンク サーバーを展開すると、[テーブル] ノードおよび [ビュー] ノードが表示されます。[テーブル] ノードまたは [ビュー] ノードをクリックすると、いくつかのエントリが表示されます。

  6. SQL リンク サーバーの名前を移行構成ファイルの Project2003LinkedSQLServer= パラメータの値として使用します。

    [!メモ] IT 環境によっては、リンク サーバーの構成が機能するには、Microsoft Distributed Transaction Coordinator (MSDTC) に関連する特定のポートを開く必要がある場合があります。詳細については、SQL Server のリンク サーバーに関するドキュメントを参照するか、システム管理者に問い合わせてください。

SQL Server 2000 から SQL Server 2005 への SQL リンク サーバー接続を構成する

SQL Server 2000 の Project Server 2003 データベースを、別のコンピュータ上にある、データベース サーバーに SQL Server 2005 を使用している Office Project Server 2007 に移行する場合は、次の手順に従って SQL リンク サーバー接続を構成します。

まず、Windows ログインと共に SQL Server ログインも受け付けられるように、SQL Server 2000 と SQL Server 2005 の両方で認証モードを混合に設定します。

SQL Server 2005 の認証を混合モードに構成する

  1. SQL Server 2005 Management Studio を開きます。

  2. [オブジェクト エクスプローラ] ウィンドウで、SQL 2005 サーバー名を右クリックし、[プロパティ] をクリックします。

  3. [ページの選択] ボックスの一覧で [セキュリティ] をクリックします。

  4. [サーバーの認証] セクションで [SQL Server 認証モードと Windows 認証モード] をクリックします。

  5. [OK] をクリックします。

SQL Server 2000 の認証を混合モードに構成する

  1. SQL Server Enterprise Manager を開きます。

  2. Project Server 2003 で使用するデータベース サーバーを含むサーバー グループを展開します。

  3. サーバーを右クリックし、[プロパティ] をクリックします。

  4. [セキュリティ] タブをクリックします。

  5. [認証] の [混合モード (Windows 認証と SQL Server 認証)] をクリックします。

  6. [OK] をクリックします。

接続を構成する

  1. SQL Server 2000 を実行しているコンピュータと SQL Server 2005 を実行しているコンピュータで、リンク サーバー接続を実行するための同じユーザー アカウントを作成します。両方のサーバーのアカウントでパスワードが同じである必要があります。両方のアカウントに、リンク サーバー システムを使用してアクセスするデータベースへの読み取りおよび書き込みアクセス権を与えます。

  2. SQL Server 2000 でクエリ アナライザを開き、マスタ データベースで instcat.sql というファイルを実行します。このファイルは Program Files 内の SQL フォルダにあります。

  3. SQL Server 2005 Management Studio で、SQL Server 2005 を実行しているコンピュータを選択し、[サーバー オブジェクト] を展開します。次に、[リンク サーバー] を右クリックし、[新しいリンク サーバー] をクリックします。

    1. SQL Server 2000 を実行しているコンピュータのサーバー名を入力します。

    2. [SQL サーバー] オプションを選択します。

    3. 作業ウィンドウの [セキュリティ] タブをクリックします。

    4. [このセキュリティ コンテキストを使用する] オプションを選択します。

    5. Project Server 2003 データベースおよび Office Project Server 2007 データベース (手順 1. で作成したもの) にアクセスするために必要な SQL アカウントとパスワードを入力します。

    6. [OK] をクリックします。

  4. SQL Server 2005 Management Studio でリンク サーバーに対してクエリを実行し、接続が正しく構成されたことを確認します。

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

    2. サーバー名とデータベース名を適切な値に置き換えます。

    3. このクエリから正常に値が返された場合は、正常に接続されています。

      [!メモ] 移行を実行する場合は、移行ツールの実行に使用しているユーザー アカウントに、Project Server 2003 データベースと Office Project Server 2007 データベースの両方への読み取りアクセス権があることを確認してください。