次の方法で共有


Exchange Server 2010 で StartDagServerMaintenance.ps1 スクリプトを実行するときのエラー

元の KB 番号: 3058960

症状

StartDagServerMaintenance.ps1 スクリプトを実行して、データベース可用性グループ (DAG) 内のサーバーをメンテナンス モードに構成しようとします。 ただし、スクリプトは失敗し、次のエラー メッセージが表示されます。

VERBOSE: [Time UTC] Move-DagActiveCopy: Entering: `$MailboxServer=ExServer, `$Database=
VERBOSE: [Time UTC] Move-DagActiveCopy: Moving all replicated active databases off server ExServer
VERBOSE: [Time UTC] Move-DagActiveCopy: moving database 'DBName' off server 'ExServer'
VERBOSE: [Time UTC] Move-DagMasterCopy: Entering: `$db=DBName, `$srcServer=ExServer, `$preferredTarget=
VERBOSE: [Time UTC] Test-DagTargetCopy: Testing move criteria for DatabaseName\ExchangeServer, with `$Lossless=True and
`$CICheck=False …
VERBOSE: [Time UTC] Test-DagTargetCopy: Name='DatabaseName\ExchangeServer', Status='DisconnectedAndHealthy',
CIStatus='Healthy', CopyQueueLength=0, ReplayQueueLength=0
VERBOSE: [Time UTC] Test-DagTargetCopy: Leaving (returning 'False')
VERBOSE: [Time UTC] Test-DagTargetCopy: Testing move criteria for DBName\DR-ExServer, with `$Lossless=True
and `$CICheck=False …
VERBOSE: [Time UTC] Test-DagTargetCopy: Name='DBName\DR-ExServer', Status='DisconnectedAndHealthy',
CIStatus='Healthy', CopyQueueLength=0, ReplayQueueLength=0
VERBOSE: [Time UTC] Test-DagTargetCopy: Leaving (returning 'False')
VERBOSE: [Time UTC] Move-DagMasterCopy: 0 copies out of 3 for database DBName will be attempted for move.
Log-Error : [Time UTC] Move-DagMasterCopy: Database 'DBName' *FAILED* to move! Now attempting to perform rollback to prevent a DB outage…

At D:\Program Files\Microsoft\Exchange\V14\scripts\DagCommonLibrary.ps1:483 char:14
+ Log-Error <<<< ($DagCommonLibrary_LocalizedStrings.res_0064 –f $db,"Move-DagMasterCopy")
+ CategoryInfo : NotSpecified: ( : ) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Log-Error

さらに、データベースで Get-MailboxDatabaseCopyStatus コマンドレットを実行しても、データベースは DisconnectedAndHealthy 状態を想定どおりに報告しません。

回避策

この問題を回避するには、次の方法を使用して、このサーバーからデータベースを手動でフェールオーバーします。

サーバーをメンテナンス モードにする

  1. レプリケートされた各データベースの少なくとも 1 つの他の遅延のないコピーが正常であることを確認します。 これを行うには、次の Exchange 管理シェル (EMS) コマンドを実行します。

    Get-MailboxDatabase -Server 'MaintenanceServerName' | Get-MailboxDatabaseCopyStatus
    
  2. 次の EMS コマンドを実行して、このサーバーからすべてのデータベースを移動します。

    Move-ActiveMailboxDatabase -Server 'MaintenanceServerName'
    

    ノート

    ターゲット サーバーが指定されていないため、次に最適なコピーがアクティブ化のために自動的に選択されることを意味します。

  3. クラスター コア リソースを DAG 内の別のノードに移動します。 これを行うには、コマンド プロンプトで次のコマンドを実行します。

    cluster.exe DAGFQDN group "ClusterGroup" /moveto: 'MaintenanceServerName'
    
  4. 次の EMS コマンドを実行して、サーバー上のすべてのコピーを中断します。

    Get-MailboxDatabaseCopyStatus -Server 'MaintenanceServerName' | Suspend-MailboxDatabaseCopy -ActivationOnly:$true
    
  5. 次のコマンド ラインを実行して、クラスター内のノードを一時停止します。

    cluster.exe DAGFQDN node '**MaintenanceServerName**' /pause
    
  6. 次の EMS コマンドを実行して、データベースがこのノードへのフェールオーバーを試みないようにします。

    Set-MailboxServer -Identity 'MaintenanceServerName' -DatabaseCopyAutoActivationPolicy:BLOCKED
    

メンテナンス モードからサーバーを削除する

サーバーを運用環境に戻すには、次の手順に従います。

  1. クラスター内のノードを再開します。 これを行うには、次のコマンド ラインを実行します。

    cluster.exe DAGFQDN node 'MaintenanceServerName' /resume
    
  2. 次の EMS コマンドを実行して、このサーバーでの自動アクティブ化のブロックを削除します。

    Set-MailboxServer -Identity 'MaintenanceServerName' -DatabaseCopyAutoActivationPolicy: Unrestricted
    
  3. 次の EMS コマンドを実行して、サーバー上のメールボックス データベースレプリケーションを再開します。

    Get-MailboxDatabaseCopyStatus -Server 'MaintenanceServerName' | Resume-MailboxDatabaseCopy
    

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。