domingo, 25 de julio de 2010

Migración de SharePoint Server 2007 a 2010 Parte I

Realizaré varios artículos sobre una guía práctica sobre la migración de SharePoint Server 2007 a 2010.

Primero debemos decidir que acercamiento tomaremos para encargar el problema de la migración.  Y tenemos fundamentalmente 2 caminos: Migración en el lugar o Migración de Base de datos.

Migración en el lugar:

Este procedimiento pretende que se haga la migración en el servidor migrando desde el sistema operativo a Windows Server 2008 o superior de 64 bits, pasando por la base de datos de SQL server 2005 SP3 de 64 bits o superior. para finalizar con la actualización de los bits de SharePoint 2010 de 64 bits y todo su contenido y configuración. 

Para ello es necesario revisar las capacidades actuales del equipo donde esta instalado para garantizar que son suficientes para SharePoint 2010 .  Si no lo fueran actualizar primero el Hardware y software con las ultimas actualizaciones.

Segundo realizar una copia de respaldo de toda la granja de servidor de la instalación de SharePoint y realizar una prueba de recuperación por si algo sale mal, de lo contrario no se juegue su trabajo.

Tercero con la vitalización si puede preparar un escenario idéntico o significativo para realizar la prueba en un ambiente de pruebas, eso sería magnifico!. 

Al realizar la migración deberá empezar de abajo hacia arriba o de atrás para delante.  Migrando primero el Back End o el o los servidores de Bases de Datos a 64 bits, Luego los servidores de aplicaciones de 32 a 64 bits y por ultimo pero no por ello menos importante los servidores Front End o de cara al usuario.  Todo esto de una sola vez, ya que no funcionan ambientes mixtos de 32 y 64. Todo o nada.  La  única ventaja de este aproximación es que si es exitosa migra toda la configuración actual a su equivalente en SharePoint 2010, y no tiene porque preocuparse de configuar el Search, el UserProfile,  y todos los demás servicios equivalentes entre versiones.

Lo que no se quita en ninguno de las dos aproximaciones es la parte personalizada, tendrá que migrarlo manualmente usted, todo lo referente a personalizaciones que requieren desarrollo de código.  ya que debe de compilar de nuevo su código de 32 a 64 bits e instalándolo en SharePoint 2010, manualmente.

En resumen es de alto riesgo, tiene un tiempo de downtime exponencial debido al tamaño de su granja y contenido.  Pero la configuración manual es nula o casi nula.  Recomendado para portales pequeños o que no tienen mayor personalización de funcionalidades dentro de SharePoint.

Migración de Bases de datos:

Este procedimiento no requiere que se cambie nada en la granja de Servidores que están de producción, y de echo en el proceso de la migración se puede dejar levantado en modo de solo lectura para que puedan ser accedidos por los usuarios mientras se realiza la copia de respaldo final para migrar hasta al ultimo cambio realizado, requiere de otro u otros servidores donde se restaurarán las bases de datos ya en el ambiente de 64 bits, y donde estará instalado SharePoint 2010. 

La topología de la  granja de servidores puede variar entre tanto no afectemos las bases de datos que vamos a migrar la de contenido y la del proveedor de servicios compartidos o SSP.

Requiere de configuración manual de todos los servicios, pero esto es mejor a las equivalencias que puede hacer SharePoint en la migración en el lugar y que pueda no nos parezca como los deja.  Lo que si hay que aclarar es que se requiere de mayor conocimiento de SharePoint 2010 para su configuración optima y equivalente.

Lo que migramos entonces es las bases de datos de contenido y de Proveedor de Servicios Compartidos, no la de configuración, ni la del Search.  Pero eso no es problema se puede configurar manualmente.

El procedimiento es el siguiente:

1) Revisar que SharePoint Server 2007 tenga el Service Pack 2.0 instalado, sino instalarlo y si hubiese algún hotfix luego que afecte la migración instalarlo.

2) Ejecutar en el SharePoint Server 2007 luego de actualizarlo el Pre-upgrade Checker con la siguiente línea de comando:

stsadm.exe –PreupgradeCheck

Esto lo hacemos en el conocido 12 hive o en la siguiente ruta: %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\bin

