Preciso copiar um banco de dados de um servidor remoto para um local. Tentei usar o SQL Server Management Studio, mas ele faz backup apenas em uma unidade no servidor remoto.
Alguns pontos:
- Não tenho acesso ao servidor remoto de maneira que possa copiar arquivos;
- Não tenho acesso para configurar um caminho UNC para o meu servidor;
Alguma idéia de como posso copiar esse banco de dados? Terei que usar ferramentas de terceiros?
sql
sql-server
backup
Fernando
fonte
fonte
Generate and Publish Scripts
opção. Eu recebo todas as tabelas e esquemas. Mas não obtive nenhum dado com tabelas. Como posso consertar isso.Respostas:
No Microsoft SQL Server Management Studio, você pode clicar com o botão direito do mouse no banco de dados que deseja fazer backup e clicar em Tarefas -> Gerar scripts.
Isso abre um assistente onde você pode definir o seguinte para executar um backup decente do seu banco de dados, mesmo em um servidor remoto :
Uma vez feito isso, você terá um script de backup à sua frente. Crie um novo banco de dados local (ou remoto) e altere a primeira instrução 'USE' no script para usar seu novo banco de dados. Salve o script em um local seguro e vá em frente e execute-o no seu novo banco de dados vazio. Isso deve criar um banco de dados local (quase) duplicado e você pode fazer backup como desejar.
Se você tiver acesso total ao banco de dados remoto, poderá selecionar 'script todos os objetos' na primeira janela do assistente e, em seguida, alterar a opção 'Banco de Dados de Script' para True na próxima janela. Cuidado, porém, você precisará realizar uma pesquisa completa e substituir o nome do banco de dados no script por um novo banco de dados que, nesse caso, não será necessário criar antes de executar o script. Isso deve criar uma duplicata mais precisa, mas às vezes não está disponível devido a restrições de permissões.
fonte
Primeiro, conceda permissões de controle total a um caminho local em sua máquina (como mostrado abaixo) com Todos. (Ou, como alternativa, conceda permissões especificamente à conta do SQL Server Agent).
Segundo, execute o seguinte:
fonte
Para copiar apenas dados e esquema (não copiará procedimentos, funções, etc. armazenados), use o Assistente para Importação e Exportação do SQL Server e escolha Novo ... ao escolher o banco de dados de destino.
Clique com o botão direito do mouse em Banco de Dados> Tarefas> Importar Dados.
Escolha uma fonte de dados
Escolha um destino
New...
O resto é direto.
fonte
Você não pode criar um backup de um servidor remoto para um disco local - simplesmente não há como fazer isso. E também não há ferramentas de terceiros para fazer isso, tanto quanto eu sei.
Tudo o que você pode fazer é criar um backup na máquina do servidor remoto e pedir que alguém o feche e envie para você.
fonte
Sei que esta é uma resposta tardia, mas tenho que fazer um comentário sobre a resposta mais votada que diz usar a opção de gerar scripts no SSMS.
O problema é que essa opção não gera necessariamente o script na ordem de execução correta, porque não leva em consideração as dependências.
Para bancos de dados pequenos, isso não é um problema, mas para bancos maiores, certamente é porque exige que você reordene manualmente esse script. Tente isso no banco de dados 500 objetos;)
Infelizmente, neste caso, a única solução são ferramentas de terceiros.
Usei com êxito ferramentas de comparação do ApexSQL (Diff e Data Diff) para tarefas semelhantes, mas você não pode errar com outras já mencionadas aqui, especialmente o Red Gate.
fonte
Você pode tentar SQLBackupAndFTP . Ele criará scripts para criar todos os objetos em seu banco de dados e instruções INSERT para todas as linhas em suas tabelas. Em qualquer banco de dados, você pode executar esse arquivo de script e o banco de dados inteiro será recriado.
fonte
Veja este blog para obter uma descrição de como copiar um banco de dados remoto:
Faça backup de um banco de dados do SQL Server 2008 em um ambiente de hospedagem compartilhada
fonte
Existe a solução de 99% para obter o arquivo bak do servidor sql remoto para o seu PC local. Eu o descrevi lá no meu post http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc
Em geral, será assim:
executar script sql para gerar arquivos bak
execute o script sql para inserir cada arquivo bak na tabela temporária com o tipo de campo varbinário e selecione esta linha e faça o download dos dados
repetir anterior. pise quantas vezes você tiver arquivos bak
executar script sql para remover todos os recursos temporários
é isso, você tem seus arquivos bak no seu PC local.
fonte
Você pode usar o banco de dados de cópia ... clique com o botão direito do mouse no banco de dados remoto ... selecione tarefas e use o banco de dados de cópia ... ele perguntará sobre o servidor de origem e o servidor de destino. que sua origem é remota e o destino é sua instância local do servidor sql.
É tão fácil
fonte
A turma do AppHarbor está lutando com isso e desenvolveu uma solução temporária usando objetos de gerenciamento do servidor SQL e SqlBulkCopy.
Confira o post no blog ou vá direto ao código .
Eles só testaram com AppHarbor, mas pode valer a pena conferir.
fonte
As respostas acima não estão corretas. Um script SQL, mesmo com dados, não é um backup. Um backup é um arquivo BAK que contém o banco de dados completo em sua estrutura atual, incluindo indizes.
Obviamente, um arquivo BAK contendo o backup completo com todos os dados e indizes de um banco de dados remoto do SQL Server pode ser recuperado em um sistema local.
Isso pode ser feito com um software comercial, para salvar diretamente um arquivo BAK de backup na sua máquina local, por exemplo. Este criará diretamente um backup a partir de um banco de dados SQL remoto na sua máquina local.
fonte
Como Martin Smith disse, se você não tiver acesso à máquina ou ao sistema de arquivos, precisará usar ferramentas de terceiros, como Red Gate ou Adept, para fazer uma comparação nos sistemas de origem e destino. As ferramentas do Red Gate permitem copiar os objetos e esquemas E os dados.
fonte
você pode fazer um backup de uma instância remota do SQL Server para sua unidade local, desde que a seguinte condição seja atendida:
Agora, ao especificar o comando de backup, use o caminho da pasta compartilhada ao especificar a opção de disco.
fonte
apenas tente este:
1) Compartilhe uma pasta com permissão total no seu computador
2) no servidor SQL: painel de controle -> ferramentas administrativas -> serviços -> clique com o botão direito do mouse em todos os serviços SQL
na guia logon deve começar com o administrador do domínio
3) no assistente de manutenção do servidor sql, coloque o local e a pasta de backup (\ yourcomputername \ sharedfoldernam)
Fiz backup remoto em 8 servidores do sql server 2008 em nossa empresa
fonte
Estou surpreso que ninguém tenha mencionado a solução de backup com script oferecida por Ola Hallengren, que absolutamente permite que você faça backup de um banco de dados de um servidor remoto para um caminho UNC na sua rede de graça (na verdade, estou usando-o enquanto digito para fazer backup de um banco de dados de um servidor de desenvolvimento no qual não tenho acesso remoto além do SSMS para um compartilhamento no meu PC de desenvolvimento). Está disponível desde 2008 e funciona no SQL Server 2005 até 2014.
Você precisa garantir que o compartilhamento que você configurou tenha acesso suficiente: eu costumo permitir a leitura / gravação completa no grupo de anúncios 'Todos' pelo período do processo de backup, porque tenho preguiça de descobrir algo mais restritivo, mas isso é escolha pessoal.
É bem usado, bem documentado e muito flexível. Costumo colocar os procs e a tabela de log em seu próprio banco de dados de utilitários e depois acioná-lo. Desde que tudo esteja no seu domínio do AD e não seja remoto no sentido de que está em um servidor co-localizado ou algo assim, isso funciona muito bem.
Desculpas por adicionar a um tópico muito antigo, mas me deparei com isso ao procurar outra coisa e achei que era uma adição útil para quem procura esse tópico.
fonte
Para 2019, eu recomendaria o uso do mssql-scripter se você quiser um backup local real. Sim, são scripts, mas você pode ajustá-lo para incluir o que quiser, que pode incluir todos os dados. Eu escrevi um script bash para fazer backups diários automatizados usando isso em uma máquina Linux. Confira minha essência:
fonte
Eu poderia fazer isso uma vez ... Para fazer isso, você precisa ter um compartilhamento aberto no servidor remoto. então você pode colocar diretamente o backup no compartilhamento em si, além do local padrão ...
Normalmente, o administrador faz o backup e o compartilha conosco em alguma pasta compartilhada. Eu tentei se isso funcionaria se eu colocar o backup lá. Funcionou.
fonte
Se você usar o Gerar scripts no SSMS, clique no botão Avançado. Na opção 'Gerar scripts para os objetos dependentes', clique em Verdadeiro. Ao clicar em que quaisquer dependências de cada objeto também serão roteirizadas na ordem correta.
fonte
Alguns programas de backup de terceiros permitem configurar a transferência de arquivos com permissões de rede específicas. É muito útil quando o serviço SQL Server está sendo executado em uma conta restrita e não possui permissões de rede suficientes. Tente usar o EMS SQL Backup, que resolve esta tarefa.
fonte
Eu uso o Redgate backup pro 7 ferramentas para esse fim. você pode criar espelho a partir do arquivo de backup em criar bloco em outro local. e pode copiar o arquivo de backup após criar automaticamente na rede e no armazenamento do host.
fonte
Crie uma pasta compartilhada local, com privilégios de leitura / gravação para "todos"
Conecte-se ao banco de dados de destino, inicie o backup e aponte para o compartilhamento como abaixo
\ mymachine \ shared_folder \ mybackup.bak
(Tentei no ambiente de domínio do Windows)
fonte
Sei que esta é uma postagem mais antiga, mas, pelo que vale, descobri que a solução "mais simples" é apenas clicar com o botão direito do mouse no banco de dados e selecionar "Tarefas" -> "Exportar aplicativo da camada de dados". É possível que esta opção esteja disponível apenas porque o servidor está hospedado no Azure (pelo que me lembro de trabalhar com o Azure no passado, o formato .bacpac era bastante comum lá).
Feito isso, você pode clicar com o botão direito do mouse na lista "Bancos de dados" do servidor local e usar o "Importar aplicativo da camada de dados" para obter os dados em sua máquina local usando o arquivo .bacpac.
Basta ter em mente que a exportação pode demorar muito tempo. Demorou aproximadamente duas horas para a mina terminar de exportar. A parte de importação é muito mais rápida, no entanto.
fonte
Se você estiver em uma rede local, poderá compartilhar uma pasta em sua máquina local e usá-la como pasta de destino para o backup.
Exemplo:
Pasta lo cal:
C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder
SQL Server remoto:
Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'
fonte