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

domingo, 23 de marzo de 2014

Mejores Prácticas SQL Server para Sharepoint 2010/2013 (Best Practices SQL Server for Sharepoint 2010/2013)–Parte 3

Parte 1: Optimización de los servidores de SQL Server

Parte 2: Optimización de la instancia de SQL Server

Parte 3: Mantenimiento de SQL Server (acá estamos)

MANTENIMIENTO DE SQL SERVER

  • Verificar que no haya bases de contenido con tamaño >=200 GB. Se recomienda crear una nueva base de contenido y mover sites collection a esa base (Move-SPSite).
  • Verificar latencia de disco para las bases de datos: utilizar el siguiente ReadAndWriteLatency.

El script nos retornará la latencia de disco (Avg Read Transfer/ms, Avg Write Transfer/ms). Microsoft sugiere los siguientes thresholds:

Database data files:

· Target: <10ms

· Acceptable: 10-20ms

· Unacceptable: >20ms

Database log files:

· Target: <5ms

· Acceptable: 5-15ms

· Unacceptable: >15ms

EXECUTE dbo.DatabaseIntegrityCheck
@Databases = 'USER_DATABASES',
@CheckCommands = 'CHECKDB',
@PhysicalOnly = 'Y'

  • Monitorear semanalmente por Wait Events. Puedes utilizar el siguiente script: WaitStats. Dependiendo de los eventos externos por los cuales SQL espera, se realizará una acción. Ej: agregar más CPU, distribuir los I/O, etc.  Más información

  • Monitorear los growth de la tempDB. Deberían minimizarse al mínimo los growth de la tempDB. El siguiente script nos permite monitorear esos growth, y en el caso que haya muchos, deberíamos iniciar la tempDB con un tamaño mayor y tener tamaños más grande autogrowth: InitialSizeAndGrowth

  • El siguiente script es similar al anterior, pero monitorea las bases de usuario. AutogrowthRecent

Si el script nos retorna que hubo >=7 growth para una base de usuario, significa que no está seteado correctamente el tamaño del autogrow.

Recuerda habilitar el trace en el caso que se haya deshabilitado.

select name, value_in_use

from sys.configurations

where name='default trace enabled'

Si value_in_use no es 1, se deberá habilitar.

sp_configure 'default trace enabled', 1

go

reconfigure with override

go

  • Realizar desfragmentación de indices semalmente. Sharepoint tiene el store proc_UpdateStatistics, que realiza tareas de mantenimiento de indices. El problema de este store es que no se ejecuta para todas las bases de Sharepoint, sólo las de contendio. Se deberá ejecutar el siguiente script para evaluar la fragmentación de los índices:

Fragmentation Index.sql

Columna

Descripcion

avg_fragmentation_in_percent

El porcentaje de fragmentación lógica (páginas fuera de orden en el índice)

fragment_count

El número de fragmentos (páginas de hojas físicamente consecutivas)

avg_fragment_size_in_pages

Número promedio de páginas de un fragmento en un índice

Una vez verificado el estado de los índices, evaluar la siguiente tabla

avg_fragmentation_in_percent value

Sentencia correctiva

> 5% and < = 30%

ALTER INDEX REORGANIZE

> 30 %

ALTER INDEX REBUILD WITH (ONLINE= ON)

Para hacer un rebuild de los índices fragmentados, se deberá ejecutar el siguiente script (se utilizará el script de ola.hallengren.com):

1. Crear el procedimiento de desfragmentación de índices con el siguiente script

MaintenanceSolution.sql

2. Ejecutar el siguiente script

RebuildIndices.sql

El script anterior se puede crear un job para que se ejecute semanalmente (Sunday).

Ejecutar de nuevo el script FragmentationIndex.sql y ejecutar el siguiente script para verificar el estado de las estadísticas:

ReviewStatistics.sql

Si quieres utilizar el store de Sharepoint para desfragmentar los indices, puedes usar el siguiente script:

EXECUTE sp_msforeachdb
'USE [?];
IF DB_NAME() NOT IN(''master'',''msdb'',''tempdb'',''model'')
     begin
          print ''updating statistics in database  ==> '' + db_name()
          if exists (select 1 from sys.objects where name = ''proc_updatestatistics'')
             begin
                  print ''updating statistics via proc_updatestatistics''
                  exec proc_updatestatistics
             end
         else
             begin
                  print ''updating statistics via sp_updatestats''
                  exec sp_updatestats
             end
    end'

Más información en el siguiente link, link2.

  • NUNCA hacer shrinks de datafiles (hay casos especiales, tales como borrado de mucha información, o tamaño excesivo de la base de crawl: link). Se puede hacer shrink de los logs, pero es preferible setear a modo simple las bases y evitar tamaños grandes de logs. En vez de Shrink de logs, se podría crear una buena política de backups y evitar el shrink, ya que al hacer el backup de las bases automaticamente realiza un shrink de los logs.
  • En el caso excesivo de consumo de CPU y RAM en el crawl del Search, se puede utilizar Resource Governor. Link
  • Verifica semanalmente las best practices definidas en el punto 2 de esta serie de post (Ej: auto update statistics=false, autoshrink=false, fill factor=80, etc)
  • Instalar SQL Best Practices Analyser, y verificar mensualmente las mejores práctices (se actualiza de forma continua): http://www.microsoft.com/en-us/download/details.aspx?id=29302 (recuerda, no siempre las mejores prácticas de SQL Server aplican para Sharepoint)
  • Semanalmente desfragmentar los volumenes donde se encuentran los datafiles de SQL Server. Una excelente herramienta para evaluar la fragmentación de los datafiles es contig de SysInternals.contig -a "E:\Data\nombreBaseDatos.mdf". Recuerda de poner la base de datos a offline y ejecutar el proceso de desfragmentación, al finalizar ponla de nuevo en online a la base de datos.
  • Evaluar la base de datos que más memoria consume