Nota: esto no modifica nada solo nos hacer ver a lo que nos enfretaremos en la migración para estar preparados.  Genera un reporte en html y en xml para que lo revisemos.

image

image

3) Realizar la instalación de SharePoint 2010 en nuestro nuevo Servidor, instalando por lo menos Windows Server 2008 64 bits o superior, SQL server 2005 sP3 o superior.  En mi caso lo hice con Windows Server 2008 R2 y SQL server 2008 R2.  Y realiza la configuración completa y equivalente de los servicios que estaban en el servidor 2007.

4) Realizar la copia de respaldo de las bases de datos de contenido y del SSP en SharePoint 2010.  Y restaurarlas cada una en el nuevo Servidor de SQL Server de 64 bits donde están instaladas las bases de datos de SharePoint 2010.

5) Ejecute el siguiente comando en el nuevo Power Shell para SharePoint 2010:

Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>

SPContentDataBase-LanguaguePackRequired En este ejemplo lo único que nos reporta es que debemos de instalar el Language Pack del Idioma en Español ya que la instalación de SharePoint es en inglés.  Al finalizar la instalación de los requerimientos debería mostrarnos como la imagen de abajo.

PasoTest-SPContenDatabase

En otros casos deberemos de instalar las soluciones que hicimos para el antiguo portal, como lo muestra la imagen de abajo:

SPContentDataBase

6) Algo importante de tomar en cuenta antes de asociar la base de datos a la granja de servidores es que debe de crearse la aplicación Web donde se va asociar la base de datos de contenido. Y deberá actualizarse la base de datos que contiene la colección de sitios raíz.  Luego las de mas bases de datos no importa el orden.  Y para finalizar los comentarios importantes es que no podemos adjuntar la base de datos en la granja mas de una vez ya que esto queda almacenado en la configuración de SharePoint.

7) Para finalizar la actualización desde el Power shell for SharePoint 2010 la siguiente línea de comando:

Mount-SPContentDatabase -Name <DatabaseName> -DatabaseServer <ServerName> -WebApplication <URL> [-Updateuserexperience]

En el siguiente artículo detallaré la parte de migración de personalización de los elementos Web y los resultados finales.

Referencia directa de Microsoft:

http://technet.microsoft.com/en-us/library/cc263299.aspx#

Upgrade4Fun!,

Manolo Herrera

Preparándose para la Migración de SharePoint 2007 a 2010

El primer paso para la migración de SharePoint 2007 a SharePoint 2010 es aplicar el Service Pack 2.0.  Para ello debe preparase para el mismo.

El procedimiento para aplicar el Service Pack 2.0 en el servidor es aplicar el SP2 de WSS 3.0 primero y luego el SP2 Para Office server 2007.

Decir que se prepare con respaldo, un ambiente de pruebas esta de por de mas recordárselo,  pero algo que se le puede escapar es que debe de tener espacio disponible para la aplicación del Service Pack 2.0.  Y así evitar errores en la actualización como el que sigue:

image

Pero si le da este error no todo esta perdido.  Libere espacio o disponga si es posible de mas espacio disponible.  Y Luego al intentar ejecutar el asistente le mostrará el siguiente error:

Unable to upgrade SharePoint Products and Technologies because an upgrade is already in progress.  Upgrade progress can be monitored using the Central Administration Web Applicacion or by monitoring the upgrade log on server.

Que hacer ejecute en el directorio 12 hive la siguiente línea de comando:

psconfig –cmd upgrade –inplace b2b –force

image

image

Y luego ejecute de nuevo el asistente y estará de vuelta en el juego.  Solo haga la combinación mágica , siguiente, siguiente, finalizar.

image

image

 

Al finalizar.  Podemos iniciar ejecutando un preupgradecheck para iniciar el proceso de preparación para la migración.

image

Migrate4Fun!,

Manolo Herrera

miércoles, 21 de julio de 2010

Cómo aplicar correctamente el Patrón Passive View a una colección de elementos para un elemento Web de SharePoint

Anteriormente publique como aplicar un Patrón Passive View al desarrollo en Web específicamente a los elementos Web, pero explicaba que no encontraba la forma de pasar una colección de elementos sin pasar la entidad del negocio, en este artículo describiré como hacerlo.

