La commande “Switchover server” permet de basculer les banques actives
vers un serveur de destination.
Ayant rencontré à de maintes reprises des soucis lors de l’utilisation de cet utilitaire
j’ai préféré utiliser un script.
*********************************************************
######## Move database    
######## Ce script permet le déplacement des banques actives d’un serveur "A" vers un serveur "B"     
######## Ecrit par Pascal FEDAN     
######## Le 05 Novembre 2012     
######## Version 1.0     
######## Modifié le     
######## Version
######## Déclaration des serveurs source et cible
$sourceserver = "serveur2"    
$targetserver = "serveur1"
####### Fonction d’envoi d’un message
function sendmail {    
         send-mailmessage -from "adm_mail@pub.ad" -to "Franck.Test@pub.ad" -subject "MoveDatabase" -body " Merci de consulter le fichier." -Attachment "C:\Temp\databasecopystatus.txt" -priority High -dno onSuccess, onFailure -smtpServer 10.10.10.10     
                  }     
####### Statut des bases avant la bascule
get-Date >> c:\Temp\databasecopystatus.txt    
Write-output "########## Databasecopystatus avant le déplacement " >> c:\Temp\databasecopystatus.txt     
Write-output " " >> c:\Temp\databasecopystatus.txt
get-mailboxdatabasecopystatus -Server $sourceserver >> c:\Temp\databasecopystatus.txt
Write-output " " >> c:\Temp\databasecopystatus.txt
get-mailboxdatabasecopystatus -Server $targetserver >> c:\Temp\databasecopystatus.txt
######### recherche des banques "montées" sur le serveur source
$MountedDB=get-mailboxdatabasecopystatus -Server $sourceserver | where { ($_.Status -eq "Mounted")}
######## si aucune banque "montée", sortie du script
if (!$MountedDB) { Write-Host "PAS DE BANQUE ACTIVE SUR $sourceserver"    
                   Write-output " " >> c:\Temp\databasecopystatus.txt     
                   Write-output "########## PAS DE BANQUE ACTIVE SUR $sourceserver " >> c:\Temp\databasecopystatus.txt     
                   Write-output " " >> c:\Temp\databasecopystatus.txt     
                   sendmail     
                   exit     
                  }     
                            
######### bascule des banques
else {    
      Foreach ($DB in $MountedDB)     
         { Move-ActiveMailboxDatabase -Identity $DB.DatabaseName -ActivateOnServer $targetserver -MountDialOverride:None -confirm:$false >> c:\Temp\databasecopystatus.txt}     
      }     
      
Start-Sleep -s 30
######### statut des banques après la bascule
Write-output " " >> c:\Temp\databasecopystatus.txt    
Write-output "########## Databasecopystatus après le déplacement" >> c:\Temp\databasecopystatus.txt     
Write-output " " >> c:\Temp\databasecopystatus.txt
get-mailboxdatabasecopystatus -Server $sourceserver >> c:\Temp\databasecopystatus.txt
Write-output " " >> c:\Temp\databasecopystatus.txt
get-mailboxdatabasecopystatus -Server $targetserver >> c:\Temp\databasecopystatus.txt
######## Appel de la fonction sendmail
sendmail
***********************
Ce script recherche les banques actives et les bascule sur le serveur de destination
mentionné dans la déclaration des variables.
Bien sûr, testez avant de l’utiliser en production.

0 commentaires