Mostrando las entradas con la etiqueta SharePoint. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SharePoint. Mostrar todas las entradas

martes, 8 de agosto de 2017

Buenas practicas para desarrollo de soluciones en SharePoint

Una de las buenas practicas para cuando iniciamos una solución en SharePoint no importa la versión es crear una colección de sitios para dicha solución y esta con su bases de datos de contenido,  Esto permitirá que sea portable la solución desarrollada.

Para realizar esto debemos hacer lo siguiente:

1) Crear la base de datos de contenido
2) Crear la colección de sitios para la base de datos nueva

Como buen desarrollador prefiero utilizar la línea de comando que la interfaz de usuario.  Así que aquí les va en línea de comando:

Crear la base de datos de contenido

PS C:\Users\Administrator> Mount-SPContentDatabase -Name WSS_Content_ArchivoDigi
tal -WebApplication http://sp2013bi

---resultado ----
Id               : 47b71298-e23c-421b-bb6a-5e65428b8a4d
Name             : WSS_Content_ArchivoDigital
WebApplication   : SPWebApplication Name=SharePoint - 80
Server           : sp2013bi\powerpivot
CurrentSiteCount : 0

Crear la colección de sitios para la base de datos nueva

PS C:\Users\Administrator> New-SPSite -Url http://sp2013bi/sites/ADigital -Langu
age 1033 -Template STS#0 -Name "Archivo Digital" -OwnerAlias "Administrator" -Co
ntentDatabase WSS_Content_ArchivoDigital -Verbose

---resultado---
VERBOSE: Leaving BeginProcessing Method of New-SPSite.
VERBOSE: Performing operation "New-SPSite" on Target
"http://sp2013bi/sites/ADigital".

Url                                                     CompatibilityLevel
---                                                     ------------------
http://sp2013bi/sites/ADigital                          15
VERBOSE: Leaving ProcessRecord Method of New-SPSite.
VERBOSE: Leaving EndProcessing Method of New-SPSite.



Ayudas:

Para revisar las plantillas para la colección de sitios ejecutar el comando:
get-SPWebTemplate


Name                 Title                                    LocaleId   Compat
                                                                         ibilit
                                                                         yLevel
