none
Setar Database Master como Single-user RRS feed

  • Pergunta

  • Pessoal,

    Estou criando um ambiente de teste para o SQL 2005 SP4. Para isso preciso que meu banco esteja igual ao da produção:

    - Instalei um novo servidor com a mesma versão do SQL do servidor de produção

    - Fiz o backup dos arquivos master.bak e msbb.bak além do backup da base de produção.

    Porém não estou conseguindo restaurar a base Master, seguindo as orientações, preciso primeiro passar ela para Single-User, porém quando vou configurar aparece o erro:

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    Alter failed for Database 'master'.  (Microsoft.SqlServer.Smo)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.5000.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Alter+Database&LinkId=20476

    ------------------------------
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    Option 'SINGLE_USER' cannot be set in database 'master'. (Microsoft SQL Server, Error: 5058)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.5057&EvtSrc=MSSQLServer&EvtID=5058&LinkId=20476

    ------------------------------
    BUTTONS:

    OK
    ------------------------------


    Karine Porton Analista de Infraestrutura Unimed Tubarão

    quinta-feira, 16 de outubro de 2014 19:29

Respostas

  • Karine, você deve startar a instancia em single-user adicionando o parametro -m. Veja os links abaixo.

    http://technet.microsoft.com/en-us/library/ms175535(v=sql.90).aspx

    http://technet.microsoft.com/en-us/library/ms190679(v=sql.90).aspx

    quinta-feira, 16 de outubro de 2014 20:01

Todas as Respostas

  • Karine, você deve startar a instancia em single-user adicionando o parametro -m. Veja os links abaixo.

    http://technet.microsoft.com/en-us/library/ms175535(v=sql.90).aspx

    http://technet.microsoft.com/en-us/library/ms190679(v=sql.90).aspx

    quinta-feira, 16 de outubro de 2014 20:01
  • Karine,

    Na verdade como o banco de dados Master é um banco de Sistema, o SQL Server não permite que você altere o modelo de uso do banco de dados, neste caso, você vai ter que fazer acesso ao SQL Server utilizando o chamado Single-User Mode Connection, onde você estará especificando que somente uma única conexão com o seu Servidor SQL Server será permitida.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    sexta-feira, 17 de outubro de 2014 18:02
    Moderador
  • Karine,

    Realizar o RESTORE do banco de dados master não é da mesma forma que outros bancos de dados de usuários.

    Como o Andrei indicou, o BOL mostra que utilizar o sqlcmd à partir do Prompt, utilizando o parâmetro "-m" é o caminho mais comum.

    Lembre-se que todo este processo deve ser realizado em um horário alternativo, preferencialmente indicando aos seus usuários que haverá uma parada para manutenção do SQL Server. Isto porque, só um usuário poderá acessar a sua instância SQL durante este RESTORE, você.

    Caso tenha dúvidas em como proceder, sugiro que você faça um teste deste RESTORE antes em um ambiente isolado, semelhante à sua Produção.

    Você também poderá alterar a inicialização da sua instância SQL para acessar através do SSMS. Neste caso, você deverá acessar o "SQL Server Configuration Manager", selecione o serviço de sua instância SQL e clique com o botão direito - > "Properties". Logo, uma janela irá abrir e você deve selecionar a aba "Startup Parameters" e adicionar o parâmetro "-m", como indicado na imagem abaixo:

    Após estas modificações será necessário reiniciar o serviço desta instância SQL.

    Só então, você poderá realizar o RESTORE, como você conhece. Segue um script T-SQL como exemplo para você adaptar à sua necessidade:

    RESTORE DATABASE master FROM DISK = 'C:\Backup\master.bak' WITH REPLACE;
    GO

    Para maiores informações veja:

    http://msdn.microsoft.com/pt-br/library/ms190679.aspx

    http://technet.microsoft.com/pt-br/library/ms188236(v=sql.110).aspx

    http://msdn.microsoft.com/pt-br/library/ms174212.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    segunda-feira, 20 de outubro de 2014 13:05