locked
Backup em rede Ajuda RRS feed

  • Pergunta

  • Bom dia galera,

     

    estou com um problema, não consigo fazer backup em uma maquina na rede...tenho permisão total na maquina "pasta", para salvar, modificar, excluir qualquer tipo de arquivo.

     

    Primeiro fiz uma stored procedure basica para fazer backup, local ta beleza mas se passo o caminho da rede num da!

     

    BACKUP DATABASE Sindicato
    TO DISK = '\\maquina\base\Sindicato.bak'
        WITH INIT

     

    Da o seguinte erro:

    Server: Msg 3201, Level 16, State 1, Line 1
    Cannot open backup device '\\maquina\base\Sindicato.bak'. Device error or device off-line. See the SQL Server error log for more details.
    Server: Msg 3013, Level 16, State 1, Line 1
    BACKUP DATABASE is terminating abnormally.

     

    Olhei no log do SQL Server :

    BackupDiskFile::CreateMedia: Backup device '\\maquina\base\Sindicato.bak' failed to create. Operating system error = 5(Acesso negado.).

     

    O que pode ser?? Será que é permissao para fazer o backup

     

    Ajudem ae galera

    Obrigado Wellington Arantes de Oliveria Junior

     

    • Movido Gustavo Maia Aguiar quinta-feira, 28 de abril de 2011 17:03 (De:Programação avançada com o SQL Server)
    quinta-feira, 7 de agosto de 2008 13:08

Respostas

  • Olá Wellington,

     

    Se você deseja gravar um backup no local '\\maquina\base\Sindicato.bak' você precisa garantir o seguinte:

     

    - Há um compartilhamento chamado "base" na estação chamada "Maquina"

    - A conta de serviço do SQL Server é uma conta de domínio

    - A conta de serviço do SQL Server tem permissões de escrita nesse compartilhamento

    - Se estiver usando a segurança NTFS (o mais provável), a conta de SQL Server tem as permissões NTFS de escrita nessa pasta

     

    Para verificar qual é a conta de serviço do SQL Server, abra o Enteprise Manager e veja as propriedades do servidor na aba Security. Se estiver usando o SQL Server 2005 faça essa verificação pelo SQL Server Configuration Manager.

     

    A utilização ou não de Devices não irá influenciar nessa questão. Usar o seu comando, ou utilizar um Device só irá funcionar se você garantir as questões acima.

     

    [ ]s,

     

    Gustavo

    quinta-feira, 7 de agosto de 2008 14:20
  • Wellington,

     

    Tente utilizar o xp_cmdshell e mapear a unidade de rede de dentro do SQL.

    Segue exemplo:

    xp_cmdshell 'net use p:\ \\SharedFolder\Folder\FOlder\ /DOMAIN\User /Password' 


    Oracle OCA11g, MCC 2011!
    segunda-feira, 2 de maio de 2011 12:51
    Moderador

Todas as Respostas

  • Welligton,

     

    Faça o mapeamento da unidade de rede na máquina que será realizado o backup.

     

    Outra possibilidade seria criar um DumpDevice apontando para este mapeamento de rede.

     

    Qual usuário você esta utilizando para fazer backup?

     

    No mínimo o usuário deverá ser membro da role sysadmin ou db_backupoperator.

    quinta-feira, 7 de agosto de 2008 13:21
    Moderador
  •  

    O junior, cara sou noob em SQL Server 2000 to apanhando demais....mas peguei um stored procedure aqui mesmo no forum e executei e trouxe null no login eu acho...

     

    create proc dbo.usp_get_NTUserName(@NTUSerName as varchar(100) OUTPUT) as

    declare @cmd varchar(200)

    set @cmd = 'nbtstat -a ' + host_name() + ' | find "<03>" | find /V "' + host_name() + '"'

    create table #tmpOutput (cmd_output varchar(200))

    insert #tmpOutput

    exec master..xp_cmdshell @cmd

    select @NTUSerName = rtrim(ltrim(substring(cmd_output, 1, patindex('%_<03%', cmd_output)))) from #tmpOutput where cmd_output is not null

    drop table #tmpOutput

    go

    -- you must provide an output parameter

    declare @NT_USerName varchar(200)

    exec dbo.usp_get_NTUserName @NT_USerName out

    select @NT_USerName as Current_NTAccount

     

    Fiz o mapeamento, criei um DumpDevice Apontando para o mapeamento mas da a mesma coisa...

     

    Acho que pode ser esse login...

     

    O que eu posso fazer ??? , por eu configurei o SQLServer ja entrar sem pedir o login ja entra direto Windows Authentication

     

    Obrigado

    quinta-feira, 7 de agosto de 2008 13:43
  • Wellington,

     

    Você esta utilizando windows authentication!!!

     

    Então esta usuário do windows tem que ter permissão no SQL Server para poder executar o backup e gravar os dados no arquivo!!!

    quinta-feira, 7 de agosto de 2008 13:50
    Moderador
  • O Junior, quando intalei o SQL tinha opção se não me engano windows authentication e mixed mode lembro que coloquei as duas opçoes... e o sa ficou com password blank...

     

    Como que faço para dar permissão para o usuario do windows para executar o backup??

     

     

     

    Wellington Arantes de Oliveira Junior

     

    quinta-feira, 7 de agosto de 2008 13:55
  • Olá Wellington,

     

    Se você deseja gravar um backup no local '\\maquina\base\Sindicato.bak' você precisa garantir o seguinte:

     

    - Há um compartilhamento chamado "base" na estação chamada "Maquina"

    - A conta de serviço do SQL Server é uma conta de domínio

    - A conta de serviço do SQL Server tem permissões de escrita nesse compartilhamento

    - Se estiver usando a segurança NTFS (o mais provável), a conta de SQL Server tem as permissões NTFS de escrita nessa pasta

     

    Para verificar qual é a conta de serviço do SQL Server, abra o Enteprise Manager e veja as propriedades do servidor na aba Security. Se estiver usando o SQL Server 2005 faça essa verificação pelo SQL Server Configuration Manager.

     

    A utilização ou não de Devices não irá influenciar nessa questão. Usar o seu comando, ou utilizar um Device só irá funcionar se você garantir as questões acima.

     

    [ ]s,

     

    Gustavo

    quinta-feira, 7 de agosto de 2008 14:20
  • Wellington dá uma olhada nesse link crie um task no sql para rodar todo dia , conforme sua necessidade.

    http://www.codeproject.com/KB/database/BackupDBtoFTP.aspx

    quinta-feira, 28 de abril de 2011 15:56
  • Wellington,

     

    Tente utilizar o xp_cmdshell e mapear a unidade de rede de dentro do SQL.

    Segue exemplo:

    xp_cmdshell 'net use p:\ \\SharedFolder\Folder\FOlder\ /DOMAIN\User /Password' 


    Oracle OCA11g, MCC 2011!
    segunda-feira, 2 de maio de 2011 12:51
    Moderador