----                 -----                                    --------   ------
GLOBAL#0             Global template                          1033       15
STS#0                Team Site                                1033       15
STS#1                Blank Site                               1033       15
STS#2                Document Workspace                       1033       15
MPS#0                Basic Meeting Workspace                  1033       15
MPS#1                Blank Meeting Workspace                  1033       15
MPS#2                Decision Meeting Workspace               1033       15
MPS#3                Social Meeting Workspace                 1033       15
MPS#4                Multipage Meeting Workspace              1033       15
CENTRALADMIN#0       Central Admin Site                       1033       15
WIKI#0               Wiki Site                                1033       15
BLOG#0               Blog                                     1033       15
SGS#0                Group Work Site                          1033       15
TENANTADMIN#0        Tenant Admin Site                        1033       15
APP#0                App Template                             1033       15
APPCATALOG#0         App Catalog Site                         1033       15
ACCSRV#0             Access Services Site                     1033       15
ACCSVC#0             Access Services Site Internal            1033       15
ACCSVC#1             Access Services Site                     1033       15
BDR#0                Document Center                          1033       15
DEV#0                Developer Site                           1033       15
DOCMARKETPLACESITE#0 Academic Library                         1033       15
EDISC#0              eDiscovery Center                        1033       15
EDISC#1              eDiscovery Case                          1033       15
OFFILE#0             (obsolete) Records Center                1033       15
OFFILE#1             Records Center                           1033       15
OSRV#0               Shared Services Administration Site      1033       15
PPSMASite#0          PerformancePoint                         1033       15
BICenterSite#0       Business Intelligence Center             1033       15
SPS#0                SharePoint Portal Server Site            1033       15
SPSPERS#0            SharePoint Portal Server Personal Space  1033       15
SPSPERS#2            Storage And Social SharePoint Portal ... 1033       15
SPSPERS#3            Storage Only SharePoint Portal Server... 1033       15
SPSPERS#4            Social Only SharePoint Portal Server ... 1033       15
SPSPERS#5            Empty SharePoint Portal Server Person... 1033       15
SPSMSITE#0           Personalization Site                     1033       15
SPSTOC#0             Contents area Template                   1033       15
SPSTOPIC#0           Topic area template                      1033       15
SPSNEWS#0            News Site                                1033       15
CMSPUBLISHING#0      Publishing Site                          1033       15
BLANKINTERNET#0      Publishing Site                          1033       15
BLANKINTERNET#1      Press Releases Site                      1033       15
BLANKINTERNET#2      Publishing Site with Workflow            1033       15
SPSNHOME#0           News Site                                1033       15
SPSSITES#0           Site Directory                           1033       15
SPSCOMMU#0           Community area template                  1033       15
SPSREPORTCENTER#0    Report Center                            1033       15
SPSPORTAL#0          Collaboration Portal                     1033       15
SRCHCEN#0            Enterprise Search Center                 1033       15
PROFILES#0           Profiles                                 1033       15
BLANKINTERNETCONT... Publishing Portal                        1033       15
SPSMSITEHOST#0       My Site Host                             1033       15
ENTERWIKI#0          Enterprise Wiki                          1033       15
PROJECTSITE#0        Project Site                             1033       15
PRODUCTCATALOG#0     Product Catalog                          1033       15
COMMUNITY#0          Community Site                           1033       15
COMMUNITYPORTAL#0    Community Portal                         1033       15
SRCHCENTERLITE#0     Basic Search Center                      1033       15
SRCHCENTERLITE#1     Basic Search Center                      1033       15
visprus#0            Visio Process Repository                 1033       15
GLOBAL#0             Global template                          1033       14
STS#0                Team Site                                1033       14
STS#1                Blank Site                               1033       14
STS#2                Document Workspace                       1033       14
MPS#0                Basic Meeting Workspace                  1033       14
MPS#1                Blank Meeting Workspace                  1033       14
MPS#2                Decision Meeting Workspace               1033       14
MPS#3                Social Meeting Workspace                 1033       14
MPS#4                Multipage Meeting Workspace              1033       14
CENTRALADMIN#0       Central Admin Site                       1033       14
WIKI#0               Wiki Site                                1033       14
BLOG#0               Blog                                     1033       14
SGS#0                Group Work Site                          1033       14
TENANTADMIN#0        Tenant Admin Site                        1033       14
ACCSRV#0             Access Services Site                     1033       14
ACCSRV#1             Assets Web Database                      1033       14
ACCSRV#3             Charitable Contributions Web Database    1033       14
ACCSRV#4             Contacts Web Database                    1033       14
ACCSRV#6             Issues Web Database                      1033       14
ACCSRV#5             Projects Web Database                    1033       14
BDR#0                Document Center                          1033       14
OFFILE#0             (obsolete) Records Center                1033       14
OFFILE#1             Records Center                           1033       14
OSRV#0               Shared Services Administration Site      1033       14
PPSMASite#0          PerformancePoint                         1033       14
BICenterSite#0       Business Intelligence Center             1033       14
SPS#0                SharePoint Portal Server Site            1033       14
SPSPERS#0            SharePoint Portal Server Personal Space  1033       14
SPSMSITE#0           Personalization Site                     1033       14
SPSTOC#0             Contents area Template                   1033       14
SPSTOPIC#0           Topic area template                      1033       14
SPSNEWS#0            News Site                                1033       14
CMSPUBLISHING#0      Publishing Site                          1033       14
BLANKINTERNET#0      Publishing Site                          1033       14
BLANKINTERNET#1      Press Releases Site                      1033       14
BLANKINTERNET#2      Publishing Site with Workflow            1033       14
SPSNHOME#0           News Site                                1033       14
SPSSITES#0           Site Directory                           1033       14
SPSCOMMU#0           Community area template                  1033       14
SPSREPORTCENTER#0    Report Center                            1033       14
SPSPORTAL#0          Collaboration Portal                     1033       14
SRCHCEN#0            Enterprise Search Center                 1033       14
PROFILES#0           Profiles                                 1033       14
BLANKINTERNETCONT... Publishing Portal                        1033       14
SPSMSITEHOST#0       My Site Host                             1033       14
ENTERWIKI#0          Enterprise Wiki                          1033       14
SRCHCENTERLITE#0     Basic Search Center                      1033       14
SRCHCENTERLITE#1     Basic Search Center                      1033       14
SRCHCENTERFAST#0     FAST Search Center                       1033       14

visprus#0            Visio Process Repository                 1033       14

SharePoint4fun!,

Juan Manuel Herrera O.

jueves, 25 de mayo de 2017

Secretos mas reconditos en SharePoint: Cadena de conexión de ConfigDB

Siempre me he preguntado y no se si usted también donde se guarda la cadena de conexión de la base de datos de configuración de la granja de SharePoint Server.  Pienso que Esto aplica para 14,15 y 16.

Pues bien necesita irse al registro de windows permedio de regedit y navegar en las carpetas siguiendo la siguiente ruta

HKEY_Local_Machine\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\

De allí depdenderá de la versión de SharePoint.  Por ejemplo si es 2015 encontrará la carpeta 15.0 y luego Secure y dentro de ella ConfigDB y alli adentro una llave llamada dsn

La ruta completa sería:

HKEY_Local_Machine\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\Secure\ConfigDB



Y el valor esperado de la cadena de conexión de la base de datos de configuración de la granja tipicamente nombrada SharePoint_Config es:


Data Source=SPSQLDB;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False;Pooling=True;Min Pool Size=0;Max Pool Size=100;Connect Timeout=15


Así que ya sabe donde.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

lunes, 9 de enero de 2017

Job de Papelera de Reciclaje puede provocar caida de un sitio en SharePoint

Este caso nos tuvo casí un mes en la búsqueda de la causa del problema.



El problema:

La colección de sitios principal y primaria de SharePoint reportaba caídas aleatorias en las mañanas entre las 6 y 7 de la mañana.  Esto no sucedia a diario y la forma de corregir el problema era que el usuario reiniciaba tanto el servidor de SQL Server como el Front-End.

El Error:

01/06/2017 06:12:40.46  w3wp.exe (0x05C8)                        0x1624 SharePoint Foundation          Database                       fa45 High     System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.     at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)     at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)     at System.Data.SqlClient.SqlConnection.Open()     at Microsoft.SharePoint.Utilities.SqlSession.OpenConnection() cc94ec34-1e2f-46d3-a524-1aa20ebf64e4
ConnectionString: 'Data Source=SQL_ALIAS_NAME;Initial Catalog=WSS_Content_xxxxx;Integrated Security=True;Enlist=False;Asynchronous Processing=False;Connect Timeout=15'

El Escenario:
Versión de SharePoint Server: 2010
Edición de SharePoint Server: Enterprise
Versión de actualización de Producto: 14.0.6109.5002 (SP1 + Cu Agosto 2012)
Versión Sistema Operativo: Windows 2008 R2 Enterprise SP1 (Fuera de Soporte)
Versión de SQL Server: SQL Server 2008 R2 SP1 (Fuera de Soporte)
Cantidad de Servidores 3:  1 Servidor Front-End/App Server  2 Servidores SQL Server
Configuración de Servidores:


Front End (Fisico)
16 GB RAM
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 150 Gb)
BackEnd 1 (Fisico)
16 GB RAM
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 2 Tb)
BackEnd 2 (Virtual)
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 300 Gb)
Tamaño de base de datos de contenido  principal (1.4 TB)

La causa:
SharePoint Server 2010 en adelante tiene un proceso de limpieza de la papelera de reciclaje de cada base de datos de contenido llamada Recycle Bin (Podemos encontrar en la sección de monitoreo ) Job Definitions.  Este proceso intentaba eliminar una biblioteca de 500 Gb que fue eliminada hace un mes y el tiempo definido para ejecutar este proceso 5 horas no era suficiente para eliminarla, por lo que mantenia ocupada la conexión o bien realizaba intentos fallidos hasta que agotaba las conexiones disponibles en el pool de conexiones hacia la base de datos y esto provocaba el error.



Se logró ubicar el problema, cuando en vez de iniciar los servidores y luego de reportados se empezo a validar lo siguiente:

