none
Backup sql rede RRS feed

  • Pergunta

  • Olá pessoal

    Estou tentado fazer um backup atraves da rede no servidor onde esta o SQL para um servidor de arquivos.

    Porem ocorre um erro, como se nao tivesse permissão, mas afim de testes deixei TODOS nas permissoes de compartilhamento e segurança, e mesmo assim nao vai

    DECLARE @name VARCHAR(150) --

    DECLARE @path VARCHAR(256) --

    DECLARE @fileName VARCHAR(256) --

     

    -- Define caminho de destino do backup

    SET @path = '\\SRVFILE01\BACKUP\Sexta'

     

    -- Cria um cursor para selecionar todas as databases, 

    --  excluindo model, msdb e tempdb

    DECLARE db_cursor CURSOR FOR 

       SELECT name

         FROM master.dbo.sysdatabases

        WHERE name NOT IN ('tempdb','master','model','msdb','ReportServer','ReportServerTempDB','ASPNETDB') 

     

    -- Abre o cursor e faz a primeira leitura

    OPEN db_cursor  

    FETCH NEXT FROM db_cursor INTO @name  

     

    -- Loop de leitura das databases selecionadas

    WHILE @@FETCH_STATUS = 0  

    BEGIN  

       SET @fileName = @path + @name + '.BAK' 

       -- Executa o backup para o database

       BACKUP DATABASE @name TO DISK = @fileName WITH COMPRESSION;

     

       FETCH NEXT FROM db_cursor INTO @name 

    END 

     

    -- Libera recursos alocados pelo cursor

    CLOSE db_cursor  

    DEALLOCATE db_cursor

    Msg 3201, Level 16, State 1, Line 24

    Cannot open backup device '\\srvfile01\Backup\SextaGegistro.BAK'. Operating system error 5(Acesso negado.).

    Msg 3013, Level 16, State 1, Line 24

    BACKUP DATABASE is terminating abnormally.

    Eu consigo criar arquivos nesta pasta a partir do servidor do SQL, e também arquivos, mas pelo script de backup nao da certo

    Alguém sabe o que pode ser?

    quinta-feira, 6 de setembro de 2018 17:58

Respostas

  • Bom dia.

    Meu caro, tudo bem, esse caso pode ser resolvido de duas formas pois você pode ter no mínimo um dos cenários:

    1 - Você pode está com os servidores configurados em um domínio, nesse caso seria interessante que a instalação contemplasse um usuário do domínio específico para administrar o Mecanismo de banco de Dados. Bom mas pode ser que na Instalação do SQL Server isso não foi feito, então faça o seguinte:

               1 Cenário com Domínio:

               1.1 - Crie um usuário no seu domínio com um no nome sugestivo sql_dominio, algo assim. Esse usuário deve ter privilégios de admin.

               1.2 - Dê acesso total para esse usuário na pasta que você usou aqui  (SET @path = '\\SRVFILE01\BACKUP\Sexta')

               1.3 - Acesse as configurações de Logon na sua instância do SQL e use esse usuário criado como responsável por iniciar o serviço do SQL, veja esse exemplo:

            Configuração de Logon do serviço da instância 

              2 - Cenário sem Domínio:

              2.1 - Muito parecido com o anterior. Crie um usuário local nas duas máquinas com mesmo nome e mesma senha.

              2.2 - Na máquina onde está o SQL Server você repete a confiuração da imagem a cima dando a esse a responsabilidade de iniciar o serviço.

              2.3 - Acesse a maquina remota se conectando à mesma usando esse usuário.

              2.4 - Na máquina remota você da acesso e controle total na pasta '\\SRVFILE01\BACKUP\Sexta' para esse usuário.

             E por último, nessa linha você deve mudar acrescentando o '\' conforme mostrado:         

    SET @fileName = @path + @name + '.BAK'       

    SET @fileName = @path + '\' +@name + '.BAK'

    Peguei seu código e fiz um teste, veja o reultado:

    Resultado

    Seguindo esse procedimento não tem como dar errado.



    • Editado Arimateia Bezerra segunda-feira, 10 de setembro de 2018 14:45
    • Marcado como Resposta Tiago_Aurelio segunda-feira, 10 de setembro de 2018 16:03
    segunda-feira, 10 de setembro de 2018 14:04

Todas as Respostas

  • Deleted
    quinta-feira, 6 de setembro de 2018 18:12
  • Bom dia.

    Meu caro, tudo bem, esse caso pode ser resolvido de duas formas pois você pode ter no mínimo um dos cenários:

    1 - Você pode está com os servidores configurados em um domínio, nesse caso seria interessante que a instalação contemplasse um usuário do domínio específico para administrar o Mecanismo de banco de Dados. Bom mas pode ser que na Instalação do SQL Server isso não foi feito, então faça o seguinte:

               1 Cenário com Domínio:

               1.1 - Crie um usuário no seu domínio com um no nome sugestivo sql_dominio, algo assim. Esse usuário deve ter privilégios de admin.

               1.2 - Dê acesso total para esse usuário na pasta que você usou aqui  (SET @path = '\\SRVFILE01\BACKUP\Sexta')

               1.3 - Acesse as configurações de Logon na sua instância do SQL e use esse usuário criado como responsável por iniciar o serviço do SQL, veja esse exemplo:

            Configuração de Logon do serviço da instância 

              2 - Cenário sem Domínio:

              2.1 - Muito parecido com o anterior. Crie um usuário local nas duas máquinas com mesmo nome e mesma senha.

              2.2 - Na máquina onde está o SQL Server você repete a confiuração da imagem a cima dando a esse a responsabilidade de iniciar o serviço.

              2.3 - Acesse a maquina remota se conectando à mesma usando esse usuário.

              2.4 - Na máquina remota você da acesso e controle total na pasta '\\SRVFILE01\BACKUP\Sexta' para esse usuário.

             E por último, nessa linha você deve mudar acrescentando o '\' conforme mostrado:         

    SET @fileName = @path + @name + '.BAK'       

    SET @fileName = @path + '\' +@name + '.BAK'

    Peguei seu código e fiz um teste, veja o reultado:

    Resultado

    Seguindo esse procedimento não tem como dar errado.



    • Editado Arimateia Bezerra segunda-feira, 10 de setembro de 2018 14:45
    • Marcado como Resposta Tiago_Aurelio segunda-feira, 10 de setembro de 2018 16:03
    segunda-feira, 10 de setembro de 2018 14:04