Publicación anterior: http://jmhogua.blogspot.com/2010/05/aplicando-el-patron-passive-view-en-un.html

El patrón Passive View indica que la Vista es tonta que toda la lógica de la vista debe de manejarse del lado del presentador y que solo el presentador conoce el dominio y la vista no sabe nada de el.

Que hacer sino queremos exponer algo como lo que sigue:

La interfaz de la Vista

image

La interfaz implementada en la Vista

image 

El Presentador inyectando la colección de Tareas

image Si quiere saber cómo se inyecta la vista en el presentador vea el artículo anterior.

En el ejemplo anterior el Conocimiento de la colección de la Entidad de Tareas es conocido tanto para la Vista como el presentador, ahora veamos como se resuelve esto para que la visa no sepa nada o casi nada sobre el tipo de colección que esta recibiendo.

La interfaz la declararíamos de la siguiente forma:

image

La interfaz implementada en la Vista luciría de la siguiente forma:

image

El presentador No varia, de esta forma la vista sabe menos del dominio ya que recibe cualquier colección que implementa IEnumerable que es un estándar de las colección en .NET.

Espero te haya gustado mi solución, Code4Fun!,

Manolo Herrera

Solución encontrada que si funciona en Error en el motor de búsqueda 6482 en SharePoint

No desmaye, no se desespere, revise el visor de eventos de windows y si tiene problemas con el motor de búsqueda y ya no puede configurarlo o ejecutar el rastreo completo o parcial del mismo. Pueda que la solución que encontré también a usted le solucione el problema. Obvie en la solución los pasos sobre la autenticación por medio de Kerberos sino no lo tiene configurado.

Error:

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Servicios compartidos de Office Server
Event ID: 6482
Date: 20/07/2010
Time: 09:43:24 p.m.
User: N/A
Computer: server name
Description:
No se pudo ejecutar el trabajo de administración del servidor de aplicaciones para la instancia de servicio Microsoft.Office.Server.Search.Administration.SearchServiceInstance (22386cb6-81ac-4e96-827d-f27fca55f996).

Motivo: El recopilador se está cerrando.

Detalles de soporte técnico:
System.Runtime.InteropServices.COMException (0x80040D23): El recopilador se está cerrando.
at Microsoft.Office.Server.Search.Administration.MSSITLB.IGatherManagerAdmin3.get_ConfigurationVersion()
at Microsoft.Office.Server.Search.Administration.Gatherer.ProvisionGlobalProperties()
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Solución encontrada:

Básicamente se vuelve a registrar la cuenta, se reinicia el servicio y se vuelve a conectar el SSP a la búsqueda. Esto reinicia el indizador, limpia las bases e inicia nuevamente un rastreo.

http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/e8b34a19-c9d4-49ae-9015-33f9c0eedf3d

Gracias a Ashley Steel por su respuesta.

SharePoint4Fun!,

Manolo Herrera

jueves, 15 de julio de 2010

Ventana de dialogo se muestra al modificar la página maestra en SharePoint

Hace poco nos enfrentamos con este dilema.  Habíamos hecho algunas modificaciones a la página maestra para personalizarla  y agregar funcionalidad con las librerías de Jquery.  Aparentemente mostraba todos los cambios en la página maestra pero nos solicitaba varias veces el login de Windows. 

Lo extraño de todo era que al presionar esc un par de veces nos dejaba en el sitio y aparentemente estaba todo bien.

Revisamos la referencia de las hojas de estilos, imágenes y archivos js. Y todo parecía estar bien.  Un consejo sano es utilizar el directorio virtual layouts para depositar el contenido y evitar tener problema con los permisos en las librerías de SharePoint donde están ubicados los archivos(css, js, jpg,etc).

Al final al revisar que todo estaba bien, vimos que habían dos imágenes no mostraban luego de solicitar el dialogo de Windows que de todos modos no autenticaba positivamente sino solicitaba el dialogo una y otra vez. Entonces revisamos los permisos de las imágenes en el directorio donde las copiamos y encontramos que en vez de heredar los permisos del directorio las imágenes tenían acceso limitado, cambiamos los permisos y listo todo funcionó correctamente el directorio virtual layouts esta ubicado en: c:\program files\common files\Microsoft Shared\Web Server Extensions\12\template.  Dentro de Images creamos una estructura de directorios tal como Compañia\, Compañia\Styles, Compañia\scripts, Compañia\ Images.

