Restore sql server backup

supondo que alguem nos envia um backup de uma base de dados sql e queremos fazer restore para o nosso servidor, à partida fariamos algo como:

RESTORE DATABASE nomeBaseDados
FROM DISK = “path\\ficheiro.bak”

no entanto isto pressupõe que a base de dados que vamos restaurar vai ficar (pode ficar) no mesmo sitio onde estava no momento em que foi feito o backup, isto é, se estava em d:\\basedados\\ficheiro.mdf, então esse directorio tem que existir e a base de dados irá ficar com o mesmo nome.
isto normalmente não é problemático em cenários em que estamos a tratar de backups que fomos nós que fizemos, mas quando isso nõo acontece a probabilidade de existir a path começa a reduzir.
para ultrapassar esse problema podemos fazer o seguinte

RESTORE DATABASE nomeBaseDados
FROM DISK = “path\\ficheiro.bak”
WITH MOVE “ficheiro_Data” TO “novaPath\\novoNome.mdf”,
MOVE “ficheiro_Log” TO “novaPath\\novoNome.ldf”,
REPLACE

em que o primeiro parametro do MOVE é o nome lógico que o sqlserver dá aos ficheiros.
para conhecermos essa estrutura temos que primeiro fazer

RESTORE FILELISTONLY
FROM DISK = “path\\ficheiro.bak”

finalmente, no caso de o backup já incluir várias versões da base de dados deveremos incluir ainda o parametro File, ou seja

RESTORE DATABASE nomeBaseDados
FROM DISK = “path\\ficheiro.bak”
WITH MOVE “ficheiro_Data” TO “novaPath\\novoNome.mdf”,
MOVE “ficheiro_Log” TO “novaPath\\novoNome.ldf”,
REPLACE, FILE = 1 (este numero é o numero da versão)

por Vitor Silva



Leave a Reply