Desfragmentar una base de datos mediante script

‘******************************************************************************************

‘ File:     (Desfragmentación offline de BBDD Exchange)

‘ Author:   (c) BBT2MS

‘ Hace una defragmentacion desatendida de las BBDD de servidores Exchange

‘ Recibe como parámetros:

‘               – El nombre de servidor en el que reside la BBDD.

‘               – El SG donde esta contenida.

‘               – El nombre de la BBDD.

‘               – El directorio temporal donde se hace el volcado de paginas.

‘ El scritp se ejecutara siempre en el servidor donde resida la BBDD.

‘ ******************************************************************************************

Set oArgs = Wscript.Arguments

If  oArgs.Count <> 4 Then

Usage ()

End If

strServer             = oArgs (0)

strSg                     = oArgs (1)

strMDB                = oArgs (2)

strDir                    = oArgs (3)

‘ Se instancian los objetos necesarios:

‘               – ExchangeServer

‘               – MailboxStoreDb

‘               – Shell

Set oServer = CreateObject(“CDOEXM.ExchangeServer”)

Set oMDB = CreateObject(“CDOEXM.MailboxStoreDB”)

Set oShell = CreateObject (“Wscript.Shell”)

‘ Se obtiene la raiz de los SGs y se competa la Url de la BBDD

oServer.DataSource.Open strServer

strTemp = oServer.StorageGroups

strTemp1 = Mid(strTemp(0), InStr(2, strTemp(0), “CN”))

strFirstSG = “CN=” & strSg & “,” & strTemp1

strURL = “cn=” & strMDB &  “,” & strFirstSG ‘

oMDB.DataSource.Open strUrl

strDB  = oMDB.DBPath

strStm = oMDB.SLVPath

‘Se desmonta la BBDD para la desfragmentacion Offline

oMDB.DisMount

‘Wscript.Echo “BBDD Desmontada antes de defrag”

SendMail “BBDD DesMontada antes de defrag”

‘Se defragmenta la BBD

strCmd = “c:\program files\exchsrvr\bin\eseutil /d” & strDB & ” /t” & strDir & “\tempedb2.tmp /s:” & strStm & ” /f” & strDir & “\tempedbb.stm”

‘Wscript.Echo strCmd

SendMail strCmd

‘Set objWshScriptExec = oShell.Exec (strCmd) ‘The command line

‘Set objStdOut = objWshScriptExec.StdOut

‘While Not objStdOut.AtEndOfStream

‘Wscript.Echo objStdOut.ReadLine

‘Wend

‘Wscript.Echo “Fin de defrag”

SendMail “Fin de defrag”

‘Se monta la BBDD despues de defragmentar

oMDB.Mount

‘Wscript.Echo “BBDD Montada despues de defrag”

SendMail “BBDD Montada despues de defrag”

Function Usage ()

WScript.Echo vbNewLine & “defragmsx.vbs (Script defragmentacion de BBDDs Exchange) ” & vbNewLine &_

vbNewLine &  ”   (c) BBT2ms                                                                                                                            ” & vbNewLine  &_

vbNewLine & ”   Uso:Defragmsx.vbs  <Servername> <SG> <BBDD> <TempDir> ” & vbNewLine & vbNewLine &_

”   <SrvName>: Nombre de servidor donde reside la BBDD a defragmentar.” & vbNewLine &_

”   <SG>     : StorageGroup de almacenamiento que la contiene.” & vbNewLine &_

”   <BBDD>   : Nombre de la BBDD a defragmentar.” & vbNewLine &_

”   <TempDir>: Directorio temporal donde se vuelcan la paginas.” & vbNewLine

Wscript.Quit (3)

End Function

Function SendMail (strSubject)

Set oCDOConf = CreateObject (“CDO.Configuration”)

Set iMsg = CreateObject(“CDO.Message”)

strEmail =  “cuenta de correo del destinatario”

Set oFlds = oCDOConf.Fields

oFlds(“http://schemas.microsoft.com/cdo/configuration/sendusing“)          = 2 ‘sendUsingPort

oFlds(“http://schemas.microsoft.com/cdo/configuration/smtpserver“)         = “servidor smtp de salida”

oFlds(“http://schemas.microsoft.com/cdo/configuration/serverport“)         = 25

oFlds(“http://schemas.microsoft.com/cdo/configuration/sendemailaddress“)   = “Cuenta de correo desde donde se envia”

oFlds.Update

Set iMsg.Configuration = oCDOConf

iMsg.To = strEmail

iMsg.Subject =  strSubject

iMsg.Send

End Function

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s