jueves, 3 de mayo de 2007

Aumentar el tamaño de la base de datos de Exchange standard 2003


Uno de los puntos críticos de un Exchange standard 2003 , y por donde pueden venir todos los desastres, es referente al tamaño de la base de datos.
La base de datos de un exchange por defecto, nunca puede superar los 16 gb en total. Esto realmente es un tamaño que enseguida se puede quedar corto, por lo que cuando sacaron el sp1 de exchange, aumentaron el tamaño a 18 gb.
Uaahuuuu!!!, vaya cambio. Esta claro que tampoco era suficiente. Por lo que microsoft al final se dio cuenta de las indirectas, y saco el sp II. Entre las mejoras que incluye (comentaremos el resto en otras entradas), esta una de las mas esperadas, y fue un cambio substancial en lo que se refiere a la base de datos. Nada mas ni nada menos que puede llegar a un tamaño de 75 gb.
Una vez instalado el spII, mucha gente dice ¿Y ahora que?¿Donde amplio el tamaño de la bd?.
El exchange una característica que tiene, es que mucho de los cambios que hay que realizar en el, se realizan a través del registro de windows.
En este caso la entrada a crear es esta:
Database Size Limit in GB”.
La llave debe de ser creada bajo la siguiente rama, tanto para la entrada de buzones o carpetas publicas respectivamente
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\\Private-GUID
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\\Public-GUID

Aquí os dejo un scritp.vbs, el cual añade al registro las entradas necesarias (fig 1), para poder ampliar el tamaño de la bd de exchange.
fig 1.



script ExchangeStdSp2.vbs



Dim CleReg,arrSubkeys,StrComputer
Dim i,nbi,x

dim Server,file,objfs,WshShell

'Lectura de los argumentos
'If WScript.Arguments.named.Count
=0 Then
' MsgBox("Exchange 2003 standard Size tool"+Newline+"Usage:
E2K3STD.vbs"+Newline+"Necessary Option /P:printerFile")
' wscript.quit
'End If

'If WScript.Arguments.Named.exists("P") Then
' PrinterFile=WScript.Arguments.Named.Item("P")
'End If

SET objFS=CreateObject ("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject ("WScript.Shell")

'Lectura del registro

server = Wshshell.ExpandEnvironmentStri
ngs("%COMPUTERNAME%")

CleReg="SYSTEM\CurrentControlS
et\Services\MSExchangeIS\"+Server

wscript.Echo CleReg

Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

Set objRegistry = GetObject("winmgmts:\\" & strComputer &
"\root\default:StdRegProv")

objRegistry.EnumKey HKEY_LOCAL_MACHINE, CleReg, arrSubkeys
If IsArray(arrSubkeys) Then
For Each strSubkey In arrSubkeys
objRegistry.Setdwordvalue HKEY_LOCAL_MACHINE,
clereg+"\"+StrSubKey,"Database Size Limit in Gb",75
objRegistry.Setdwordvalue HKEY_LOCAL_MACHINE,
clereg+"\"+StrSubKey,"Database Size Buffer in Percentage",10
objRegistry.Setdwordvalue HKEY_LOCAL_MACHINE,
clereg+"\"+StrSubKey,"Database Size Check Start Time in Hours From
Midnight",5
wscript.echo StrSubKey
Next
Else
Wscript.echo "This Machine is not an Exchange server"
End If

4 comentarios:

Anónimo dijo...

Hola, tu información me ha sido de mucha ayuda, pero con respecto a la ampliación de capacidad de 18 a 75 gb no he podido realizar , agrege los regitros a 32, en ambos private y public, y desmonte la base y la subi, pero no paso nada en el visor de sucesos si registro el ID1226, pero solo registra a 18gb la base.

que puedo revisar,

ya reinicie el server, y el informaton store

Gracias!!

David dijo...

Hola:
Lo primero de todo, ¿Has instalado el service pack II.? Es imprescindible, si no no se va a poder aumentar el tamaño de la base de datos.
Asegúrate también, de haber creado correctamente la entrada:
Database Size Limit in GB

Ademas revisa la ruta donde lo has creado.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\(nombre_servidor)\Private-GUID
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\(nombre servidor)\Public-GUID

Con el script que adjunto en el comentario, te debiera de crear las entradas en su sitio.

Si tienes problemas, me puedes mandar una captura del la ubicación de las claves del registro, y miramos a ver que puede ser.

Anónimo dijo...

Hola. Puede Exchange 2003 puede trabajar con una tamaño de base de datos mayor a 75gb?

Anónimo dijo...

No a menos que tengas exchange enterprise