Aprire la console SQLPS ed eseguire il failover nella replica di disponibilità di destinazione in modo che quest'ultima diventi la nuova replica primaria del gruppo di disponibilità. In questa attività viene usato il parametro AllowDataLoss.
Target | Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplica |
Application | sqlps.exe |
WorkingDirectory | |
isRequireOutput | False |
Accessibility | Internal |
Enabled | True |
<ConsoleTask ID="Microsoft.SQLServer.2014.AlwaysOn.ForcedFailoverForAvailabilityReplica" Accessibility="Internal" Target="AlwaysOnDisc!Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplica" RequireOutput="false" Category="MonitoringObject">
<Application>sqlps.exe</Application>
<Parameters>
<Parameter>-NoExit</Parameter>
<Parameter>"&{ New-Variable -Name replicaName -Value ([regex]::Replace('$Target/Property[Type="System!System.Entity"]/DisplayName$', '\\', '%5C')); function p{ param($v) if ($v -ilike '*\*') { return $v } else { return '{0}\DEFAULT' -f $v } }; New-Variable -Name rp -Value ('{0}' -f (p(\"$Target/Property[Type="System!System.Entity"]/DisplayName$\"))); New-Variable -Name ag -Value (\"$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplica"]/AvailabilityGroupName$\"); cd SQL\$rp\AvailabilityGroups\$ag\AvailabilityReplicas\$replicaName\; New-Variable -Name avg -Value (Get-Item ..\..\..\$ag); try{ Switch-SqlAvailabilityGroup -InputObject $avg -AllowDataLoss -Confirm; } catch { Write-Host -ForegroundColor Red $_.Exception.Message; } Write-Host "Press any key to exit..."; $key=[Console]::ReadKey($true); Exit }"</Parameter>
</Parameters>
<WorkingDirectory/>
</ConsoleTask>