Restore de banco de dados

De MSTECH wiki
Ir para: navegação, pesquisa

Versões de softwares utilizados para criação do manual

Versão Aplicação
2014 SQL Server
2012 R2 Datacenter Windows Server

Introdução

Esta página visa apresentar os procedimentos-padrão para restore de banco de dados.

Objetivo

Este manual tem como objetivo, se tornar uma espécie de consulta para os analistas de DevOps, assim como capacitar analistas que iniciarem na atividade de restore de banco de dados em quaisquer ambiente.

Execução

Segue os procedimentos abaixo, de restore de banco de dados.
  1. Realizar o restore do banco, indo pelo SQL Server Management Studio, selecionando o Database e clicando com o botão direito do mouse. Selecionar Restore Database... conforme mostra a figura abaixo.
    caption
  2. Já na janela Restore Database, em General, selecione a opção Device, em Source. Em seguida, clique sobre o botão em que irá para o Windows Explorer, conforme mostra a figura abaixo.
    caption
  3. Siga as etapas mostradas na figura abaixo (a partir da esquerda para a direita).
    caption
  4. Setar o item mostrado na figura abaixo.
    caption
  5. Vá em Options, setar a opção Overwrite the existing database (WITH REPLACE) e clicar em OK para iniciar o restore do BD. Segue a figura abaixo.
    caption
    Na janela abaixo, mostra o processo de restore em andamento.
    caption
    O restore da DB será concluído assim que surgir uma janela como na imagem abaixo.
    caption
    Obs.: caso a finalidade de restore seja em um banco de dados já existente numa VM, não há mais necessidade de dar prosseguimento para a próxima etapa. Caso contrário, é necessário seguir os procedimentos abaixo até o fim.
  6. Próxima etapa é recriar os usuários na DB, expande a DB até chegar na pasta Security -> Users. Clique com o botão direito sobre a conta a ser excluída e selecione Delete conforme mostra a figura a seguir.
    caption
    A figura a seguir exibe a janela durante o processo de remoção da conta. Selecione a conta e clique no botão OK para finalizar a exclusão da conta.
    caption
  7. Próximo passo será recriar a conta do usuário, para isso clique com o botão direito sobre a pasta Logins, selecione New Login... conforme mostra a figura abaixo:
    caption
  8. Segue abaixo a janela de criação de conta, seguir as instruções conforme mostram a sequência de 3 figuras.
    • Fig.1 - Página General
    • Fig.2 – Página Server Roles
    • Fig.3 – Página User Mapping
    Obs.: nas páginas Securables e Status não há alterações a serem efetuadas, manter como está.
  9. O passo a seguir será criar novamente a conta na Database em que foi removida antes, segue a figura abaixo como proceder.
    caption
  10. Segue abaixo a janela de re-criação de conta, seguir as instruções conforme mostram a sequência de 2 figuras.
    • Fig.1 – Página General
    • Fig.2 – Página Membership
    Obs.: nas páginas Owned Schemas, Securables e Extended Properties não há alterações a serem efetuadas, manter como está.
  11. Próximo passo será aplicar Grant no banco de dados restaurado, ou seja, conceder permissão para conta recriada, no banco de dados.
    Para isso, basta aplicar um script para aplicar Grant no BD, cujo código é mostrado abaixo:
    USE [master]
    GO
    EXEC [spGrantExectoAllRoutines]@user = USUARIO,@database = BANCO
    Onde:
    USE – comando usado para definir qual banco de dados irá utilizar, no caso do exemplo acima, será utilizado o BD master.
    GO – comando utilizado para solicitar ao SQL para seguir uma instrução na próxima linha.
    EXEC – comando utilizado para executar uma função ou procedure, no caso do exemplo acima, será executado a procedure spGrantExectoAllRoutines.
    @user – parâmetro para inserir a conta de usuário. Por exemplo: user_oncorretor.
    @database – parâmetro para inserir o banco de dados em que aplicará permissão para a conta de usuário. Por exemplo: o banco de dados EFAP_Agenda.
    Segue 2 exemplos abaixos de imagens relacionadas ao procedure spGrantExectoAllRoutines.
    • Fig.1 – Geralmente a procedure spGrantExectoAllRoutines fica armazenada em BD msdb.
    • Fig.2 – Execução da procedure spGrantExectoAllRoutines para conceder permissões para várias contas de usuário em vários bancos de dados diferentes.