Arquivo da categoria: SQL Server

Configuração de SQL Server para SharePoint Parte 2

Situação: Estou criando uma base de dados diretamente no SQL Server Management Studio, para depois vincular ao SharePoint e esta dando erro de collation.

image

 

Resolução: Como boa prática, sempre instale uma instância de SQL Server para o SharePoint no Collation Latin1_General_CI_AS_KS_WS, para não sofrer deste problema. Este é mais um fator da necessidade de ter uma instância somente para o SharePoint, mas isto irei comentar em outro Post.

Caso tenha este problema crie novamente uma base (Já que é rápido) configurando corretamente o Collation:

image

Configuração SQL Server para SharePoint Parte 1 (autogrowth)

Situação: Estou tendo problemas com autogrowth das bases do SharePoint, isto esta gerando uma alocação grande de espaço em disco e uma lentidão na hora de redimencionar, qual a melhor prática?

Resolução: Nesta primeira parte irei ensinar uma boa pratica para configurar as bases do SharePoint com relação a parte de tamanho inicial de uma base e a configuração de crescimento da base.

A primeira coisa a se fazer é configurar a sua base Model que é uma System Database:

image

Acesso o SQL Server Management Studio, e se conecte na instância do SQL Server que conterá ou contém as bases de dados do SharePoint:

image

Clique com o botão direito encima da base model e escolha a opção Propriedades:

image

Agora configure o Initial Size (MB) do Rows para 500MB e do Log para 125MB.

Outro detalhe, configure o Autogrowth do row para 250MB em vez de percentual, e o log configure para 70MB.

image

É extremamente importante você não deixar configurado “%” para o crescimento do database:

image

É exatamente isto que irá variar demais com os documentos grandes sendo feito upload para dentro do SharePoint e sua base tendo que crescer muito mais além do que necessário, deixando a base enorme para a alocação de HD que no final das contas a quantidade de conteúdo é pouca.

Isto irá diminuir a taxa de incidentes deste tipo no serviço de Health Analyser:

image

IMPORTANTE: O SharePoint quando cria um database ele só importa a configuração do Model para Initial Size, o Autogrowth você terá que configurar base por base ou criar uma automatização. Não esqueça de fazer isto nas bases de conteúdo do SharePoint.

Fontes:

  1. MVA – Tuning SQL Server 2012 for SharePoint 2013 Jump Start
  2. Training Kit (Exam 70-667): Configuring Microsoft SharePoint 2010 by Dan Holme
  3. Best practices for SQL Server in a SharePoint Server farm

SQL Server não encontra banco model