MostMemoryXDatabase.sql

  • Monitorear los archivos lógicos (VLF).Lo indicado en tener ente 20 a 100 vlf`s.  Más información en el siguiente link

ListVLFCounts.sql

En el caso que quiera evaluar específicamente la tempdb, puede ejecutar el siguiente comando:

DBCC LOGINFO

Para reducir la cantidad de vlfs, puede consultar los siguientes links:

http://blogs.msdn.com/b/saponsqlserver/archive/2012/02/22/too-many-virtual-log-files-vlfs-can-cause-slow-database-recovery.aspx

  • Monitores útiles:

A continuación una lista de contadores a evaluar:

· Memory – Available MBytes

· Paging File – % Usage

· Physical Disk – Avg. Disk sec/Read

· Physical Disk – Avg. Disk sec/Write

· Physical Disk – Disk Reads/sec

· Physical Disk – Disk Writes/sec

· Processor – % Processor Time

· Processor – % Privileged Time

· Process: IO Read Bytes/sec

· Process: IO Read Bytes/sec

· Process (sqlservr.exe)

· SQLServer: Buffer Manager – Page life expectancy

· SQLServer: Buffer Manager – Lazy writes/sec

· SQLServer: General Statistics – User Connections

· SQLServer: Memory Manager – Memory Grants Pending

· SQLServer: SQL Statistics – Batch Requests/sec

· SQLServer: SQL Statistics – Compilations/sec

· SQLServer: SQL Statistics – Recompilations/sec

· System – Processor Queue Length

  • Instalar SQL Server 2012 Performance Dashboard Reports

Se deberá instalar SQL Server 2012 Performance Dashboard Reports, el cual permite generar reportes de problemas de performance de forma rápida. Algunos reportes incluyen lo siguiente:

· CPU bottlenecks (and what queries are consuming the most CPU)

· IO bottlenecks (and what queries are performing the most IO)

· Index recommendations generated by the query optimizer (missing indexes)

· Blocking

· Latch contention

http://www.microsoft.com/en-us/download/details.aspx?id=29063

miércoles, 4 de diciembre de 2013

Service Application CrawlStore Database– Demasiado grande (Crawl Database Is Too Large)

En el caso que tengas la base de crawl (Crawl Store) con un tamaño importante, lo que deberías hacer es realizar un reset del indice, y a continuación hacer un shrink de la base de datos (shrink del datafile)

image

image

image

All Tasks - Shrink - Database: undo Reorganize files before releasing unused space

Untitled

A continuación realiza un full crawl de los content sources.

Recuerda que la base de crawl dependerá del tamaño de las bases de contenido: average size for crawl = 0,046 * (content SQL DB)

sábado, 2 de marzo de 2013

Tips Info #9 Sharepoint 2013

1-Clave de registro donde se encuentra el database connection string de Sharepoint 2013

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

2-Editar una columna de Metadata en el Datasheet de Sharepoint 2013

En 2010 no era posible editar una columna de metadata vía la vista de Datasheet, ahora en 2013 es posible gracias a la vista Quick Edit.

List-ribbon-interface.jpg

Edit-the-managed-metadata-value.jpg

Replace-the-term.jpg

3-Qué puedo seguir (Follow) en Sharepoint 2013

Notifications seen by people following Allie Bellew

Personas (People)

Documentos (Documents)

Sitios (Sites)

Tags (etiquetas)

En el siguiente link, informa que se muestra en la sección de Newsfeed: http://bernado-nguyen-hoan.com/2013/02/25/newsfeed-in-sharepoint-2013-what-can-you-expect/

4-No se ve el link de Design Manager en Sharepoint 2013

Para poder ver el link de Design Manager en la sección de Site Settings, se deberá activar la “Publishing Feature” a nivel del site collection.

5-Timeout de Sharepoint 2013 en Azure

En el caso que armemos una infraestructura en Azure de Sharepoint, puede ocurrir que el acceso a Base de datos nos dé timeout de acceso.

Para ello modificaremos el connection string de Sharepoint ubicado en la siguiente ubicación: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\Secure\ConfigDB

miércoles, 13 de febrero de 2013

Tips Info #96 Sharepoint 2010

1-Web Analytics jobs

Web Analytics tiene varios jobs:

  • Microsoft SharePoint Foundation Site Inventory Usage Collection – Por default, este job corre diariamente. Es responsable de coleccionar el inventario de información de sites de cada site collection en la granja. Este job es el primero que debe ejecutarse.
  • Microsoft SharePoint Foundation Usage Data Import – Por default, este job corre cada 30 minutos. Es responsable de importar datos de uso y guardarlos en la base de logging.
  • Microsoft SharePoint Foundation Usage Data Processing – Por default, este job corre diariamente. Es reponsable de procesar los datos que han sido acumulados y guardarlos en la base de Staging.
  • Web Analytics Trigger Workflows Timer Job – Por default, este job corre diariamente. Es responsable de iniciar los workflows que permite la distribución automática de los reportes de analytics.

2-No hay datos de web analytics en Sharepoint 2010

Verificar 1: el servicio de analytics se esté ejecutando

Central Administration > Application Management > Service Applications > Manage Services on Server

Verificar que estén iniciados los siguientes servicios:

  • Web Analytics Data Processing Service

  • Web Analytics Web Service

Verificar 2: Configurar correctamente Usage Data reporting

Central Administration > Monitoring > Reporting > Configure usage and health data collection

Verificar que el usage data collection esté habilitado.

Verificar 3: configurar correctamente la definición de jobs

Central Administration > Monitoring > Timer Jobs > Review job definitions

  • Microsoft SharePoint Foundation Usage Data Import (30 minutos)

  • Microsoft SharePoint Foundation Usage Data Processing  (diario)

  • Microsoft SharePoint Foundation Site Inventory Usage Collection  (diario)

Verificar 4: verificar permisos de la carpeta de usage logs

Default: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS\

Verifica los siguientes permisos de grupos de seguridad:

  • WSS_Admin_WPG: everything but Full Control

  • WSS_RESTRICTED_WPG: read and write

  • WSS_WPG: read and write

Verificar 5: verificar que esté prendida la feature a nivel de site collection

Site Collection Administration -> Site Collection Features -> Advanced Web Analytics

Verificar 6: verificar que el servicio de windows SPTraceV4 esté iniciado

Recuerda que tarda 24 hs en procesar la información completa.

4-The Server is busy now – Try again later

SharePoint incluye un sistema para la limitación de diversos contadores de rendimiento de Windows Server 2008 y para la limitación (es decir, el bloqueo) de las solicitudes HTTP, si alguno de dichos contadores indica que un servidor se encuentra muy ocupado para atender todas las solicitudes que recibe. El sistema de limitación y supervisión puede activarse y desactivarse para una aplicación web de SharePoint específica en la aplicación de Administración central o por medio de un comando de PowerShell (Set-SPWebApplicationHttpThrottlingMonitor). El sistema puede modificarse mediante el modelo de objetos de SharePoint o mediante los cmdlets de la Consola de administración de SharePoint.

Se envía un error HTTP 503 al cliente de las solicitudes bloqueadas.

The Server is busy now. Try again later

El Health Score es calculated desde un conjunto de Performance Counters. Por default se usa dos erformance counters para esto:

Memory/Available MBytes
ASP.NET/Requests Current

Puedes consultar estos contadores mediante el siguiente comando:

Get -SPWebApplicationHttpThrottlingMonitor http://url_web_application

Una calculadora de puntuación de estado convierte un valor sin formato de un contador de rendimiento (o el resultado de alguna función aplicada a varios valores sin formato) en una puntuación de estado de 0 a 10, donde 0 representa la puntuación con el mejor estado posible del contador y 10 representa la puntuación con el peor estado.

Buckets of what?

Más información en los siguientes links:

http://www.wictorwilen.se/sharepoint-2013-sharepoint-health-score-and-throttling-deep-dive

http://blogs.msdn.com/b/besidethepoint/archive/2010/09/13/http-request-throttling-in-sharepoint-2010.aspx

http://blogs.msdn.com/b/besidethepoint/archive/2010/09/14/http-request-throttling-in-sharepoint-2010-part-2.aspx

http://msdn.microsoft.com/en-us/library/ff407390(v=office.14).aspx

5-Migrar bases de datos de SQL Server a otro servidor de SQL

Detener todos los servicios de windows

  • SharePoint 2010 Administration
  • SharePoint 2010 Timer
  • SharePoint 2010 Tracing
  • SharePoint 2010 User Code Host
  • SharePoint 2010 VSS Writer
  • SharePoint Foundation Search V4
  • World Wide Web Publishing Service
  • SharePoint Server Search 14
  • Web Analytics Data Processing Service
  • Web Analytics Web Service

Detener el IIS

  • iisreset /stop

Detach de todas las bases de datos del SQL Server viejo

Mover todos los archivos (.ldf, .mdf y .ndf) de base de datos al nuevo SQL Server y realizar un attach de los mismos

4 Attach Database

Migrar las user accounts y permisos del servidor viejo al nuevo

http://support.microsoft.com/kb/918992

Verifica que los puertos del nuevo SQL Server estén abiertos

Agrega el alias del sql server nuevo en el servidor de Sharepoint mediante cliconfig

Inicia todos los servicios de windows

  • SharePoint 2010 Administration
  • SharePoint 2010 Timer
  • SharePoint 2010 Tracing
  • SharePoint 2010 User Code Host
  • SharePoint 2010 VSS Writer
  • SharePoint Foundation Search V4
  • World Wide Web Publishing Service
  • SharePoint Server Search 14
  • Web Analytics Data Processing Service
  • Web Analytics Web Service

Has un iisreset /start

jueves, 31 de enero de 2013

Tips Info #94 Sharepoint 2010

1-El servicio de crawl de Sharepoint se detuvo después de que el servidor de base de datos se quedó sin disco (The crawl Sharepoint service stopped after the database server ran out of disk.)

En este escenario, el crawl se mete en un bucle donde el servidor SQL Server intenta asignar espacio adicional para los datos aplicables o el directorio de logs. Sin embargo, porque no hay espacio suficiente en el disco (o el destino no permite el auto-growth), la asignación de espacio producirá un error y la operación de búsqueda se deshace. Los servicios de búsqueda, intentará repetir la operación fallida, que continuará fallando.

Intentando detener el crawl (por ejemplo, desde la página de Administración de búsqueda) podría exacerbar el problema, ya que esta acción podría generar un número elevado de transacciones para eliminar elementos de las tablas de cola de rastreo y afines al proceso de rastreo. Por lo tanto, lo mejor es evitar detener el rastreo.

Use los siguientes pasos para resumir el crawl:

  • Detener los servicios 'SharePoint Server Search 14' (net stop osearch14) y 'SharePoint 2010 Timer' (net stop spTimerV4) en cada servidor de la granja. ()
  • Desde SQL Server Management Studio, hacer un detach de la Crawl Store DB(s)
  • Mover los files de la base de datos y/o log’s (Ej. .mdf, .ldf, y .ndf)  Crawl Store DB(s) a un path con sufiente espacio en disco.
  • Re-attach de la base de datos Crawl Store DB(s)
  • Reiniciar los servicios 'SharePoint Server Search 14' (net start osearch14) y 'SharePoint 2010 Timer' (net start spTimerV4)

2-Componentes del Search de Sharepoint 2010

Search Components

  • Search Administration
    Los usuarios interactúan con este componente vía el Central Admin (Central Admin -> Manage Service Applications -> [click sobre el SSA] )
  • Crawl Components
    Crawl components procesa los crawls de las fuentes de contenido, propaga los índices de resultados hacia los query components. Los Crawl components son asociados con un sólo Search Service Application.. Puede haber  n a 1 relaciones entre Crawl Components y una Crawl DB
  • Query Components
    Este componente retorna resultados de las búsquedas, cada query component es parte de un “index partition”, el cual es asociado con una base de datos de propiedades (property), la misma contiene la metadata asociada con un conjunto específico de contenido indexado.

Search Databases

  • Search Service App (SSA) Admin Database

La base de datos  SSA Admin ayuda a administrar los aspectos de alto nivel de SSA tales como search topology, crawl state/history, y host distribution & refactoring. La misma también almacena  los security descriptors (ACLs) usados para realizar el trim de los resultados de búsqueda.También mantiene los bets set del crawl component.

  • Crawl Database

La base de datos de Crawl mantiene los aspectos relacionados del crawl tales como scheduling, content sources. También provee una cola de crawl, que mantiene el status de las crawled URLs, y almacena links/textos de los tags que se descubren durante el crawl.
Crawl databases son asociados con crawl components.

  • Property Database

La base de property contiene la metadata  asociada con el contenido indexado. Property databases son asociados con index partitions, y retorna la metadata asociada con el contenido en los resultados de búsqueda.

Search Services

  • Search Admin Web Service (SearchAdmin.svc en el IIS)
  • Search Query and Site Settings (SQSS) Web Service (SearchService.svc en el IIS)

El servicio SQSS es llamado por el WFE para manejar las queries, además sirve como balanceador de carga para query components. Este servicio corre sobre cada server que incluye un search query component. Este servicio administra las tareas de procesamiento de query, las cuales incluyen enviar queries a uno o varios query components y construye los resultados de búsqueda.

  • SharePoint Server Search service (MSSearch.exe): administra el proceso de crawling del contenido, tiene reglas que determinar el contenido a indexar.
  • SharePoint Search Filter Daemon (MSSDmn.exe): cuando una solicitud es tomada para indexar un repositorio, el proceso MSSearch.exe invoca una filter daemon, MssDmn.exe, que carga el requerido protocol handlers y filtros necesarios para conectar, obtener y parsear el contenido.

3-Cambiar los campos “Created by” y “Modified By” (Change fields "Created by" and "Modified By")

  using (SPSite site = new SPSite(SPContext.Current.Web.Url))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList lista = web.Lists.TryGetList("ListaModificar");
                    SPListItem item = lista.GetItemById(14);
                    web.AllowUnsafeUpdates = true;

                     //En este caso se usa el objecto SPUser
                    item[SPBuiltInFieldId.Author] = SPContext.Current.Web.CurrentUser;
                   
                    //En el siguiente ejemplo se usa el user id (integer)
                    //item[SPBuiltInFieldId.Author] = SPContext.Current.Web.CurrentUser.ID;                  

                    item.Update();

                    web.AllowUnsafeUpdates = false;
                }
            }

4-Agregar una servidor de failover para una base de datos de Sharepoint 2010 vía powershell (Add a failover server for database Sharepoint 2010 via powershell)

$database = Get-SPDatabase | where { $_.Name -eq “NombreBaseDeDatos” }
$database.AddFailoverServiceInstance(“NombreSQLServerFailover”)
$database.Update();

5-Limpiar la cache de Sharepoint Designer

A veces ocurre que aunque hayamos hecho el check in, los archivos en Sharpeoint Designer quedan con el icono que informa que sigue en check out, o cuando aparecen mensaje del tipo “Cannot perform this operation. The file is no longer checked out or has been deleted.”, cuando se quiere hacer check in de un file. La solución es limpiar la cache.

Abra las siguientes carpetas, y limpie su contenido:

  • %APPDATA%\Microsoft\Web Server Extensions\Cache
  • %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache

miércoles, 12 de diciembre de 2012

Links útiles #12 Sharepoint 2013

1-Integración Sharepoint 2013 y Exchange 2013 (Mailboxes)

http://www.bryanporter.com/archive/2012/12/10/how-to-enable-site-mailboxes-with-sharepoint-exchange.aspx

2-Sharepoint 2013 Apps – comandos útiles de powershell para configurar apps

http://blogs.msdn.com/b/besidethepoint/archive/2012/12/10/sharepoint-apps-powershell-helpers.aspx

3-Sharepoint 2013 Low trust apps (Azure)

http://blogs.msdn.com/b/besidethepoint/archive/2012/12/10/sharepoint-low-trust-apps-for-on-premises-deployments.aspx

4-Cross Site Publishing en Sharepoint 2013

http://blogs.technet.com/b/sharepoint_quick_reads/archive/2012/09/18/sharepoint-2013-cross-site-publishing.aspx

http://blogs.technet.com/b/sharepoint_quick_reads/archive/2012/09/19/configure-cross-site-publishing-in-sharepoint-server-2013-step-by-step.aspx

5-Ribbon custom action Sharepoint 2013

http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2012/12/11/creating-sharepoint-ribbon-custom-actions-with-visual-studio-2012.aspx

6-External Content Type en Sharepoint 2013

http://wyldesharepoint.blogspot.com.ar/2012/12/sharepoint-2013-setting-up-external.html

7-Trabajar con Documentos offline y Sharepoint 2013

http://www.learningsharepoint.com/2012/12/12/how-to-work-with-documents-offline-in-sharepoint-2013/

8-Tipos de bases de datos de Sharepoint 2013

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

9-Introducción a Apps en Sharepoint 2013

http://extreme-sharepoint.com/2012/12/12/sharepoint-2013-apps-basics/

10-Shredded Storage en Sharepoint

https://www.nothingbutsharepoint.com/sites/itpro/Pages/SharePoint-2013-The-Truth-Behind-Shredded-Storage.aspx

martes, 4 de diciembre de 2012

Tips Info #1 Sharepoint 2013

1-Upload multiple en Sharepoint 2013

La opción de Upload multiple files ha sido deprecated, ahora se podrá usar drag and drop desde la vista del explorador, o de cualquier ubicación.

New-Picture-23

New-Picture-53

Fijate que cambio el label de Upload multiple, ahora dice “Upload Files using windows Explorer Instead”

Recuerda revisar si tienes el servicio WebClient iniciado, y también agrega el site de Sharepoint como site seguro.

2-Algunas mejoras de base de datos en Sharepoint 2013

Gracias a MS SQL 2012 Server se usa la feature shredded storage que reduce el tamaño de las content database y optimiza el tráfico de red.

Se removieron un motón de tablas que no se usaban y se simplicó el schema de base de datos.
En SP2013 se utiliza by the MS-FSSHTTP que permite que sólo los cambios que se han editado se guarden en la base de contenido. En 2010 cada vez que generabas una nueva versión, se guardaba la versión vieja y la nueva.

3-Folder y document sets en Sharepoint 2013

Es posible:

  • Crear una carpeta dentro de otra carpeta
  • Crear un document set dentro de una carpeta
  • Crear una carpeta dentro de un document set

No es posible:

  • Crear un document set dentro de un document set

4-Ocultar la Quick launch o left nav mediante la feature “Focus on content”

New-Picture-23

New-Picture-25

New-Picture-26

5-Acceso denegado (401) en un nuevo web application en Sharepoint 2013 ó el navegador pregunta de forma continua por

Ejecute los siguientes pasos:

  • deshabilite la feature DisableLoopbackCheck (link)
  • Agregue una policy de full control sobre el usuario administrador
  • Agregue el usuario del app que ejecuta como farm administrator.
  • Configure la clave de registro BackConnectionHostNames (link)
  • Agregue el site collection como trusted site

jueves, 29 de noviembre de 2012

Tips Info #81 Sharepoint 2010

1-Error en Visual Studio en ambiente local de Sharepoint: The web application at http://server could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.

Revisa que estés compilando en x64, ya que Sharepoint es una plataforma de 64 bits.

image

2-Error: The method “GetItems” of the Type “List” with id “{ID}” is blocked by the administrator  on the server

Este error se debe a que se quiso consumir información de Sharepoint mediante client object.

Ejecuto el siguiente comando de powershell para saber si el método se encuentra como tipo restringido.

$wa = Get-SPWebApplication -Identity http://webapplication_url
$wa.ClientCallableSettings.AnonymousRestrictedTypes

image

Como pueden ver en la imagen superior, el método GetItems está restringido.

Para solucionar este error ejecutar el siguiente comando:

$wa = Get-SPWebApplication -Identity "http://webapplication_url"
$wa.ClientCallableSettings.AnonymousRestrictedTypes.Remove([Microsoft.SharePoint.SPList], "GetItems")
$wa.Update()
$wa.ClientCallableSettings.AnonymousRestrictedTypes

image

3-Tips de SQL tunning para Sharepoint

  • maxdop = 1 (Max degree of parallelism)

6443.BlogMaxdopPhoto%231

Cuando se ejecuta una consulta en paralelo, sin duda, encontrará
que uno de los hilos (thread) termina antes que el otro y tiene que esperar a otra
hilo para hacer su trabajo. En aplicaciones con transacciones cortas y rápidas, esto
está muy bien. En las aplicaciones con gran cantidad de transacciones, con un montón de
consultas ejecutadas en paralelo (es decir, como es el caso de SharePoint), esto puede conducir a una
reducción en el rendimiento, ya que los threads que tienen que hacer el trabajo real, tienen que
esperar a que otros hilos terminen.

  • No hacer shrink de los datafiles (MDF, NDF, LDF)

Puede ocasionar desfragmentación de indices y pérdida de performance

  • Configuración de la TempDB

Crear la base de datos tempdb en el almacenamiento más rápido disponible (SSD es una gran opción). Pre-asignación de espacio para tus archivos de tempdb estableciendo el tamaño del archivo inicial a un valor más grande para que pueda adaptarse a la carga de trabajo típica en el entorno, se puede ir en una regla de oro que el tamaño debe ser de 25% de la base de datos más grande de contenido.Crea varios archivos de datos para maximizar el ancho de banda del disco y reduce la contención archivo TEMPDB. Hacer cada archivo del mismo tamaño, lo que permite una óptima proporción de llenado rendimiento.

  • No habilitar la opción de “Auto Update Statistics” y “Auto Update Statistics Asyncronously”

auto-create-statistics-on-a-sql-server_thumb

 

4-Ocultar la ribbon para usuarios anónimos

Buscar en la master page el div con el id s4-ribbonrow, y agregar la clase hide-ribbon

<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle hide-ribbon">

Una vez agregado la clase, se deberá agregar el siguiente control en la master page

<SharePoint:SPSecurityTrimmedControl ID="VerRibbon" PermissionString="ManageLists" runat="server">
  <style type="text/css">
    body .hide-ribbon {
      display: none;
    }
  </style>
</SharePoint:SPSecurityTrimmedControl>

También se puede agregar todo el div s4-ribbonrow, pero puede ocasionar problemas con el elemento #s4-workspace y los scrollbars.

5-Cambiar el logo de todos los sites collections y sites de un web application mediante powershell

Get-SPWebApplication http://url_webapplication | get-spsite -Limit All | get-spweb -Limit All | foreach {$_.SiteLogoUrl = "/_layouts/images/custom/logo.gif"; $_.Update()}

miércoles, 21 de noviembre de 2012

Tips Info #80 Sharepoint 2010

1-Error:  An exception occurred when trying to issue security token: The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs..

Este error puede ocurrir al configurar forms authentication en Sharepoint 2010.

Para ver el error real, debermos editar el web.config que está dentro de \14\WebServices\SecurityToken (previo backup del mismo), y agregar la siguiente línea debajo de la línea “serviceThrottling”:

<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>

6a012875706f1b970c014e88808662970d

2-Obtener el tamaño de las bases de datos de Sharepoint

SELECT d.name,
ROUND(SUM(mf.size) * 8 / 1024, 0) Size_MBs
FROM sys.master_files mf
INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4 -- Skip de las bases de sistema
GROUP BY d.name
ORDER BY d.name

3-Actualizar información de un usuario desde el AD

Set-SPUser -Identity domain\user -Web http://site -SyncFromAD

4-Error 500 al llamar un web services vía jquery o javascript

Agregar en el web.config de tu web application y en el web.config de la carpete ISAPI lo siguiente:

<system.web>
  <webServices>
    <protocols>
      <add name="HttpGet" />
      <add name="HttpPost" />
    </protocols>
  </webServices>
...
</system.web>

5-Re-provisionar todos los Sharepoint Web Services

$h = Get-SPServiceHostconfig
$h.Provision()
$services = Get-SPServiceApplication
foreach ($service in $services) { $service.provision();
write-host $service.name}

miércoles, 12 de septiembre de 2012

Tips/Info #67 Sharepoint 2010

1-Tamaño de bases de datos de un web application

$DatabeSize = Get-SPContentDatabase -WebApplication "http://Web_applicationURL"
$DatabeSize | Format-Table Name, @{Label="Size"; Expression={$_.DiskSizeRequired / 1073741824}}

2-Redireccionar a una página desde una sandboxed solution

Cómo saben NO se pueden usar Response.Redirect, SPUtility.Redirect, Server.Transfer. Para poder hacer un redireccionamiento podremos hacer lo siguiente:

Literal literalRedirect = new Literal
   {
     Text =
        “<script  language=’javascript’>window.location.href=’/';</script>”
   };
Controls.Add(ltrl);

3-No se muestra de forma correcta el Display Name

En sharepoint se muestra el Display Name como Dominio/UserName, lo cual es erroneo.

Para solucionarlo, se puede usar la sincronización via el User Profile Syncronizacion Service. Otra posibilidad es usar el CMDLet Set-SPUser .

Set-SPUser -Identity ‘Domain\cazcon' -DisplayName ‘Christian Azcon’ –Web http://SharePointServer
Para forzar una sincronización manual de las propiedades del usuario desde el AD, se puede usar la siguiente sentencia:
Set-SPUser -Identity ‘Domain\cazcon' –Web http://SharePointServer –SyncFromAD

Más info: http://technet.microsoft.com/en-us/library/ff607827.aspx

4-Insufficient SQL database permissions for user ‘Name: SID: ImpersonationLevel: Impersonation’ in database ‘SharePoint_Config’ on SQL Server instance ‘’ The EXECUTE permission was denied on the object ‘xxxx’, database ‘SharePoint_Config’, schema ‘dbo’.

Abrir el SQL Managment Studio, ir hasta el store que lanza el error, click derecho y elegi la opción de “Properties”, en la sección de “Permissions” , asigna el permiso de “Execute” al grupo “WSS_Content_Application_Pools”.

5-Borrar logs de auditoría en Sharepoint 2010

Ejecuta SharePoint 2010 Powershell con permisos de administrador
Y ejecuta lo siguiente:
$site = Get-SPSite http://siteCollectionURL
$date = Get-Date “12/09/2012”
#verifica si la fecha es correcta
$date
$site.Audit.TrimAuditLog($date)

martes, 12 de junio de 2012

Links útiles #32 Sharepoint 2010

1-Donde se ejecutarán los jobs de timers en Sharepoint 2010?

http://weblogs.asp.net/spano/archive/2012/06/10/where-is-my-sharepoint-2010-custom-timer-job-running.aspx

2-Base de datos de configuración de Sharepoint 2010 en modo “Suspect” o al tratar de conectarse lanza el error: Cannot connect to configuration database

http://joeprakash.wordpress.com/2012/06/04/sharepoint-configuration-database-in-suspect-mode/

3-Tipos de archivos y ifiltros que soportan esos tipos de archivos

http://technet.microsoft.com/es-ar/library/gg405170

4-Crawled properties de Sharepoint 2010

http://technet.microsoft.com/es-ar/library/hh134087

5-Conectores Default que se conectan a diferentes repositorios para ser “crawleados”

http://technet.microsoft.com/es-ar/library/gg153530.aspx

6-SPFilterDropDown de SPServices: para ordenar

http://sympmarc.com/2012/05/11/using-spfilterdropdown-to-reorder-options-in-a-dropdown-on-a-sharepoint-form/

http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPFilterDropdown

7-Error: "Load control template file /_controltemplates/TaxonomyPicker.ascx failed"

http://support.microsoft.com/kb/2481844

8-Crawl de un shared folders con Sharepoint 2010

http://www.c-sharpcorner.com/UploadFile/40e97e/sharepoint-search-content-sources/

9-Sharepoint sobre dispositivos móviles

http://www.techomechina.com/blog/sharepoint-on-mobile-devices-the-options/

10-Organization Browser en Sharepoint 2010 – Organigrama

http://adminsonnetwork.wordpress.com/2012/06/03/organization-browser-in-sharepoint-2010/

viernes, 6 de abril de 2012

Tips/info #13–Sharepoint 2010

1-Soporte para mirroring de base de datos en Sharepoint 2010

hay dos bases de datos que no tienen soporte para mirroring

  • User Profile Service: Synchronization database
  • Web Analytics Service: Staging database

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

2-Características no soportadas para excel services en Sharepoint 2010

  • Comentarios de celdas
  • Referencias de fórmulas a libros externos
  • Query tables (conocidos como external data ranges).
  • Microsoft Visual Basic for Applications (VBA).
  • Cualquier tecnología OfficeArt. Ej, Shapes, WordArt, SmartArt, organization chart, diagrams, signature lines, ink annotations, etc.

3-Rompiendo la herencia de seguridad de una lista mediante Client Object

   1:  using System;
   2:  using Microsoft.SharePoint.Client;
   3:  using SP = Microsoft.SharePoint.Client;
   4:   
   5:  namespace Microsoft.SDK.SharePointServices.Samples
   6:  {
   7:      class BreakSecurityInheritance
   8:      {
   9:          static void Main()
  10:          {
  11:              string siteUrl = "http://MyServer/sites/MySiteCollection";
  12:              ClientContext oContext = new ClientContext(siteUrl);
  13:              SP.List oList = oContext.Web.Lists.GetByTitle("Announcements");
  14:   
  15:              oList.BreakRoleInheritance(true, false);
  16:   
  17:              oContext.ExecuteQuery();
  18:          }
  19:      }
  20:  }




Más info: http://msdn.microsoft.com/en-us/library/ee535228.aspx


4- Opción Accuracy Index en el panel de refinamiento



Hay algunos conceptos erroneos con respecto al panel de refinamiento y cómo se general los refinamientos. A continuación los conceptos erroneos:




  • Los refinamientos son generados del conjunto completo de resultados de búsqueda


  • Los refinamientos son generados de la primera página de los resultados de búsqueda


  • Los refinamientos son generados de forma random

Ninguno de estos conceptos son correctos, los refinamientos son generados en base a una propiedad del panel de refinamiento: Accuracy Index.



image_thumb


Define cuántos elementos se consideran en la creación de los refinamientos. Por defecto se establece en 50 de modo que sólo los primeros 50 elementos en sus resultados de búsqueda se utiliza para generar los refinamientos.




  • Esto tiene varias consecuencias importantes:
    Si usted tiene más de 50 resultados (por ejemplo 20000) podría haber algunas categorías de refinamiento que no aparecen porque no están en los primeros 50 resultados


  • Si usted tiene contadores para los refinamientos, verá que el número total contadores podría no sumar el número total de resultados.

Sin embargo, usted puede aumentar este valor hasta un máximo de 500. Si usted quiere ser capaz de generar refinamientos para todos los resultados de búsqueda, llamados deep refiners, entonces usted tendrá que usar FAST Search.


Entre más refinamientos tengas, menor performance tendrá en la consulta.


5-Mostrar contadores en el panel de refinamiento



Hacer click en “Filter Category Definition” en el web part de panel de refinamiento.



image_thumb1


En la categoría deseada, ej: Title, agregar ShowCounts=”Count”


image_thumb2


La inclusión del contador es determinado por xlst en el web part de refinamiento.


image_thumb3


6-Evitar dos llamadas a ItemUpdating después de subir un documento a una document library



   1:  public override void ItemUpdating(SPItemEventProperties properties)
   2:    {  
   3:      base.ItemUpdating(properties);
   4:      if (properties.AfterProperties["vti_sourcecontrolcheckedoutby"] == null && properties.BeforeProperties["vti_sourcecontrolcheckedoutby"] != null)
   5:       {
   6:         //do stuff
   7:       }
   8:    }




Más info: http://www.simple-talk.com/content/print.aspx?article=1424


7-Habilitar HTML 5 en Sharepoint 2010



En tu master page default, buscar la siguiente línea:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

Modificarla por:

<!DOCTYPE html>

Después modifica la siguiente línea:

<meta http-equiv="X-UA-Compatible" content="IE=8"/>

Por la siguiente:

<meta http-equiv="X-UA-Compatible" content="IE=9"/>









8-Error: al abrir un archivo word desde Sharepoint 2010



Word experienced an error trying to open the file.

Try these suggestions.

* Check the file permissions for the document or drive.

* Make sure there is sufficient free memory and disk space.

* Open the file with the Text Recovery converter.

word_error



Para solucionarlo, ir a File/Options/Trust Center/Trusted Center Settings.


Después seleccionar la sección Protected View, y desmarcar todas las opciones.


protected_view-300x172



9-Donde crear un servicio de WCF en Sharepoint 2010



Si está creando un servicio WCF básicamente tienes dos opciones:
-Crear un servicio WCF en un contexto de SharePoint.
-Crear un servicio WCF independiente.



Si está creando un servicio WCF en un contexto de SharePoint, básicamente hará lo siguiente: crear un proyecto de SharePoint, agregue el servicio WCF y desplegar a la carpeta ISAPI. Véase: http://msdn.microsoft.com/en-us/library/ff521581.aspx  para obtener más información. Además, puede utilizar http://cksdev.codeplex.com/  , que contiene una plantilla WCF útil.



Si está creando un servicio WCF independiente, básicamente creará un proyecto WCF y publicar el servicio. Ver
http://sharepointdragons.com/2011/10/07/parallel-programming-in-sharepoint-2010-the-back-to-the-future-pattern/



¿Por lo tanto, a la hora de elegir uno de los dos escenarios, cuál es la mejor práctica, y por qué?


Crear un servicio WCF en un contexto de SharePoint
-Si necesita que el servicio se ejecute en el contexto actual de SharePoint
-Si desea utilizar el soporte completo de API de SharePoint
-Si desea que su cliente acceda a su servicio con la misma experiencia como los servicios de SharePoint OOB
-Si se extiende algunos funcionalidad personalizada de su solución que no sea por defecto proporcionados por servicios de SharePoint.
-Si desea utilizar y proporcionar la misma autenticación/autorización configurada en la granja al acceder a su servicio.
-Si el servicio será usado entre las granjas de SharePoint.


Crear un servicio WCF independiente
-Si desea exponer algunas funcionalidades de su solución al mundo exterior.
-Sólo puede utilizar la API de cliente / SharePoint webservice / o su referencia de código personalizado dentro de su servicio WCF.
-Desea prestar atención a la autenticación y autorización
-Si puede accederlo por otro cliente, sin siquiera conocer la existencia de SharePoint en el back-end.



Si deseas crear un servicio WCF independiente, es recomendable ejecutar en un sitio web de IIS independiente (No Sharepoint).

lunes, 2 de abril de 2012

Tips/info #12 Sharepoint 2010

1-Base de datos WSS_Logging

La base de datos WSS_Logging almacena varias cosas:

  • ULS Logs from 14 Hive\LOGS (pulled in through a timer job)
  • Raw Resource Usage Data

Los ULS logs son tomados de cada server y colocados en la base de datos a traves de un timer job Diagnostic Data Provider: Trace Log.  Los datos de Raw Resource Usage incluye las siguientes categorías:

  • Clickthrough Usage
  • Content Export Usage
  • Content Import Usage
  • Feature Use
  • Page Requests
  • Rating Usage
  • Sandboxed Requests
  • Sandboxed Requests Monitored Data
  • Search Query Usage
  • Site Inventory Usage
  • Timer Jobs
  • Workflow

Los datos sin procesar de estas categorías se utilizan para la parte analítica Web de SharePoint. Dos trabajos del temporizador (Microsoft SharePoint Foundation Usage Data Import and Microsoft SharePoint Foundation Usage Data Processing) son responsables de la importación y procesamiento de datos raw en las bases de datos de Web Analytics.

Podemos verificar mediante la vista RequestUsage si se guardo data analítica:

select MIN(LogTime),MAX(LogTime) from RequestUsage
2011-09-05 00:00:01.580                2011-09-19 20:29:43.

2-Listar todos los comandos de powershell

Get-Command -Noun SP*

3-Listar todos los comandos de powershell relacionados a solutions

Get-Command -Noun *solution*

4-SPSite y SPWeb

# Obtener todos los site collections en la farm
Get-SPSite -Limit ALL
# Obtener el site collection de la siguiente URL http://siteurl
Get-SPSite "http://siteurl"

# Obtener el site de la siguiente URL http://weburl
Get-SPWeb "http://weburl"

# Obtener todos los sites de todos los site collections
Get-SPSite | Get-SPWeb
5-Obtener ayuda de un determinado comando

Get-Help Get-SPWeb
6-Error al guardar una página en el Sharepoint Designer “Code blocks are not allowed in this file.

Este error ocurre cuando hay un web part corrupto
7-Opción de “Add to My Links” de Sharepoint 2007 en 2010

MyLinks3
8-Crear tag y notes

Cuando se clickea en los iconos de Tags and Notes se irá a la siguiente ubicación /_layouts/socialdataframe.aspx?Url=http://your_page&Title=Home&mode=0&IsDlg=1
2012-03-30-SharePointSocialFeatures-02
Otra manera es hacerlo desde el Central Administration
Central Administration -> Manage service applications -> User Profile Service Application -> Manage Social Tags and Notes.
2012-03-30-SharePointSocialFeatures-03
9-Actualizar la UI de todos los subsitios después de una migración de Sharepoint 2007 a 2010


$SPSite = Get-SPSite http://MySiteCollection
foreach ($SPWeb in $SPSite.AllWebs)
{
    $SPWeb.UIVersion = 4;
    $SPWeb.Update();
}




10-No aparece la opción de “navigation” en la sección de look and feel



navigationlookandfeel


Se debe activar la siguiente feature


publishingfeature


11-OData en Sharepoint 2010



3252.SharePoint_Foundation_2010_REST_URI_Structure_172D52D4


En SharePoint Server 2010 cada lista en SharePoint es expuesta como OData REST API (a veces referenciado como WCF Data Services)





12-Exportar la lista de usuarios de un site mediante OWSSVR



Ve a la lista de usuarios (página People and Groups), copia el ID de la lista (LISTID) y copia el ID de la vista (VIEWID)


http://[site]/_vti_bin/owssvr.dll?CS=109&Using=_layouts/query.iqy&List=[LISTID]&View=[VIEWID]&CacheControl=1


13-Mantenimiento de base de datos



Microsoft recomienda lo siguiente en pocas palabras:


  • Una vez a la semana, fuera del horario: DBCC CHECKDB para comprobar coherencia para garantizar que sus datos y los índices no están dañados.

  • Medir y reducir la fragmentación del índice, especialmente la tabla AllDocs

  • Supervisar otras bases de datos *de fragmentación y reconstrucción de índices dentro de estas bases de datos cuando la fragmentación supera el 30%.

  • Fragmentación hasta 10% y luego reorganizar (online), 10-75% – reconstrucción (online), 75%: reconstruir (offline)

  • Directrices y medidas para shrinking de archivos de datos


* Las siguientes bases de datos necesitan supervisar fragmentación y reconstrucción de índice manualmente:



Secure Store Database
State Service Database
Profile Sync Database
Usage Database
Managed Metadata Database
Business Connectivity Services Database
PerformancePoint Services Database
Search Administration Database


Para más información:http://technet.microsoft.com/en-us/library/cc262731.aspx