Arquivos da Categoria: SQL Server
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
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.
Fontes:
http://msdn.microsoft.com/en-us/library/ms345408(v=sql.90).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.
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!!!
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.)