Si vous devez mettre en mirroir SQL les bases project, vous trouverez sur le net 2 choses à faire parmi pas mal:
- Set-SPProjectWebInstance en précisant PrimaryDBMirrorServer et ReportingDBMirrorServer
- AddFailoverServiceInstance
D’après mes essais, la seconde ne suffit pas à elle seule. Et là commence la joie des cmdlet pas tout à fait finie…Je m’explique: Cette commande permet bien de configurer un serveur SQL miroir, mais son équivalent en Get- ne permet pas de voir ces valeurs!
Donc pas moyen de savoir si quelqu’un l’a fait avant vous, ou si les paramètres sont les bons..D’autre part, quand on a beaucoup d’instance, il est intéressant d’utiliser son homologue Get-SPProjectWebInstance pour faire une boucle. Sauf que ce dernier n’est pas ergonomique en plus de ne pas donner toutes les propriétés. Voici un script qui:
- Récupère la liste de toutes url PWA via l’application de service (non non ils ne pouvaient pas le programmer par défaut)
- Enlève le « / » à la fin de l’url (sinon le Set- plante !)
- Repositionne tous les paramètres à l’identique (sisi il faut) et ajoute l’instance miroir (ouf).
$work=Get-SPServiceApplication | ?{$_.DisplayName -match"Project"} | Get-SPProjectWebInstance foreach ($item in $work) { Write-Output"doing $($item.url)" $mirror=$item.PrimaryServer -replace ("sqlone","sqltwo") Set-SPProjectWebInstance -Url ($item.Url).ToString().TrimEnd('/') ` -AdminAccount $item.AdminAccount ` -PrimaryDbserver $item.PrimaryServer ` -ArchiveDbname $item.ArchiveDatabase ` -DraftDbname $item.DraftDatabase ` -PublishedDbname $item.PublishedDatabase ` -ReportingDbServer $item.ReportingServer ` -ReportingDbname $item.ReportingDatabase ` -PrimaryDBMirrorServer $mirror` -ReportingDBMirrorServer $mirror }