Colocando um banco de dados em Read-Only – SQL Server

Olá pessoal.

Pode acontecer de seu seu superior lhe pedir para colocar um ou mais banco de dados em modo apenas leitura (Read-Only).
Hoje existe duas maneiras para fazer essa tarefa, vamos ver quais?

Primeira forma:

Comandos T-SQL, o exemplo abaixo é realizado com o banco de dados criado para esse post, veja:

BaseApenasLeituraCod1

No momento da alteração pode ocorrer uma mensagem de erro:

BaseApenasLeituraErro1

Caso isso aconteça, use o comando set single_user with rollback immediate

Ficando assim:

BaseApenasLeituraCod2.PNG

Após isso, execute novamente o comando para deixar o banco em modo de leitura.

Para retirar o único usuário que está com acesso a base de dados utilize o comando abaixo:

BaseApenasLeituraCod3

Com isso seu banco já está no modo apenas leitura (Read Only).

BaseApenasLeituraReadOnly

E aí você pergunta, mas se o superior pedir para voltar para o modo de leitura e escrita, como fazer?
Simples, repita os passos para deixar em usuário único e utilize o comando set read_write with no_wait;

Ficando assim:

BaseApenasLeituraCod4

Segunda forma:

Através de telas com alguns cliques, veja o passo a passo:

1º – Clique com o botão direito do mouse sobre o banco de dados e vá até propriedades:

BaseApenasLeituraPropertis

2º – Após abrir a tela de propriedades, clique em Opções e visualize a opção State, veja que está com o modo Read-Only igual a false:

BaseApenasLeituraOptions

3º – Altere de false para true, caso exista conexões em aberto, será exibido a mensagem abaixo:BaseApenasLeituraOpenConnections

4º – Clique em sim, para que ele encerre todas as conexões, assim será feito a alteração do modo de escrita para apenas leitura, ficando conforme imagem abaixo:

BaseApenasLeituraReadOnly

Pronto, seu banco de dados está agora em modo leitura.

Espero poder ajudar com essa dica.

Até mais.

Felippe Oliveira

8 pensou em “Colocando um banco de dados em Read-Only – SQL Server

    • Oi Sidney, estranho corromper, veja que explico de duas formas de como fazer, mas pelo seu comentário me surgiu algumas perguntas se puder compartilhar comigo as resposta poderei ver junto a Microsoft o motivo de ter corrompido, segue minhas perguntas:
      Você está usando qual versão do SQL Server?
      Qual o tamanho do banco de dados?
      Você usa linked server nesse banco de dados?
      Você tem backup dessa base de dados, dessa forma você pode restaurar ela.
      Fico no aguardo.
      Abraços

  1. Fiz das duas formas, pelos comandos também funciona, é só seguir os passos direitinho ..joia ..obg OBS: uso SQL 2008R2 , a primeira vista parece que corrompeu pq as tabelas nao aparecem, mas se vc der um select em alguma tabela os dados aparecem, e se vc fechar e abrir novamente ,irá conseguir ver seu banco como leitura e todas as tabelas, vlwww

Deixe uma resposta