Reparar bases de dados SQL Server

3 Comentários

Há uns dias ligou-me uma colega de trabalho de uma empresa onde estive há uns anos, perguntando se a podia ajudar num problema relacionado com o MS SQL Server e o software Primavera.

Pelo que consegui perceber dos erros que o Primavera reportava, a base de dados pareceu-me estar com sérios problemas e recomendei um rebuild.

O problema é que não tinha como o fazer pois apesar de ter o MS SQL Server 2000 instalado, não tinha qualquer ferramenta de manutenção.

Aconselhei a instalar o Microsoft SQL Server Management Studio Express pois é gratuito e indiquei os comandos a executar.

As bases de dados, por mais robustas que sejam, precisam sempre de cuidados e manutenção, caso contrário podem começar a acontecer coisas estranhas e podemos vir a perder informação importante.
O que precisamos fazer para reparar uma base de dados MS SQL Server?

  1. Precisamos de uma ferramenta que nos permita executar querys na base de dados. Caso esta não esteja instalada, podemos instalar o Microsoft SQL Server Management Studio Express por exemplo. É gratuito e compatível com bases de dados SQL Server 2000, 2005 e 2008.
    Após a instalação, executamos a aplicação e irá aparecer a seguinte janela:
    sql-server-2008
    Colocamos aqui o nome do servidor, tipo de autenticação, user name e password (no caso de seleccionarmos “SQL Server Autentication”).

    Ligados ao servidor, clicamos em “New Query”:
    new-query
    O que irá abrir uma janela em branco para executarmos as nossas querys.

  2. Para podermos fazer um rebuild da base de dados, é preciso que em primeiro lugar ela esteja em modo single user pelo que para tal é necessário que ninguém esteja a aceder à mesma e após nos certificarmos disso, correr o seguinte comando:
    ALTER DATABASE nome-da-base-de-dados SET single_user
  3. Se este comando for executado com sucesso, podemos então passar à recuperação e para isso usamos o DBCC da seguinte forma:
    dbcc checkdb ('nome-da-base-de-dados', repair_rebuild)

    Geralmente é o suficiente mas por vezes a base de dados está tão danificada que não é possível reparar sem que para isso tenhamos de perder alguma informação. Se estivermos dispostos a tal, então o comando deverá ser o seguinte:

    dbcc checkdb ('nome-da-base-de-dados', repair_allow_data_loss)
  4. Finamente devemos voltar a colocar a base de dados em modo multi user executando o seguinte:
    ALTER DATABASE nome-da-base-de-dados SET multi_user

Resumindo:

ALTER DATABASE nome-da-base-de-dados SET single_user
dbcc checkdb ('nome-da-base-de-dados', repair_rebuild)
ALTER DATABASE nome-da-base-de-dados SET multi_user

Se tudo correr bem, a nossa base de dados estará de novo operacional.

Boa sorte!

3 Comentários (Comentar?)

  1. HelderVales
    Jun 26, 2009 @ 11:02:35

    vou testar agora o seu codigo…:)
    depois digo-lhe se resulta..:P

  2. Ana Morais
    Jan 25, 2010 @ 22:57:37

    Boas, sou nova nestas questões de Base de Dados, e tenho um projecto em mãos de uma base de dados para uma loja/empresa de fotografias. Tenho de elaborar apenas o modelo ER e o modelo MR, e estou a ter algumas dificuldades em certas partes. Vou deixar aqui o meu problema, esperando que me possam ajudar.

    problema:
    - a empresa possui fotógrafos colaboradores, dos quais se conhece o nome, morada e contacto telf. Esses fotógrafos efectuam cobertura de eventos.
    -de cada evento, tem de ficar registado todos fotógrafos que estiveram presentes, bem como a data e a localidade do evento. Em cada evento, o fotógrafo regista fotografias que podem ser classificadas em diferentes categorias e que podem ser posteriormente adquiridas pelos clientes da agência.
    - a agência regista os clientes, associando um login e password permitindo que as pessoas registadas acedam apenas aos eventos associados a eles.
    -os clientes podem adquirir fotos, adicionando as fotos pretendidas dos eventos autorizados num sistema de carrinho de compras.
    -para uma melhor gestão da empresa todas as compras deverão possuir os seguintes estados (“recebida”,”processada”,”finalizada”).

    as minhas principais dúvidas são a questão do login e password, e o ultimo ponto, sobre os estado das compras.

    Aguardo ansiosamente que me possam ajudar com a maior brevidade possível neste meu problema, pois tenho menos de uma semana para finalizar e entregar este trabalho.

    Agradecida,
    Ana Morais

  3. Jailton Sampaio
    Mar 10, 2010 @ 19:09:33

    olha perfeito esta de parabens…

Leave a Reply