1) Que Los recursos de los servidores de la granja estuviesen a bajo del 80% de uso y así estaban por debajo.
2) Que el servicio del IIS estuivese corriendo y no tuviese ningún sitio abajo (y estaba corriendo sin reportar problemas de hecho el central administration funcionaba)
3) Que el servicio de SQL Server de los dos servidores de SQL Server estuvise funcionando y corriendo ( efectivamente funcionaban correctamente)
4) Que el sitio estuviese accesible (aquí fallaba y daba un error 500 servicio no disponible)
5) Validó los jobs que estaban en ejecución y allí se encontró el Recyclebin ejecutandose 3 horas antes y estaba al 50%.
6) Se validó el contenido de la papelera de reciclaje y en segunda fase tenie una biblioteca de 500 GB.

La Solución Alterna:
Se deshabilitó el job de limpieza de la papelera de reciclaje para la aplicación web que contiene esta bilbioteca que no logra eliminar.



La Solución Definitiva:
La granja se planificó migrar a un ambiente virtual el cual tiene mucho mas capacidad de procesamiento y en donde este proceso de limpiza si finalizá con éxito y más rápido.  Además de distribuir el contendio de tal forma que se reduzca el tamaño de la base de datos de contenido principal depurando el contenido o moviendolo a una nueva base de datos esto trea consiguo mayor esfuerzo administrativo para el contenido pero lo hace más manejable.

Lección aprendida:
Configurar la depuración de la papelera en un porcentaje menor evitará que permita almacenar 500 GB en la segunda fase.  Distribuir el contenido y hacer un plan de gobierno es una práctica poco adoptada pero muy necesaria para evitar estos problemas a largo plazo.  Monitorear los servicios de la papelera que demoren mas de una hora para validar sus efectos en dicha demora.  También la programación del job de la papelera debe contemplarse su ejecución manual cuando el contenido es arriba de 200 GB y la capacidad de los servidores de la granja actual.

SharePointHardLesson,

Juan Manuel Herrera Ocheita




Una línea de comando de PowerShell sencilla pero poderosa en su contenido SharePoint 2010,2013,2016

Distribuir contenido es de vital importancia, pero cuando son muchas las bases de datos y colecciones de sitios creadas al restaurar una granja se complica saber donde esta la colección de sitios, por lo que es importanet que contenmos con un listado de las aplicaciones web, sus colecciones y base de datos de contenido.
 
Cuando creamos de cero una granja y deseamos montar manualmente las base de datos de contenido, es importante saber cual es la base de datos de contenido que tiene la colección de sitios primaria ya que esta debe de restaurarse de primera instancia. 

También es importante cuando el contenido esta distribuído que base de datos de contendio tiene la colección de sitios que deseamos restaurar.




El comando deberá ejecutarse desde un servidor de SharePoint desde SharePoint Management Shell.  Y la línea de comando  es la siguiente:

Get-spsite -Limit all | select url, webapplication, contentdatabase | Export-Csv e:\infoware\listados\ColeccionesSitios.csv -NoTypeInformation

Url WebApplication ContentDatabase
http://miportal SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content
http://miportal/logistica SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_DataCross
http://miportal/portales SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Portales
http://miportal/sites/permisos SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Search_Center
http://miportal/sites/apps SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=SharePoint_OC
http://miportal/sites/capacitacion SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=SharePoint_OC
http://miportal/sites/inversiones SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Inversiones
http://miportal/sites/seguridad SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content
http://miportal/sites/Proyectos SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_ProyectosIT
http://miportal/sites/prueba_EC SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Esthela_Prueba
http://miportal/sites/search SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Search_Center
http://miportal/sites/sharedspace SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_SharedSpace
http://miportal/sites/temp SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content
http://miportal/sites/temporal SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_ProyectosIT
http://miportal/sitios/rrhh SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=SharePoint_OC
http://miportal/sitios/prueba3 SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Esthela_Prueba
http://miportal/sitios/test SPWebApplication Name=SharePoint - 80 SPContentDatabase Name=WSS_Content_Portales
http://miportal:21387/sites/prueba SPWebApplication Name=Aplicacion Prueba SPContentDatabase Name=WSS_Content_PRUEBA
http://miportal:21387/sites/prueba2 SPWebApplication Name=Aplicacion Prueba SPContentDatabase Name=WSS_Content_PRUEBA
http://miportal:21387/sites/prueba3 SPWebApplication Name=Aplicacion Prueba SPContentDatabase Name=WSS_Content_PRUEBA
http://miportal:24301/sites/prueba SPWebApplication Name=Sitio Federado SPContentDatabase Name=WSS_Content_SITIOFEDERADO

En este ejemplo ficticio vemos que la base de datos de contenido primaria se llama WSS_Content.


Esta será la primera que debemos de montar a través del comando

mount-SPContentDatabase -Name Wss_Content -url http://miportal

Para más información sobre el comando puede utilizar la siguiente línea de comando:

get-help mount-SPContentDatabase -full

Eso esto por este artículo.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita





martes, 20 de diciembre de 2016

Optimizando SQL Server para Granjas de SharePoint

Ya han pasado 16 años de evolución de la plataforma de SharePoint y así como los seres humanos somos entre el 70% y 80% agua así SharePoint es 80% base de datos por lo menos, así que debemos de cuidar de este recurso  tan vital para SharePoint y debemos de empezar configurando SQL Server de forma optima para el funcionamiento de una Granja de SharePoint.



Aspectos Físicos
Desde su concepción debemos de cuidar cosas como:

1) Velocidad de Lectura y Escritura de los discos asignados SQL Server. Hoy en día estamos en un mundo virtual así que muy probablemente se asignen recurson de almacenamiento  de la SAN pero debemos de incliniarnos por tener los discos más veloces posibles para ellos, y no asumir que porque es una SAN ya es seguro que tiene discos veloces, hemos visto que SANs con pesimo rendimiento debido a los discos utilizados para este dispositivo de almacenamiento masivo.  Discos de estado solido sería la mejor apuesta en cuento a rendimiento.

3) Distribución de discos una buena practica es tener entre 5 y 7 Discos distribuídos de la siguiente forma:
         Disco 0 - Sistema Operativo   (2 veces la RAM de espacio libre + 1 Gb para Memoria Virtual)
         Disco 1 - Page File (Memoria Virtual)   (1.5 del total de la RAM)
         Disco 2 - Instalación de SQL Server y otro software como antivirus, firewall, etc) 
         Disco 3 - Bases de datos de Sistema de SQL Server (Master, TempDB, * )
         Disco 4 - Archivos de Datos de base de datos
         Disco 5 - Archivos de Logs de base de datos
         Disco 6 - Para uso temporal (Backups, copia de arhivos y otros usos)

* Para establecer el tamaño máximo de la base de datos tempdb requerido podemos utilizar un factor sencillo como el volumen total de bases de datos esperado por 5%  factor obtenido de experiencia de instalaciones que tenemos sobre SharePoint o algo mucho más complejo  pueden consutlar el siguiente enlace de Microsoft:
https://technet.microsoft.com/es-es/library/ms345368(v=sql.105).aspx  

2)  Virtualizar o físico aunque esto ya no debería ser un tema de discusión todavía hay personas que piensas que lo físico tiene mayor rendimiento que lo virtual y en nuestra experiencia las brechas son muy cerradas y el gran inconveniente de lo físico es su capacidad de crecimiento por lo que recomiendo siempre se vayan por una opción virtual y dejen el mito que Servidor de base de datos físico es una mejor apuesta.


Aspectos de Instalación
Una malisima práctica es Instalar todos las características disponibles de SQL Server para una instalación de SharePoint.  Esto no solo resta recursos inecesariamente sino que amplia la brecha de ataque malisioso o de puntos de falla de SQL Server y es a lo que menos queremos exponernos.

Las características mínimas recomendadas para SharePoint Standard son:

  Database Engine
  Full Text Search
  Connectivity Client Tools
  Management Studio Tools
  Reporting Services for SharePoint (Opcional, para versiones 2010 en adelante)

Para SharePoint Enterprise son:

Database Engine, Full Text Search, Client Connectivity and Management Tools, PowerPivot for SharePoint, SSRS SharePoint Integration, Analysis Services

No deberemos incluir cosas como SQL Server Integration Services, tampoco SDKs, Reporting Services Nativo, y el resto de características no mencionadas arriba, no las instale.

Aspectos de Configuración 
Para el  Motor de base de Datos de SQL Server Para SharePoint las propiedades que debemos de modificar y validar son:

https://technet.microsoft.com/en-us/library/hh292622.aspx

