none
Banco de Dados para várias conexões. RRS feed

  • Pergunta

  • Desenvolvi um serviço para windows para que ele grave no banco de dados o histórico de tudo o que foi impresso nos computadores em uma rede com Active Directory.
    Porém quando mando iniciar o serviço ele funciona normalmente, porém bloqueia o banco de dados para consultas, alguém já viu algo parecido?

    O erro que mostrado é o seguinte:

    Mensagem 945, Nível 14, Estado 2, Linha 1
    Database 'PFC_ECOPRINT' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details.

    Mensagem 208, Nível 16, Estado 1, Linha 2
    Invalid object name 'documento'.

    terça-feira, 16 de abril de 2013 17:31

Respostas

  • Daniel,

    A versão do seu windows não tem influencia, agora, voce esta com um problema em sua base e terá de fazer um troobleshooting.

    Os discos nos quais estão os arquivos da base estão ok e acessiveis?

    Voce possui permissionamento total nos discos? E o usuario que subiu o serviço o SQL? De preferencia coloque um usuario adminitrador local para subir os serviços do SQL Server.

    Depois tente executar o comando:

    ALTER DATABASE PFC_ECOPRINT SET SINGLE_USER
    GO
    DBCC CHECKDB('PFC_ECOPRINT', REPAIR_REBUILD)
    GO
    ALTER DATABASE PFC_ECOPRINT SET MULTI_USER



    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta Daniel_Sharp terça-feira, 16 de abril de 2013 18:50
    terça-feira, 16 de abril de 2013 18:19
    Moderador
  • Cara resolvi o problema fazendo estes procedimentos que você me passou e modificando a string de conexão,

    removi o parâmetro UserInstance.

    • Marcado como Resposta Daniel_Sharp quarta-feira, 17 de abril de 2013 06:54
    quarta-feira, 17 de abril de 2013 06:47

Todas as Respostas

  • Daniel,

    Creio que voce esteja com alguns problemas tanto tecnicos quanto conceituais.

    Vamos la...

    Sim, o SQL Server irá bloquear a tabela quando um usuario estiver fazendo update sem lock de linha, ou seja, o objeto estará em Exclusive Lock para a sessão que esta fazendo o update enquanto as demais ficaram em lock esperando a liberação do recurso e um downgrade do lock para Shared Lock, mas isso não é de forma alguma um erro uma vez que todo este controle é para garantir a integridade da base de dados e não haver corrupção.

    Esse seu problema esta acontecendo que o SQL Server esta derrubando a base, seja qual for o motivo, acessando pelo Management studio a base esta online? Offline? Suspect?

    Devido ao erro da base voce esta sendo direcionado para a base master aonde não existe a tabela documento o que faz gerar o segundo erro.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 16 de abril de 2013 17:34
    Moderador
  • Obrigado, 

    Acontece isso mesmo que você descreveu, ele derruba a base e a deixa inacessível pelo management studio.
    Só consigo fazer as consultas se eu parar o serviço e reiniciar o serviço da instância do sql server.
    • Editado Daniel_Sharp terça-feira, 16 de abril de 2013 17:52
    terça-feira, 16 de abril de 2013 17:48
  • Daniel,

    Não é que elas estão bloqueadas, é que toda sua base esta fora do ar por algum problema!, acesse sua instancia pelo SQL Server Management Studio e execute o comando:

    USE PFC_ECOPRINT

    Voce deverá ter um erro, é necessario investigar o por que dela estar fora do ar. Mas primeira identificar o estado da base, veja pela arvore do SQL Server management Studio o que esta escrito ao lado dela ou se não possui nada.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 16 de abril de 2013 17:53
    Moderador
  • Obrigado pela ajuda, 
    Veja como fica a base de dados no Management Studio quando o serviço entra em execução.

    • Editado Daniel_Sharp terça-feira, 16 de abril de 2013 18:21
    terça-feira, 16 de abril de 2013 18:15
  • Daniel,

    A versão do seu windows não tem influencia, agora, voce esta com um problema em sua base e terá de fazer um troobleshooting.

    Os discos nos quais estão os arquivos da base estão ok e acessiveis?

    Voce possui permissionamento total nos discos? E o usuario que subiu o serviço o SQL? De preferencia coloque um usuario adminitrador local para subir os serviços do SQL Server.

    Depois tente executar o comando:

    ALTER DATABASE PFC_ECOPRINT SET SINGLE_USER
    GO
    DBCC CHECKDB('PFC_ECOPRINT', REPAIR_REBUILD)
    GO
    ALTER DATABASE PFC_ECOPRINT SET MULTI_USER



    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta Daniel_Sharp terça-feira, 16 de abril de 2013 18:50
    terça-feira, 16 de abril de 2013 18:19
    Moderador
  • Cara resolvi o problema fazendo estes procedimentos que você me passou e modificando a string de conexão,

    removi o parâmetro UserInstance.

    • Marcado como Resposta Daniel_Sharp quarta-feira, 17 de abril de 2013 06:54
    quarta-feira, 17 de abril de 2013 06:47