Pergunta

Como você restaura um backup de banco de dados usando o SQL Server 2005 pela rede?Lembro-me de ter feito isso antes, mas havia algo estranho na maneira como você fez isso.

Foi útil?

Solução

O banco de dados geralmente é executado como um serviço em uma conta sem acesso à rede.Se for esse o caso, você não conseguirá restaurar diretamente pela rede.O backup precisa ser copiado para a máquina local ou o serviço de banco de dados precisa ser executado como um usuário com acesso à rede adequado.

Outras dicas

Você tem poucas opções para usar um arquivo de rede como fonte de backup

  1. Mapeie a unidade/caminho da rede, arquivo de hospedagem, no MESMO usuário do MS-SQL Server.
  2. Use o procedimento armazenado estendido xp_cmdshell para mapear a unidade de rede de dentro do MS SQL (desta forma, o shell de comando terá os mesmos privilégios que a conta do usuário executando o SSMS)
-- allow changes to advanced options 
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'

Depois dirija Z:ficará visível no Server Management Studio ou apenas

RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO

Você não pode fazer isso por meio da GUI do SSMS, mas pode fazer isso usando um script.RESTORE DATABASE from DISK='\unc\path\filename' Se você precisar que esse processo seja automatizado, a melhor maneira é configurar um trabalho do SQL Server e executá-lo como um usuário com acesso ao local do arquivo.

Certifique-se de que o usuário que está executando seu SQL services em "Services.msc" é um diretório ativo "Domain User" isso resolverá o problema.

Você pode usar o SP xp_cmdshell para mapear a unidade de rede para o sql server, depois disso ele aparecerá na janela de navegação de arquivos.

EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'

mais informações aqui: Restauração de banco de dados da unidade de rede

Funcionou para mim!

Já tive que fazer isso algumas vezes e só há duas opções que conheço.Copie o arquivo localmente para o SQL Server ou, no SQL Server, crie uma unidade de rede mapeada para o compartilhamento que contém o arquivo de backup.

Além disso, você precisa garantir que o serviço SQL Server esteja sendo executado como um usuário que tenha acesso à rede - e permissões para o compartilhamento onde reside o arquivo de backup.'Sistema Local' não terá permissões para acessar a rede.

Como observação lateral, se você estiver executando o SQL em uma máquina virtual, geralmente é menos complicado configurar temporariamente uma nova unidade na VM com espaço suficiente para copiar seus arquivos de backup, fazer a restauração dessa nova cópia local, e exclua a unidade temporária.

Isso pode ser útil se parar/iniciar o serviço SQL para alterar sua conta for um problema.

Crie uma unidade compartilhada na máquina que contém os backups, digamos que o servidor1 tenha os backups na pasta "Backups".Conceda controle total à conta que executa o SQL Server.No servidor que você deseja restaurar para iniciar o SSMS, vá restaurar o banco de dados e selecione "Do dispositivo".Na caixa de diálogo "Localizar arquivo de backup-"Servidor"" e remova qualquer coisa no campo "Caminho selecionado" e no campo "Nome do arquivo" forneça o caminho completo para "\server\backups\db.bak".Pelo menos funcionou para mim na migração de 05 para 08.Não é o método preferido porque qualquer problema de rede pode causar um problema na restauração.

EXEC sp_configure 'show advanced options', 1
GO

-- Atualize os valores atualmente configurados para opções avançadas.

RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO

-- Atualize os valores atualmente configurados para opções avançadas.

RECONFIGURE
GO

--Isso deve ser executado no prompt de comando (cmd)

NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no

depois no SQL Server

EXEC xp_cmdshell 'NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no'

--Depois dirija Z:ficará visível no Server Management Studio ou apenas

RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top