Memoria 

 Memoria del Servidor Máxima: 65% y 75% 
 Memoria del Servidor Mínima : 35% del Valor de la memoria Máxima

Procesadores
   Validar que esten hablitados todos los procesadores y que NO este habilitado Boost SQL Server Priority.  Microsoft no recomienda utilizarla y la eliminará en el futuro.
https://msdn.microsoft.com/en-us/library/ms188709.aspx

his feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Configuración de base de datos
Default index fill factor 80.  Este valor es optimo para el crecimiento y reducir la fragmentación de los índices

https://msdn.microsoft.com/en-us/library/ms177459.aspx
https://technet.microsoft.com/en-us/library/cc262731(v=office.14).aspx


Opciones
Modelo de Recuperación Simple.   Solo si el negocio le solicita recuperar la ultima transacción de un desastre, no esta en alta disponibilidad su granaja  y tiene una disciplina de Backups Completos e incrementales se recomienda Full.  De lo contrario evitese lidiar con grandes arhivos Logs cambiandolo al modelo Simple y  luego haga un shrink al archivo log de base de datos.

Avanzado
Max Degree of Parallelism = 1.  Esto es para asegurar que un solo proceso de SQL Server sirve para cada solicitud.  https://msdn.microsoft.com/en-us/library/ms189094.aspx


Crecimiento de los archivos
Los archivos de base de datos deberemos colocarlos sin restricción con autocrecimiento pero en vez de un porcentaje asignele un valor en MB que puede ser entre 100 Mb y 2,000 MB dependiendo del volumen de los documentos que se suban a SharePoint o el volumen de transacciones.

Por ultimo un plan de mantenimiento de base de datos siempre es importante para mantener los datos a salvo y disponible eso será el próximo artículo que les escribiré amigos lectores.

Estas prácticas lo ayudaran a tener optimo el servidor de base de datos y funcionando de forma balanceada para garantizar la disponibilidad y buen funcionamiento de SQL Server para SharePoint.

SharePoint4Fun, 

Juan Manuel Herrera







5 razones para No compartir el servidor de base de datos de SharePoint con otras aplicaciones

A veces no es bien comprendido la importancia del Back-End en una granja de SharePoint y sin validar de forma adecuada los requerimientos del negocio, del producto (SharePoint) y del alcance de un proyecto de implementación de la granja de SharePoint.

Para evaluar las 5 razones que debemos ver para no compartir el servidor de SQL SErver son:


1) El Negocio
2) La Versión de SharePoint
3) La Edición de SharePoint
4) La pontencial demanda
5) El Mantenimiento

El Negocio
Define la exigencia de la disponibilidad de SharePoint, el volumen de usuarios activos en SharePoint.  Es decir El negocio puede definir que el horario de disponbilidad de SharePoint debe de ser desde las 6 am hasta las 11 pm.  Esto implica que si hay otras instancias en SQL Server corriendo otras aplicaciones pueda que no coincidan con la misma exigencia de disponibilidad.   También el negocio define la criticidad tanto de SharePoint como de las otras instancias las cuales requieran una mayor exigencia.



La Versión de SharePoint

La versión de SharePoint nos define la versión de SQL Server por ejemplo veamos esta tabla:


SharePoint Version SQL Server Version SharePoint N-1 on SQL Server N+1
SHAREPOINT 2007 SQL Server 2000 with the latest service pack or Microsoft SQL Server 2005 SP1, 2008, 2008 R2 https://technet.microsoft.com/en-us/library/cc262485(v=office.12).aspx
SHAREPOINT 2010 SQL Server is 2008/2008 R2 and N+1 is SQL Server 2012 https://technet.microsoft.com/en-us/library/cc262485(office.14).aspx
SHAREPOINT 2013 SQL Server 2008 R2 Service Pack 1, SQL Server is 2012 and the N+1 is SQL Server 2014. https://technet.microsoft.com/en-us/library/cc262485(v=office.15).aspx
SHAREPOINT 2016 Microsoft SQL Server 2014 Service Pack 1 (SP1), Microsoft SQL Server 2016 RTM, SQL Express is not supported https://technet.microsoft.com/en-us/library/cc262485(v=office.16).aspx

