Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como você faz backup e restaura um banco de dados como uma cópia no mesmo servidor?


RESTORE FILELISTONLY é um comando informativo e não é necessário para executar uma restauração. Um usuário pode usar isso para descobrir quais são os nomes lógicos para os arquivos de dados, que podem ser usados ​​com o MOVE comandos para restaurar o banco de dados para um novo local.

Conforme sugerido pela mensagem de erro, você precisa usar RESTORE FILELISTONLY para ver quais são os nomes lógicos do banco de dados. Seu comando de restauração tem esses erros.

Aqui está um exemplo de trabalho do que você precisa fazer:
--backup the database
backup database test1 to disk='c:\test1_full.bak'

-- use the filelistonly command to work out  what the logical names 
-- are to use in the MOVE commands.  the logical name needs to
-- stay the same, the physical name can change
restore filelistonly from disk='c:\test1_full.bak'
 --------------------------------------------------
|  LogicalName  |           PhysicalName           |
 --------------------------------------------------
| test1         | C:\mssql\data\test1.mdf          |
| test1_log     | C:\mssql\data\test1_log.ldf      |
 -------------------------------------------------

restore database test2 from disk='c:\test1_full.bak'
with move 'test1' to 'C:\mssql\data\test2.mdf',
move 'test1_log' to 'C:\mssql\data\test2.ldf'