Imagina a situação, alterei o endereço do banco model (SQL Server 2008 R2), em vez de colocar para um endereço de um arquivo que existe tanto mdf quanto ldf, ou seja um path completo, foi colocado um endereço de pasta igual para ambos. Como o banco tempdb sempre irá ser recriado com base neste model também irá gerar problema (http://msdn.microsoft.com/pt-br/library/ms188274.aspx).

Segue abaixo o comando que detona o banco. Eu detonei Smiley de boca aberta

USE master

GO

alter database model MODIFY FILE (NAME = modeldev,FILENAME=’E:\SQL_Data\SQL’)

go

alter database model MODIFY FILE (NAME = modellog,FILENAME=’E:\SQL_Data\SQL’)

go

 

Erros que o SQL irá reportar quando for feito o restart da base logo após o comando acima.

2011-01-25 14:51:00.01 spid16s     Error: 17204, Severity: 16, State: 1.

2011-01-25 14:51:00.01 spid16s     FCB::Open failed: Could not open file E:\SQL_Data\SQL for file number 2.  OS error: 32(failed to retrieve text for this error. Reason: 15100).

2011-01-25 14:51:00.13 spid16s     Error: 5120, Severity: 16, State: 101.

2011-01-25 14:51:00.13 spid16s     Unable to open the physical file “E:\SQL_Data\SQL”. Operating system error 32: “32(failed to retrieve text for this error. Reason: 15105)”.

2011-01-25 14:51:00.76 spid16s     Error: 5105, Severity: 16, State: 1.

2011-01-25 14:51:00.76 spid16s     A file activation error occurred. The physical file name ‘E:\SQL_Data\SQL’ may be incorrect. Diagnose and correct additional errors, and retry the operation.

2011-01-25 14:51:00.79 spid16s     File activation failure. The physical file name “E:\SQL_Data\SQL” may be incorrect.

2011-01-25 14:51:00.79 spid16s     The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

2011-01-25 15:10:23.08 spid51      Starting up database ‘model’.

2011-01-25 15:10:23.08 spid51      Error: 17204, Severity: 16, State: 1.

2011-01-25 15:10:23.08 spid51      FCB::Open failed: Could not open file E:\SQL_Data\SQL for file number 1.  OS error: 5(failed to retrieve text for this error. Reason: 15100).

2011-01-25 15:10:23.08 spid51      Error: 17204, Severity: 16, State: 1.

2011-01-25 15:10:23.08 spid51      FCB::Open failed: Could not open file E:\SQL_Data\SQL for file number 2.  OS error: 5(failed to retrieve text for this error. Reason: 15105).

2011-01-25 15:10:23.08 spid51      Error: 5105, Severity: 16, State: 1.

2011-01-25 15:10:23.08 spid51      A file activation error occurred. The physical file name ‘E:\SQL_Data\SQL’ may be incorrect. Diagnose and correct additional errors, and retry the operation.

2011-01-25 15:10:23.10 spid51      Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.

Como fazer:

NET START MSSQL$sql /f /T3608

sqlcmd -S .\sql

alter database model MODIFY FILE (NAME = modeldev,FILENAME=’E:\SQL_Data\SQL\model.mdf’)

go

alter database model MODIFY FILE (NAME = modellog,FILENAME=’E:\SQL_Data\SQL\modellog.ldf’)

go

Print do processo sendo executado para recuperar a instância que não inicia mais.

clip_image002

Fontes:

http://msdn.microsoft.com/en-us/library/ms345408(v=sql.90).aspx

http://msdn.microsoft.com/en-us/library/ms345408.aspx

An internal error occurred on the report server (SSRS)

 

Se alguém esta tendo problema em executar os relatórios do ForeFront do Reporting Services 2005 ou áté mesmo outro relatório que utilize a função (QueryPerformanceCounter), e este problema esta dando esta descrição que segue abaixo, faça o seguinte para corrigir:

KB: http://support.microsoft.com/?id=895980

Culpado: Função QueryPerformanceCounter

Descrição do erro:

An internal error occurred on the report server. See the error log for more details.
Nothing would show up in the Event Log.

Log do SSRS:

Assertion failed! Call stack: Microsoft.ReportingServices.ReportProcessing.ReportProcessing.UpdateTimingInformation(RunningJobContext jobContext, Int64 totalDurationMs, Int64 reportDataRetrievalDurationMs, Int64 reportRenderingDurationMs) Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(IRenderingExtension renderer, CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) Microsoft.ReportingServices.Library.RenderSnapshotAction.Render()

User ‘SeuUsuario’ does not have required permissions. (Report Manager)

Digamos que você acabou de instalar o SQL Server Reporting Services usando um usuário que não é a conta que você esta logado neste momento, e você resolver acessar o Report Manager e acabou se deparando com uma linda frase, User ‘NomeDoUsuario’ does not have required permissions. Verify that sufficient permissions have been granted and Windows User Account Control (UAC) restrictions have been addressed. 

image

Simplesmente você não é “o cara” é eu sei… todos devem saber sobre aquela famosa piada sobre o cara, mas voltando ao assunto, realmente você não tem a permissão, como corrigir isto rapidamente para que você consiga acessar a “central de relatórios”, vá no gerenciamente de usuários e procure pelo grupo SQLServerReportServerUser… o (…) irá variar dependento do nome de usuário e instância, após encontrar este grupo basta adicionar o nome do usuário que você esta logado. Sucesso!!!

Grupo

Destruindo conexões do DataBase

Estes dias estava olhando um post (link) achei muito bacana, já usei uma vez isto mas de outra maneira, resolvi colocar aqui o exemplo:

SELECT @@VERSION

Versão do SQL Server utilizado: Microsoft SQL Server 2008 (RTM) – 10.0.1600.22 (Intel X86)   Jul  9 2008 14:43:34   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: )

– Informa o Banco que irá destruir os processos
set @NomeDataBase = ‘NomeDaBase’

SELECT  spid as IdProcesso,
        loginame as login,
        cmd as comando
    INTO #Processos
    FROM master.dbo.sysprocesses
        WHERE db_name(dbid) = @NomeDataBase
            AND DBID <> 0
            AND spid <> @@spid

– Gera vários comandos se tiver vários processos
– Exemplo: kill 12 kill 42 kill 32
SELECT @ComandoSQL = @ComandoSQL + ‘kill ‘ + convert(char(10), IdProcesso) + ‘ ‘
    FROM #Processos

– Executa a instrução para destruir os processos
EXECUTE(@ComandoSQL)

PRINT ‘Processos Destruidos’

– Mostra os processos que foram eliminados (Kill)
SELECT * FROM #Processos   

–Explicações

– @@spid Variável global que contém o identificador (smallint) da sessão aberta pelo usuário corrente
– db_name função que requer como parâmetro o ID de um DataBase
– master.dbo.sysprocesses é uma view que mostra os processos corrente

– Se alguém que estava conectado for tentar executar uma consulta ocorre um erro como este
– Msg 233, Level 20, State 0, Line 0
– Um erro no nível de transporte ocorreu ao enviar a solicitação ao servidor. (provider: Provedor de Memória Compartilhada, error: 0 – Não há processo no outro extremo do pipe.)

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.