La Edición de SharePoint
La Edición de SharePont es importante ya que para la edición de SharePoint Standard se requierie menos servicios de SQL Server y para la versión Enterprise más y esto puede impactar los servicios configurados en una instalación compartida de SQL Server.

Por ejemplo para la edición Standard de SharePoint  requieres como mínimo SQL Server Standard y las siguientes características del SQL Server  (Aplica para Versiones 2007 en adelante):

       Database Engine
        Full Text Search
        Connectivity Client Tools
        Management Studio Tools
        Reporting Services for SharePoint (Opcional, para versiones 2010 en adelante)



En cambio para la edición SharePoint Enterprise es otra historia dependiendo de versión de SharePoint requeriras diferentes ediciones de SQL Server. A continuación la tabla y sus características mínimas a instalar:

SharePoint Versiones SQL Server Versions & Editions Características Enlaces
SHAREPOINT Server 2007 Enterprise SQL SERVER 2000,2005, 2008, 2008 R2 STANTARD, ENTERPRISE, DATACENTER Database Engine, Full Text Search, Client Connectivity and Management Tools, Analysis Services, SSRS Integration Only https://msdn.microsoft.com/en-us/library/cc645993(v=sql.105).aspx
SharePoint Server 2010 Enterprise SQL SERVER 2008 R2 Enterprise, DataCenter Database Engine, Full Text Search, Client Connectivity and Management Tools, PowerPivot for SharePoint, SSRS SharePoint Integration, Analysis Services https://msdn.microsoft.com/en-us/library/cc645993(v=sql.105).aspx
SharePoint Server 2013 Enterprise SQL Server 2012 y 2014 Business Intelligence, Enterprise Database Engine, Full Text Search, Client Connectivity and Management Tools, PowerPivot for SharePoint, SSRS SharePoint Integration, Analysis Services https://msdn.microsoft.com/en-us/library/cc645993(v=sql.110).aspx#PowerPivot https://msdn.microsoft.com/en-us/library/cc645993(v=sql.120).aspx#PowerPivot 
SharePoint Server 2016 Enterprise SQL Server 2016 Enterprise Database Engine, Full Text Search, Client Connectivity and Management Tools, PowerPivot for SharePoint, SSRS SharePoint Integration, Analysis Services https://msdn.microsoft.com/en-us/library/mt742501.aspx#PPSP

Esto implica que la instancia para SharePoint demandará características del producto que pueda no tenga otra de las aplicaciones que consumen los servicios de SQL Server y esto demanda mas recursos del servidor y mas puntos de falla que puedan no ser deseables para aplicaciones transaccionales por ejemplo.

La potencial demanda
SharePoint es una plataforma multiproposito podemos utilizarlo como un portal de comunicación institucional, como un repositorio de documentos, como un repositorio  de activos digitales o multimeda donde el consumo de recursos sea altos por videos, imágenes, que se subien o visualizan en el portal.  Además podemos interconectar otras aplicaciones para que sean visualizadas a través de SharePoint, edición de documentos en línea, consumo de datos multidimensonales a través del despliegue de reportes o gráficas todo esto puede conllevar a que no sean los recursos suficientes o le este quitando los recursos a otras instancias en SQL Server, dependerá como se haya configurada cada instancia del SQL Server Compartido.

El Mantenimiento
Por último pero no por ello menos importante es el mantenimiento como toda aplicación o plataforma la instancia de SharePoint requiere mantenimiento y si la ventana de mantenimiento es muy reducida debido a las otras instancias que comparte pueda que no sea suficiente cuando hay grandes volumenes de contenido ya en SharePoint los procesos demoran más y no es posible en ese rango de 3 o 4 horas finalizarlos.  Además será muy agotador para las áreas de tecnología responsables realizar estos mantenimientos en horarios nocturnos o de madrugada.

Por lo anterior mi recomendación es que no compartan el SQL Server asignado a SharePoint con otras aplicaciones y menos de misión crítica y si ya la estan compartiendo y SharePoint es un producto demandado presupuesten la migración a un servidor de SQL Server exclusivo para la Granja de SharePoint, vivirán menos estresados y mas confiados en que no estan adicionando stress a la ya compleja y sofisticada configuración de una Granja de SharePoint.

Hasta la próxima,

SharePoint4Fun!,

Juan Manuel Herrera Ocheita