Lo primero que deberemos de hacer inmediatamente después de crear una Granja MOSS, es revisar el Visor de Sucesos (Event Viewer), especialmente el Registro de Sucesos de Sistema y el de Aplicación, en busca de errores y advertencias, con el objetivo de dejar nuestro sistema en perfectas condiciones. Existen algunos errores bastante típicos, como el error Event Id 10016 de DCOM, y algunos otros, que suelen presentarse en muchas instalaciones limpias de MOSS de forma bastante habitual. Así que, lo primero revisar el Visor de Sucesos, pero además es muy interesante revisar el Visor de Sucesos con cierta periodicidad.
También es muy recomendable darse un paseo por las diferentes opciones de la Administración Central (SharePoint Central Administration), tanto a nivel de la Granja (Operations y Applications) como a nivel de los Servicios Compartidos (Shared Services Provider - SSP). El motivo de esto, es que en algunos casos podemos encontrarnos algún error inesperado, como es el caso del siguiente error al entrar en la opción de Search Settings en la Administración Central:
Authentication failed because the remote party has closed the transport stream
En este caso, ¿Qué hacer para corregir el error de Authentication failed because the remote party has closed the transport stream de la opción Searh Settings? Lo primero, comentar que este error está relacionado con el error Event Id 6482 de origen (source) Office SharePoint Server, que podremos encontrar en el Visor de Sucesos (Event Viewer). Este error, lo he encontrado en Granjas de MOSS 2007 SP1 con múltiples Servidores MOSS, dónde el Index Server ejecuta en una máquina separada de los Search Servers. La descripción del Error Event Id 6482 correspondiente es:
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (GUID).
Reason: The underlying connection was closed: An unexpected error occurred on a send.
Technical Support Details:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
at Microsoft.Office.Server.Search.Administration.SearchApi.RunOnServer[T](CodeToRun`1 remoteCode, CodeToRun`1 localCode, Boolean useCurrentSecurityContext, Int32 versionIn)
at Microsoft.Office.Server.Search.Administration.SearchApi..ctor(WellKnownSearchCatalogs catalog, SearchSharedApplication application)
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean)
Para solucionarlo, existe un artículo de soporte de Microsoft, en particular la KB 962928: You cannot browse to an SSL-secured Office SharePoint Server 2007 site or to the Search Settings page for a Shared Services Provider. Al principio puede sorprender que esta KB implique la generación de un certificado autofirmado para SSL, cuando no tenemos ningún Sitio Web que utilice SSL. El tema está, en que en IIS existe un Sitio Web (Office Server Web Services) que monta MOSS para hospedar sus Web Services, y dicho Sitio Web SI utiliza SSL y un certificado digital.
Otro tema a evaluar es la disponibilidad de Sitios Personales. En muchos casos, se decide deshabilitar o limitar la creación de Sitios Personales en SharePoint 2007, con el objetivo de reducir costes de almacenamiento, backup, y mantenimiento en general.
También resulta de gran interés, una vez finalizada la instalación de MOSS y el despliegue de las aplicaciones MOSS en la Granja, comprobar el resultado de la ejecución de la herramienta Best Practice Analyzer for WSS 3.0, que ahora se describe. Llegados a este punto, es importante comentar desde el punto de vista de la Administración y Operación de MOSS, las principales herramientas que utilizaremos para administrar nuestros servidores MOSS son:
- SharePoint Central Administration Web Site. Se trata de una Aplicación Web propia de MOSS que se utiliza para la administración de la Granja MOSS. Aunque por defecto se instala sólo en el primer servidor MOSS de la Granja, es recomendable instalar SharePoint Central Administration Web Site en todos los servidores de la Granja MOSS (o al menos, en varios servidores), con el objetivo de dar alta disponibilidad a esta aplicación, de gran utilidad para la administración MOSS.
- stsadm.exe. Se trata de una herramienta de línea de comandos que permite la realizar las mismas tareas que son posibles a través de SharePoint Central Administration Web Site, y además, permite realizar otro tipo de tareas de administración y configuración de MOSS que sólo son posibles a través de stsadm.exe. De este modo, con stsadm.exe es posible automatizar tareas de administración MOSS, tanto a nivel de Granja, como de Servicios Compartidos, como de Aplicación Web. Resulta especialmente útil agregar la ruta de stsadm.exe al path (por defecto C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN), para poder invocar esta utilidad de forma cómoda.
La sintaxis general de stsadm.exe es stsadm -o <operation> -parameter <parameter value>. Es decir, en función de qué operación deseemos realizar en MOSS, especificaremos un valor para -o, y seguidamente, en función de qué operación deseemos realizar en MOSS especificaremos ninguno, uno, o varios parámetros (o parejas de parámetro y valor).
- Microsoft Best Practices Analyzer for Windows SharePoint Services 3.0 (SharePointBPA.exe). Se trata de una herramienta de línea de comandos disponible para descarga gratuita desde la Web de Microsoft, que permite identificar potenciales errores de configuración, tanto en WSS 3.0 como de MOSS 2007, para cual recolecta y analiza información variada procedente de WSS, del Registro de Windows, de la MetaBase de IIS, y del Monitor de Rendimiento (Performance Monitor). Finalmente genera un informe HTML (sharepointbpa.report.htm) con los errores y avisos detectados en MOSS o WSS. Actualmente sólo es compatible para Windows Server 2003.
El principal uso de Best Practices Analyzer for WSS 3.0, es después de la instalación y despliegue inicial de aplicaciones en una Granja MOSS, aunque también puede resultar útil su ejecución posterior, por ejemplo, después de aplicar cambios en nuestra infraestructura MOSS, o del paso a producción de nuevos aplicativos.
Otra herramienta que puede resultar de mucha utilidad es SharePoint Manager 2007, que permite explorar el Modelo de Objetos de SharePoint. Con SharePoint Manager 2007 es posible tanto ver como modificar Propiedades de MOSS. Para utilizar SharePoint Manager 2007, es necesario descargar dicha utilidad (es un fichero ZIP, en concreto spm2007.zip), descomprimirlo en cualquier servidor MOSS, y ejecutarlo desde dicho servidor. Es importante comentar que esta herramienta NO ha sido desarrollada por Microsoft, y su utilización queda fuera de Soporte (at your own risk, que en español se traduce como: tu mismo, con tu organismo ;-). A continuación se muestra una pantalla capturada de SharePoint Manager 2007:
Quizás la operación de administración más importante, sea la realización de Backups de MOSS. ¿Cómo realizar un Backup de MOSS? Para realizar un Backup de MOSS podemos utilizar la propias herramientas de MOSS, como se muestra a continuación, teniendo en cuenta que deberemos utilizar una carpeta compartida (shared folder) y notación UNC para especificar la ubicación destino del Backup (recordar que es necesario conceder permisos en la carpeta compartida a la cuenta de SQL Server y a la cuenta de MOSS).
- SharePoint Central Administration Web Site. Desde la Pestaña Operations, podemos utilizar la opción Perform a backup (dentro de Backup and Restore). Desde aquí, podremos realizar un Backup completo de la Granja MOSS (bases de datos de contenido, ficheros de configuración, índices de búsqueda, Proveedor de Servicios Compartidos, etc.) o realizar un Backup sólo de algunos elementos de la Granja MOSS. Es importante tener en cuenta que con SharePoint Central Administration no es posible realizar Backup a nivel de Colección de Sitios, Sitio, Galería o Documento, y además, con SharePoint Central Administration no es posible planificar una ejecución periódica de Backups (es decir, cuando se quiera hacer un Backup, abrimos un navegador, y a mano, desde SharePoint Central Administration lanzamos el Backup... de automatizar, nada de nada). Los elementos o componentes MOSS susceptibles de hacer Backup son los siguientes:
- Granja MOSS (Farm). Permite realizar Backup del contenido y configuración de toda la Granja.
- Aplicación Web de WSS (Windows SharePoint Services Web Application). Permite realizar Backup de una colección de Aplicaciones Web, incluyendo sus bases de datos de contenido.
- Aplicación Web (Web Application). Permite realizar Backup de una Aplicación Web, incluyendo su bases de datos de contenido.
- Bases de Datos de Contenido (Content Databases). Permite realizar Backup de una base de datos de contenido.
- Servicios Compartidos (Shared Services Provider - SSP). Permite realizar Backup de la Aplicación Web de SSP, la base de datos de contenido de SSP, perfiles (User Profile Application), estado de sesión (Session State), ficheros y bases de datos de búsqueda (Search index files and Search databases) del SSP, etc.
- Configuraciones Globales de Búsqueda (Global Search Services). Permite realizar Backup de las configuraciones de búsqueda de la Granja MOSS (Crawler).
- Windows SharePoint Services Help Search. Permite realizar Backup de los ficheros y bases de datos de búsqueda (Search index files and Search databases) de WSS.
Es importante tener en cuenta que los Backups de SharePoint pueden ser Completos o Diferenciales. Esto implica, que si las bases de datos SQL Server están configuradas en Modo de Recuperación Completo o de Registro Masivo, será necesario realizar Backups adicionales de SQL Server, tanto Completos como de Log. De hecho, bajo mi punto de vista, es recomendable y vital realizar Backups Completos y de Log, junto al Modo de Recuperación Completo, siendo este el único método que nos va a permitir recuperar una Granja MOSS hasta el momento más reciente en el tiempo.
- stsadm.exe. Con STSADM.EXE es posible realizar las mismas operaciones de Backup y Restore que se pueden realizar con SharePoint Central Administration. Sin embargo ofrece varias mejoras. Por ejemplo, con STSADM.EXE y el planificador de tareas de Windows podemos automatizar los Backups de MOSS, algo que con SharePoint Central Administration no es posible.
Otra ventaja de STSADM.EXE es que permite realizar backup y restore a nivel de Colección de Sitios (algo que no es posible con SharePoint Central Administration) utilizando los comandos backup y restore de STSADM.EXE, y además, también es posible realizar Export e Import a nivel de SubSitio. Debe tenerse en cuenta, que con un backup de una colección de sitios, no es posible recuperar sólo un SubSitio (sólo se puede recuperar la Colección de Sitios completa).
Backup con STSADM de toda la Granja
Como parte de todo Plan de Contingencias con MOSS 2007, es recomendable realizar un Backup de toda la Granja MOSS, ya sea a través del comando STSADM o a través de la Administración Central de SharePoint.
Al realizar un Backup de este tipo, es importante tener en consideración que el usuario utilizado para ejecutar el correspondiente comando STSADM, debe tener permisos suficientes en SQL Server para realizar un Backup de las Bases de Datos de MOSS. Yo habitualmente, he lanzado el backup de STSADM con un usuario que además era Administrador de todos los Servidores MOSS, Administrador de la Granja MOSS, y tenía permisos de Control Total en todas las Aplicación Web. Todo esto no es necesario, pero me resulta cómodo utilizar un usuario administrador con estos privilegios, para todas las tareas de Administración, y evitarme andar con penurias y problemas de permisos en la ejecución de estos menesteres.
Un problema que nos podemos encontrar al realizar un Backup de la Granja MOSS con STSADM, es que no progrese, quedándose parado en Progress: [Search instance] 50 percent complete, como se muestra en la siguiente pantalla capturada.
Téngase en cuenta, que cuando se queda pillado en este punto, el riesgo es que pasado un tiempo (por defecto, un hora) casque.
Para salir de este apuro, la solución que he encontrado es cancelar la operación de Backup, resetear los índices de búsqueda (la opción Reset all crawled content disponible desde lás páginas de administración de la indexación y búsqueda en los Servicios Compartidos), y volver a lanzar el Backup. Finalizado el Backup, es suficiente con volver a indexar todos los contenidos (Full Crawl). A continuación, se muestra una pantalla capturada con la pantalla Reset all crawled content:
Debe tenerse en cuenta, que el Backup de MOSS, no realiza un Backup de la MetaBase de IIS, ni realiza un Backup de la GAC, ni realiza un Backup del contenido del Sistema de Ficheros (ej: Web.Config, librerías DLL, etc.).
Por todo ello, y de forma adicional al Backup completo de MOSS, es necesario realizar copia de seguridad de los siguientes elementos:
- Realizar Backup de la MetaBase de IIS.
- Realizar Backup del Sistema de Ficheros (incluyendo al menos la GAC, el directorio InetPub, los directorios de instalación de MOSS, etc.).
- Realizar Backup de algunas configuraciones de MOSS (ej: dejar una salida de la configuración de Accesos Alternativos, etc.).
- Realizar un Backup de las Bases de Datos SQL Server, con los Servidores MOSS detenidos. Necesario para realizar un Restore de la Base de Datos de Configuración de MOSS (SharePoint).
Realizar un Backup de las Bases de Datos SQL Server, con los Servidores MOSS detenidos
Sorprendentemente, existe un Artículo de Soporte de Microsoft, en particular la KB 948725 Restoration of the configuration database by using the built-in backup and restore functionality is not supported in SharePoint Server 2007 or in Windows SharePoint Services 3.0, en el cual, se indica que no está soportado la restauración de la Base de Datos de Configuración de MOSS utilizando las herramientas nativas de Backup de MOSS (es decir, STSADM o en su defecto la Administración Central de SharePoint), del mismo modo, que no está soportado restaurar la Base de Datos de Configuración desde una Copia de Seguridad de SQL Server con los servidores MOSS iniciados.
La solución, pasa por realizar un Backup de todas las Bases de Datos con los Servidores MOSS detenidos, de tal modo, que se pueda garantizar que la información existente en todas estas bases de datos está sincronizada.
En las pruebas que he realizado, no he encontrado problemas al realizar una Restauración desde un Backup con los Servidores MOSS iniciados. Si es cierto, que he encontrado alguna peculiaridad. Por ejemplo, si después de realizar el Backup, se crea una nueva Colección de Sitios, al realizar el Restore de la Base de Datos de Configuración, la nueva Colección de Sitios no aparecerá. Sin embargo, tiene fácil solución: Quitar la Base de Datos de Contenido de SharePoint, y volver a Agregarla. Hecho esto, la Colección de Sitios volverá a estar disponible tras la restauración de la base de datos de Configuración. Ojo, que este problema sólo lo he encontrado con las Colecciones de Sitios, pues con la creación de SubSitios no ha habido ningún problema en las pruebas realizadas.
Una lástima, ya que realizar un Backup de todas las Bases de Datos SQL Server con los Servidores MOSS parados, implica una pérdida de servicio, que muchos clientes no están dispuestos a tolerar.
La otra alternativa, utilizar Microsoft System Center Data Protection Manager.
Backup y Restore con STSADM a nivel de Colección de Sitios
Debe especificar como URL la correspondiente a la Applicación Web, no vale cualquier URL que funcione en el navegador, sino la utilizada en la creación de la Aplicación Web (o cualquier otra definida como Acceso Alternativo).
Es muy recomendable bloquear el acceso a la colección de sitios al hacer el backup: si se producen cambios durante el tiempo de backup, el fichero de backup generado podría quedar corrupto.
Para bloquear el acceso, se puede establecer el nivel de bloqueo readonly (los usuarios pueden acceder a la Colección de Sitios pero no pueden hacer modificaciones) o establecer el nivel de bloqueo noaccess (los usuarios no pueden acceder: pérdida del servicio).
Para hacer una restauración es necesario que la Aplicación Web exista, pero no la Colección de Sitios
Las operaciones de Backup y Restore copian toda una Colección de Sitios, junto con todos la estructura de derechos, meta datos, etc.
Mantiene los mismos identificadores (GUID) de la Colección de Sitios original, por lo que no se puede hacer una recuperación de un backup de una Colección de Sitios en la misma Base de Datos de Contenido (collection identifier conflict), excepto que se elimine previamente la colección de sitios.
No se puede hacer un backup de un Sitio especifico, solo se pueden hacer de Colecciones de Sitios completas
Export e Import con STSADM
Export e Import permiten trabajar a nivel de SubSitio (Backup y Restore, trabajan a nivel de Colección de Sitios y SharePoint Central Administration ni eso).
Para importar es necesario que el sitio de destino no exista, o bien el sitio de destino haya sido creado utilizando una plantilla de Sitio en blanco (Blank Site).
En caso de importar un Sitio sin haberlo creado antes, no se tendrán los enlaces del Sitio Principal al SubSitio (en caso de que previamente existiesen).
El parámetro -includeusersecurity permite mantener la configuración de seguridad y propietario, siendo este un parámetro muy habitual.
Otro parámetro bastante habitual y útil es el parámetro -versions del export. En muchas ocasiones se utiliza -versions 4 para que la exportación incluya todas las versiones de documentos, lo cual, puede ser necesario si trabajamos con Librerías de Documentos con el Control de Versiones activado. De forma paralela, ocurre lo mismo con el parámetro -updateversions en la importación. En muchos caso se utiliza -updateversions 2 para sobrescribir los ficheros con todas sus versiones.
No se mantienen los identificadores (GUID) de Sitios, Listas y elementos, lo cual le permite hacer una copia de un sitio en la misma Base de Datos de Contenido. Si necesitamos mantener los identificadores de objetos (Object GUID), deberemos utilizar Backup/Restore o en todo caso las extensiones STSADM de Gary Lapointe.
Los meta datos se pueden perder (fecha de creación y modificación y propietario de los elementos de Listas, y también de versiones antiguas en caso de Listas o Librerías de Documentos con versionado). En función del nivel de parcheado y/o Service Packs aplicado, pueden encontrarse ciertas divergencias, así que es bueno recordarlo y estar atento por si nos encontramos con este problema.
En caso de utilizar STSADM -o export y/o STSADM -o import, es importante tener en cuenta algunos problemas habituales, como es el problema de espacio en el disco C y el error Exception from HRESULT: 0x80041050. También puede ocasionar problemas el Antivirus, como es el caso del mensaje de error Error: Value cannot be null que he experimentado con alguna solución de Antivirus para MOSS.
Puede resultar de utilidad utilizar el parámetro -nofilecompression al realizar el export y el import. De este modo, al realizar el export se ahorra el tiempo y los recursos de máquina empleados en la compresión, y del mismo modo, al realizar el import se ahorra el tiempo y recursos de máquina de realizar la de-compresión (evidente, si no se de-comprime...).
Al hacer el import, es también importante tener en cuenta el Tamáño máximo de carga (Maximum Upload Size) de la Aplicación Web, ya que si la Aplicación Web de destino tiene establecido en esta propiedad un valor inferior al tamaño de alguno de los documentos que se están intentando resturar, se obtendrá un error.
Ejemplo de STSADM para Backup/Restore y Export/Import
A continuación se muestran varios ejemplos de STSADM para la realización de Backup/Restore y Export/Import
Backup Completo de toda la Granja MOSS: =======================================
stsadm -o backup -directory \\NAS.guillesql.local\Backup\MOSS -backupmethod full
Backup de la Collección de Sitios raíz de una Aplicación Web: =============================================================
stsadm -o setsitelock -url http://portal.guillesql.local/ -lock readonly stsadm -o backup -url http://portal.guillesql.local/ -filename d:\backup\PortalGuilleSQL.bak -overwrite stsadm -o setsitelock -url http://portal.guillesql.local/ -lock none
Backup de una Collección de Sitios que NO es raíz de una Aplicación Web: ======================================================================== stsadm -o setsitelock -url http://portal.guillesql.local/sites/blogGuille -lock readonly stsadm -o backup -url http://portal.guillesql.local/sites/blogGuille -filename d:\backup\BlogGuilleSQL.bak -overwrite stsadm -o setsitelock -url http://portal.guillesql.local/sites/blogGuille -lock none
Restore de una Collección de Sitios: ==================================== stsadm -o restore -url http://portal.guillesql.local/ -filename d:\backup\PortalGuilleSQL.bak -overwrite
Export de un SubSitio: ====================== stsadm -o export -url http://portal.guillesql.local/blog -filename d:\backup\GuilleSQLBlogSubSite -includeusersecurity -versions 4 -overwrite
Import de un SubSitio (crear previamente el SubSitio en Blanco restore_blog, o que no exista el SubSitio): Se desactiva y activa la comprobación de ficheros de subida por parte del Antivirus. =================================================================================================== stsadm -o setproperty -pn avuploadscanenabled -pv no stsadm -o import -url http://portal.guillesql.local/restore_blog -filename s:\backup\GuilleSQLBlogSubSite.cmp -includeusersecurity -updateversions 2 stsadm -o setproperty -pn avuploadscanenabled -pv no
|