El comando STSADM MergeContentDBs permite mover Colecciones de Sitios (Sites Collections) de una Base de Datos de Contenido a otra, de una forma muy eficiente, mejorando enormemente el rendimiento frente a la alternativa de STSADM Backup más STSADM Restore.
Es importante que tengamos actualizada nuestra Granja de SharePoint, es decir, que tengamos instalado el último Service Pack de SharePoint. Por ejemplo, en el caso de SharePoint 2007 RTM, podemos encontrarnos con algún problema al ejecutar el comando STSADM MergeContentDBs.
He utilizado el comando STSADM MergeContentDBs en ya muchas ocasiones, especialmente con SharePoint 2007 SP3, y siempre con éxito, incluyendo el movimiento de Sites de más de 10GB (hablo del tamaño del Site según el comando STSADM enumsites, téngase en cuenta que el tamaño necesario en la Base de Datos puede llegar a ser el triple del tamaño del Site, en este caso de 30GB).
No debemos olvidar, que después de utilizar el comando STSADM MergeContentDBs, deberemos ejecutar un comando IISRESET /noforce en cada uno de los servidores SharePoint de la Granja.
Personalmente, me siento cómodo con el comando STSADM MergeContentDBs, aunque también confío en los comandos STSADM Backup y STSADM Restore. Por el contrario, los comandos STSADM Export y STSADM Import no me transmiten tanta confianza.
En cualquier caso, debemos estar familiarizados con la creación de Bases de Datos de Contenido y Colecciones de Sitios en SharePoint, antes de continuar con la lectura de este capítulo.
Dicho todo esto, veamos los dos principales casos de uso del comando STSADM MergeContentDBs.
Mover todos los Sites de una Base de Datos origen a una destino
Este caso de ejemplo corresponde con el escenario en el que deseamos mover todos los Sites almacenados en una Base de Datos de Contenido, a otra Base de Datos de Contenido. La Base de Datos destino, puede o no contener otros Sites. Obviamente, la Base de Datos origen se quedará vacía al finalizar, por lo que se podrá quitar de la Granja, y posteriormente eliminar de SQL Server.
Muy importante, antes de empezar realizar una Backup de las Bases de Datos de Contenido (origen y destino), y si es posible, también un Backup de las Colecciones de Sitios afectadas con el comando STSADM Backup.
Por lo demás, para ejecutar el comando STSADM MergeContentDBs en este caso, deberemos especificar la URL de la Aplicación Web sobre la que deseamos ejecutar el comando, así como especificar las Bases de Datos origen y contenido:
stsadm -o mergecontentdbs -url http://viis03 -sourcedatabasename WSS_Sites_Test -destinationdatabasename WSS_Content_Todas -operation 2
Una vez realizado, tan sólo queda ejecutar un IISRESET /noforce en cada uno de los servidores SharePoint de la Granja.
Mover sólo algunos Sites de una Base de Datos origen a una destino
Este caso de ejemplo corresponde un escenario en el que deseamos mover sólo algunos Sites de una Base de Datos de Contenido, a otra Base de Datos de Contenido. Por lo tanto, al finalizar, la Base de Datos origen aún contendrá algunos Sites (los que no se han solicitado mover).
Muy importante, antes de empezar, realizar una Backup de las Bases de Datos de Contenido (origen y destino), y si es posible, también un Backup de las Colecciones de Sitio afectadas con el comando STSADM Backup.
Dicho esto, lo primero será conseguir un fichero XML con el listado de todas las Colecciones de Sitios de la Base de Datos de Contenido origen, para lo cual ejecutaremos un comando como el siguiente: stsadm -o enumsites -url http://viis03 -databasename WSS_Content_Todas > sites.xml
Modificaremos el fichero XML que acabamos de generar, y dejaremos sólo las Colecciones de Sitio que deseamos mover. En nuestro caso de ejemplo, la Base de Datos de Contenido origen contiene 50 Sites, y hemos modificado el fichero XML para dejar un único Site, el que deseamos mover.
Llegados a este punto, ejecutaremos el comando STSADM MergeContentDBs para mover las Colecciones de Sitios especificadas por el fichero XML que acabamos de modificar, para lo cual utilizaremos un comando como el siguiente:
stsadm -o mergecontentdbs -url http://viis03 -sourcedatabasename WSS_Content_Todas -destinationdatabasename WSS_Sites_NewDB -operation 3 -filename sites.xml
Una vez realizado, tan sólo queda ejecutar un IISRESET /noforce en cada uno de los servidores SharePoint de la Granja.
Despedida y Cierre
Hasta aquí llega el presente artículo, en el cual hemos pretendido presentar la forma de mover Colecciones de Sitios (Site Collections) de una Base de Datos de Contenido a otra con el comando STSADM MergeContentDBs, una tarea bastante habitual en la administración de grandes Granjas de SharePoint, que puede realizarse de forma muy efectiva utilizando este comando. Para quién desee ampliar más información, puede consultar la referencia de producto pare este comando en Microsoft Technet:
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.