Eu tenho uma máquina Windows Server 2000 executando o MS SQL Server que armazena mais de 20 GB de dados. O backup do banco de dados é feito diariamente para o segundo disco rígido. Quero transferir esses arquivos de backup para outro computador para criar outro servidor de teste e praticar a recuperação. (o backup nunca foi restaurado por quase 5 anos. Não conte a meu chefe sobre isso!)
Estou com problemas para transferir esse arquivo enorme pela rede. Eu tentei cópia de rede simples, download apache e ftp. Qualquer método que eu tentei acaba falhando quando a quantidade de dados transferidos chega a 2 GB. A última vez que transferi o arquivo com sucesso, foi através de um disco rígido externo conectado a USB. Mas quero executar essa tarefa rotineiramente e de preferência automaticamente.
Gostaria de saber qual é a abordagem mais pragmática para essa situação?
fonte
Respostas:
Uma falha previsível em 2Gb parece que o sistema de arquivos de destino é o culpado ... Ambos estão no NTFS? Você está navegando através de qualquer compactação (zip costumava falhar nos limites de 2 gb) ((o apache está fazendo compactação))
Copiei muitos arquivos acima de 20Gb usando robocopy (como outros mencionaram), mas evitaria usar a opção / MIR até ter certeza de que a cópia está fazendo o que deseja - pois ela excluirá os arquivos e os copiará.
O SMB sofre de um pacote de cada vez e, portanto, geralmente é a maneira mais lenta de copiar arquivos - você tem a opção de copiar usando push ou pull. Pessoalmente, prefiro o método push (a cópia é iniciada pela fonte).
fonte
A ferramenta MS Exchange eseutil é um excelente utilitário para copiar arquivos grandes rapidamente em uma rede:
eseutil / y arquivo_de origem / arquivo_dest.
fonte
Eu recomendo usar o utilitário gratuito RichCopy . É multithread e pode pausar e retomar as operações de cópia de arquivo. Eu tive muita sorte em usá-lo para transferir arquivos entre servidores.
http://blogs.technet.com/markdea/archive/2009/03/24/richcopy-is-it-the-new-sliced-bread.aspx
fonte
No que diz respeito aos utilitários de cópia de arquivo, o TeraCopy é um bom baseado em GUI (não linha de comando) que pode enfileirar muitos arquivos, suporta pausas e retoma, pode alterar dinamicamente o tamanho do buffer para otimizar a velocidade e, opcionalmente, substituir o padrão do Windows Explorer copiar / mover com seus próprios.
fonte
A robocópia com a opção / MIR é muito útil para backups rápidos e sujos entre máquinas. Você pode encontrar a robocopy no Windows Server 200X Resouce Kit
O MIR espelha o conteúdo de um diretório para outro servidor. Ele copiará apenas os arquivos que foram alterados.
fonte
A solução mais pragmática para repetições aleatórias de grandes arquivos de backup do SQL Server é usar um produto de compactação de backup de terceiros ou a compactação de backup interna do SQL Server 2008 Enterprise Edition.
Existem vários por aí de diferentes fornecedores. Trabalho na Quest Software, fabricante do LiteSpeed, mas não estou aqui para vender nada. Você deseja verificar todos os produtos disponíveis e decidir o que é melhor para suas necessidades. Aqui está uma postagem recente do blog falando especificamente sobre o LiteSpeed, mas os mesmos conceitos também se aplicam a outros produtos:
http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/title-8
fonte
Você está copiando o arquivo através de uma LAN ou através de uma conexão WAN como ADSL? Presumo que seja uma WAN porque 20 GB não é um arquivo grande para copiar em uma LAN. Eu copio muitos desses arquivos todos os dias.
Se for uma conexão WAN, o modo como faço é usar a versão Cygwin do rsync.
JR
fonte
Eu tinha transferências de rede com falha em torno da marca de 2 GB - acabou por ser uma placa de rede com defeito.
fonte
Uso syncback ( http://www.2brightsparks.com/syncback/sbse.html ) diariamente para transferir arquivos várias vezes maiores que o seu. Nunca tive problema com isso.
fonte
É um pouco tarde, mas eu recomendaria uma opção de aplicativo de backup e restauração de terceiros. Usamos o Red Gate SQL Backup ( www.red-gate.com ), ele possui opções de compactação e localização alternativa na GUI. Recebo compressões economizando em média 80% - para que você transfira apenas 20% do tamanho real do banco de dados. Ele também suporta criptografia para que possa ser usado em uma WAN sem preocupações de interceptação.
É totalmente agendável para que possa ser executado automaticamente em um ciclo de sua escolha.
A GUI também permite configurar e administrar o envio de logs.
Versão de teste gratuita disponível acima.
fonte
Não tenho experiência com um arquivo tão grande, mas você poderia usar robocopy ou mesmo xcopy com a opção / Z que afirma ser reinicializável. Parece que isso se destina a cópias grandes de arquivos em que a rede não é confiável.
fonte
Eu usei robocopy para mais de 1gb e não tive problemas. ss64.com tem uma boa explicação dos switches. Não consigo postar o link :-(
fonte
Use o Netcat . Um tutorial orientado a unix para transferência de arquivos pode ser encontrado aqui . Você pode acelerar ainda mais as coisas:
Brincadeiras à parte, o netcat é provavelmente a maneira mais rápida de transferir arquivos grandes em uma LAN. Como nenhuma soma de verificação é feita, convém fazer uma soma MD5 do arquivo antes de enviá-lo e compará-la com a soma MD5 do arquivo recebido.
Eu usei muito o netcat dessa maneira, nunca vi isso falhar, nunca vi ele falhar ao máximo na rede ..
fonte
Pode valer a pena dividir o arquivo em pedaços menores como uma solução de curto prazo até que você possa identificar o problema. Tivemos problemas semelhantes a isso no passado, e o ftp sempre funcionou para nós
fonte
Se estes são arquivos .bak do SQL que você está copiando, sugiro que siga um destes procedimentos para reduzir os arquivos antes de copiar:
Pode eliminar a necessidade de um método alternativo para copiar arquivos grandes.
fonte
Eu não acho que encontrar algo para transferir mais rapidamente seja o seu problema, verifique novamente para garantir que o sistema de arquivos de destino NÃO seja FAT, como já foi dito. Além disso, verifique se as NICs de ambos os lados possuem drivers atualizados e não estão agindo de maneira inadequada.
Com isso dito, você está movendo muitos arquivos pequenos ou apenas alguns grandes? Vi problemas no controlador RAID ao tentar mover milhões de arquivos minúsculos.
Não acho que você tenha problemas para automatizar isso depois de descobrir o que está causando a falha. Pode ser útil listar mais detalhes sobre o seu hardware e quaisquer erros relevantes que você possa ver no visualizador de eventos.
fonte
Você tentou usar uma conexão eSATA com um disco rígido externo? As conexões são muito rápidas (3 gigabit!) E devem poder transferir esse arquivo rapidamente!
Qual a velocidade da sua placa de rede no servidor, 10/100 ou 10/100/1000? Como é a largura de banda e o switch da rede do servidor quando você está copiando o arquivo? Como é a largura de banda da rede do local de destino (servidor?) Ao copiar? Você já tentou juntar duas placas de rede? Os drivers da placa de rede estão atualizados? O BIOS está atualizado?
Há muitas coisas que podem ser o problema das transferências de arquivos. Garantir que os drivers de hardware e o BIOS estejam atualizados pode realmente fazer a diferença.
-JFV
fonte
A maneira mais simples e rápida: discos USB externos e caminhadas.
Do meu jeito: use rsync. Se a cópia falhar, basta reiniciá-la e ela continuará onde foi deixada.
fonte
A outra coisa a verificar seria verificar se o serviço de cota está configurado no servidor de destino; Eu acho que ele usa 2 GB como a cota padrão por usuário.
fonte