Al final la ruta física sería la siguiente: c:\program files\common files\Microsoft Shared\Web Server Extensions\12\template\Images\Compañia…

Y la virtual: /_layouts/images/Compañia/…

Por sí le pasa ya sabe por donde.

SharePoint4Fun!,

Manolo Herrera

Creando mas de una base de datos de contenido para una aplicación Web en SharePoint

Una colección de sitios vive dentro de una aplicación Web en SharePoint y esta es almacenada en una base de datos.  Pero podemos definir mas de una colección de sitios dentro una aplicación Web, e inclusive definir la nueva colección de sitios dentro de otra base de datos.   

Para qué hacer esto?.  Bueno según la recomendación de Microsoft para SharePoint 2007 una base de datos de contenido que se utilice como colaboración mas que una forma de archivar documentación no debería ser mayor a 100 Gb para garantizar el rendimiento del sitio.  Y para SharePoint 2010 se sugiere 200 Gb por base de datos. Puede utilizarse hasta 1 Tb de espacio para un centro de registros pero no para un ambiente colaborativo.

Una colección de sitios también delimita entre otras cosas los grupos.  Los grupos se definen a nivel de colección de sitios esto quiere decir que estos grupos no se encontrarán en otra colección de sitios, no importa donde creemos los grupos estos estarán disponibles dentro de toda la colección de sitios.

image (Acciones del sitio, configuración del sitio, Personas y Grupos).

Las colecciones de sitios solo pueden ser creadas desde la Administración Central, dentro de Administración de Aplicaciones, como se muestra en la imagen de abajo.

image

image (Se debe de seleccionar la aplicación web donde se va a crear.  Si ya esta creada la colección de sitios de la raíz, sugerirá una ruta para crear la nueva colección y la raíz de esta nueva colección de sitios será por ejemplo: http://servername/sites/NuevaColeccionSitios/

Para crear una nueva colección de sitios en una diferente base de datos debería seguir los siguientes pasos:

En la Administración Central, en Administración de aplicaciones, seleccionar Base de datos de contenido.

image

Le listará la base de datos de contenido de la aplicación seleccionada, en la imagen de abajo hay dos creadas y vamos a crear una tercera, usualmente le aparece solo una.

image Haga clic sobre la opción  “Agregar una base de datos de contenido”.

image

1) Verifique que es la aplicación correcta donde va asociar la nueva base de datos de contenido.

2) El servidor de base de datos debería ser el mismo.

3) El nombre de la base de datos podrá cambiarlo a algo mas descriptivo como por ejemplo: WS_Content_Departamento_Finanzas o WSS_Content_Documentacion.

4) Recomendado utilice la autenticación por Windows con la que se instaló SharePoint.

5) Por ultimo presione el botón de Aceptar.

image

Ahora, para acceder a la nueva base de datos lo hacemos a través de la colección de sitios, para ello debemos de crear la colección de Sitios que se creará en la base de datos ultima de contenido creada.  Regresemos entonces dentro de la administración central a Administración de colección de sitios, Crear Colección de Sitios.

image

Cree la colección como lo hace normalmente.  Especifique El título, descripción, URL, Plantilla, Administradores de sitios y especifíquele una cuota si desea. Finalice presionando el botón de Aceptar.

Para ver donde fue creada esta colección de sitios seleccione la opción Lista de Colección de Sitios dentro de la administración de aplicaciones.

image

Si desea restringir el crecimiento tamaño de alguna colección de sitios, siempre en la administración de aplicaciones, Bloqueos y cuotas de colección de sitios.

image

image La imagen por si sola se explica, aplique una plantilla o defina un valor máximo y de advertencia.  Presione el botón Aceptar y listo.

En este artículo vimos como crear mas de una base de datos de contenido por aplicación Web. Útil para organizaciones que exceden la recomendación de Microsoft para un ambiente colaborativo para una respuesta optima de las operaciones que realiza en un portal de colaboración.

SharePoint4Fun!,

Manolo Herrera