Bom dia, eu estou tendo problemas quando vou tentar fazer o restore de uma base de dados usando o SQL Server Express Edition 2005. Recebo a mensagem que o banco de dados está sendo usado, mesmo marcando uma opção que tem lá de Restringir o acesso na base de dados para o Restore não consigo e recebo a mensagem que a base está sendo usada. Como resolver? Como posso derrubar as conexões ativas para tentar fazer o backup ou então apenas fazer o backup independente de quem esteja usando? Ou será que tem que ser feito via script? Estou confusa e perdida. Obrigada Letícia
Boa tarde, eu consegui montar esses dois scripts pegando neste post.
RESTORE
DATABASE baseleticia FROM DISK = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Backup\BKP_baseleticia' WITH MOVE 'dadosle' TO 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia.mdf',REPLACE, MOVE 'dadosle2' TO 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia2.ndf',REPLACE, MOVE 'dadosle_log' TO 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia_log.ldf',REPLACE
E esse script tb.
RESTORE
DATABASE [baseleticia] FROM DISK = N'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Backup\BKP_baseleticia' WITH FILE = 1, MOVE N'dadosle' TO N'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia.mdf',REPLACE, MOVE N'dadosle2' TO N'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia2.ndf',REPLACE, MOVE N''dadosle_log' TO N'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.3\MSSQL\Data\baseleticia_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
Ambos os scripts foram executados com êxito mas eu nem faço idéia quem é o mais eficiente. O desejado é substituir completamente a base atual. Obrigada
Por acaso quando você esta rodando estes dois scripts, você não esta conectado o banco de dados?
Para derrubar as conexões, você poderia utilizar a comando sp_who2, identificando através do ID as conexões que esta abertas, e logo após utilizar o comando Kill para matar as conexões.
O backup de um banco de dados no SQL Server poder ser feito mesmo com conexões ativas, o que não pode ser feito é o restore.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA