PI Services

Le blog des collaborateurs de PI Services

EXCHANGE 2010 - Bascule de bases

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.

Ajouter un commentaire

Loading