Como fazer backup de bancos de dados SQL em um compartilhamento de rede

Índice:

Como fazer backup de bancos de dados SQL em um compartilhamento de rede
Como fazer backup de bancos de dados SQL em um compartilhamento de rede

Vídeo: Como fazer backup de bancos de dados SQL em um compartilhamento de rede

Vídeo: Como fazer backup de bancos de dados SQL em um compartilhamento de rede
Vídeo: Como Transferir Músicas do Computador para o iPhone 100% Grátis (Mac e Windows) - YouTube 2024, Maio
Anonim

Fazer backup de bancos de dados SQL regularmente é obrigatório. Já abordamos maneiras de fazer backup facilmente de todos os seus bancos de dados do SQL Server em um disco rígido local, mas isso não protege contra falhas de unidade e / ou sistema. Como uma camada extra de proteção contra esse tipo de desastre, você pode copiar ou criar diretamente seus backups em um compartilhamento de rede.

Backup localmente e depois copiar para o compartilhamento de rede

A maneira preferida e mais direta de realizar essa tarefa é simplesmente criar um backup local de um banco de dados e, em seguida, copiar o respectivo arquivo de backup para um compartilhamento de rede. Você pode fazer isso criando um script em lote que se parece com isso:

SET LocalFolder=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup SqlCmd -E -Q “Backup Database MyDB To Disk=’%LocalFolder%MyDB.bak'” XCopy “%LocalFolder%MyDB.bak” “192.168.16.55BackupDatabases” /Z /V DEL “%LocalFolder%MyDB.bak”

Este script faz o seguinte (linha por linha):

  1. Define uma variável no diretório de backup do SQL local.
  2. Cria um backup do SQL do MyDB (usando a Autenticação do Windows) no diretório de backup do SQL local.

  3. Copia o arquivo de backup local para um compartilhamento de rede.
  4. Exclui o arquivo de backup local.

Novamente, esse é o método preferido porque funciona imediatamente e a probabilidade de uma falha de backup é mínima, já que o backup é criado em um disco local. No entanto, se você não tiver espaço em disco suficiente para armazenar cópias locais de arquivos de backup, essa ação falhará. Nesse caso, você precisará adicionar espaço em disco ou backup diretamente a um compartilhamento de rede.

Backup diretamente para um compartilhamento de rede

Normalmente, quando você tenta criar um backup diretamente para um compartilhamento de rede usando um comando como:

SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”

Você provavelmente obterá um erro ao longo das linhas de:

Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 5(Access is denied.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.

Esse erro ocorre apesar do fato de você ter executado o comando de backup do SQL usando a Autenticação do Windows (a opção -E) e a conta do Windows como a capacidade de acessar e copiar arquivos para o compartilhamento por meio do Windows Explorer.

Image
Image

O motivo pelo qual essa ação falha é porque o comando SQL é executado dentro dos limites da conta na qual o serviço do SQL Server está sendo executado. Quando você visualiza a lista Serviços no seu computador, provavelmente verá o serviço do SQL Server executando como (a coluna Fazer logon como) o Sistema local ou o Serviço de rede, que são contas do sistema que não têm acesso à rede.

Em nosso sistema, o backup para um comando de compartilhamento de rede falha porque temos o serviço SQL Server em execução como Sistema Local, que, novamente, não pode acessar nenhum recurso da rede.

Para permitir que o SQL faça o backup diretamente em um compartilhamento de rede, temos que executar o serviço do SQL Server como uma conta local que tenha acesso aos recursos da rede.
Para permitir que o SQL faça o backup diretamente em um compartilhamento de rede, temos que executar o serviço do SQL Server como uma conta local que tenha acesso aos recursos da rede.

Edite as propriedades do serviço do SQL Server e, na guia Logon, configure o serviço para ser executado como uma conta alternativa que tenha direitos de acesso à rede.

Quando você clicar em OK, você receberá um aviso de que as configurações não terão efeito até que o serviço seja reiniciado.
Quando você clicar em OK, você receberá um aviso de que as configurações não terão efeito até que o serviço seja reiniciado.
Reinicie o serviço.
Reinicie o serviço.
A lista de serviços agora deve mostrar que o serviço do SQL Server está sendo executado como a conta que você configurou.
A lista de serviços agora deve mostrar que o serviço do SQL Server está sendo executado como a conta que você configurou.
Agora, quando você executa o comando para fazer backup diretamente em um compartilhamento de rede:
Agora, quando você executa o comando para fazer backup diretamente em um compartilhamento de rede:

SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”

Você deve ver uma mensagem de sucesso:

Processed 152 pages for database ‘MyDB’, file ‘MyDB’ on file 1. Processed 2 pages for database ‘MyDB’, file ‘MyDB_log’ on file 1. BACKUP DATABASE successfully processed 154 pages in 0.503 seconds (2.493 MB/sec).

Com o arquivo de backup agora no diretório de compartilhamento de rede:

Image
Image

Considerações sobre compartilhamento de rede

É importante observar que o comando de backup espera poder conectar-se diretamente ao compartilhamento de rede sem precisar de credenciais. A conta que você configurou o serviço do SQL Server para executar como deve ter uma conexão confiável com o compartilhamento de rede onde as respectivas credenciais permitem acesso, caso contrário, um erro como isso pode ocorrer:

Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 1326(Logon failure: unknown user name or bad password.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.

Esse erro indica que o nome de usuário e a senha da conta não foram aceitos pelo compartilhamento de rede e o comando falhou.

Outro problema a ter em mente é que o backup é realizado diretamente em um recurso de rede, portanto, qualquer falha na conexão de rede pode causar falha no backup. Por esse motivo, você deve fazer backup somente em locais de rede que sejam estáveis (isto é, provavelmente não uma VPN).

Implicações de segurança

Como mencionado anteriormente, é preferível usar o método no qual você faz backup local e depois copie para um compartilhamento de rede, pois ele permite que você execute o Serviço SQL como uma conta somente com acesso ao sistema local.

Ao executar o serviço como uma conta alternativa, você abre a porta para possíveis problemas de segurança. Por exemplo, um script SQL mal-intencionado poderia ser executado sob a conta alternativa e atacar recursos de rede. Além disso, qualquer alteração na respectiva conta (alterações / expirações de senha ou exclusão / desativação da conta) fará com que o serviço do SQL Server falhe ao ser iniciado.

É importante manter esses pontos em mente se você executar sua instância do SQL Server usando uma conta alternativa. Embora esses não sejam os rostos de exibição, se forem tomadas as devidas precauções, você deve considerar adicionar mais espaço no disco rígido e, em seguida, implementar o backup e a cópia locais para poder executar o serviço SQL usando uma conta local.

Recomendado: