Pergunta

O título é auto -explicativo. Existe uma maneira de fazer diretamente esse tipo de importação?

Foi útil?

Solução

Os arquivos .bak do SQL Server estão no Microsoft Tape Format (MTF) Ref: http://www.fpns.net/willy/msbackup.htm

O arquivo BAK provavelmente conterá os arquivos LDF e MDF que o SQL Server usa para armazenar o banco de dados.

Você precisará usar o SQL Server para extraí -los. O SQL Server Express é gratuito e fará o trabalho.

Portanto, instale o SQL Server Express Edition e abra o SQL Server PowerShell. Lá executa sqlcmd -S <COMPUTERNAME>\SQLExpress (enquanto está conectado como administrador)

Em seguida, emita o seguinte comando.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

Isso listará o conteúdo do backup - o que você precisa são os primeiros campos que informam os nomes lógicos - um será o banco de dados real e o outro o arquivo de log.

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

Neste ponto, você extraiu o banco de dados - depois instale "Administrador de dados da Web SQL da Microsoft". junto com esta ferramenta de exportação E você terá um script SQL que contém o banco de dados.

Outras dicas

Não consegui encontrar uma maneira de fazê -lo diretamente.

Em vez disso, importei o arquivo BAK para o SQL Server 2008 Express e depois usei MySQL Migration Toolkit.

Funcionou como um charme!

O MySQL tem um aplicativo para importar DB da Microsoft SQL. Passos:

  1. Abra o MySQL Workbench
  2. Clique em "Migração do banco de dados" (se não aparecer, você deve instalá -lo na atualização MySQL)
  3. Siga a lista de tarefas de migração usando o assistente simples.
  1. Abra o SQL Server Management Studio em sua máquina local.
  2. Clique com o botão direito do mouse na pasta dos bancos de dados. No menu pop-up, selecione novo banco de dados.
  3. Digite um nome de banco de dados e clique em OK.
  4. Clique com o botão direito do mouse no novo ícone do banco de dados. No menu pop -up, selecione Tarefas -> Restauração -> Database.
  5. Selecione a opção do dispositivo e clique no botão de navegação.
  6. Clique em Adicionar e navegar para o arquivo apropriado. Clique OK.
  7. Na janela Restaurar o banco de dados, selecione a caixa de seleção ao lado do seu arquivo BAK.
  8. Mude para a página de opções. Selecione o substituto da caixa de seleção do banco de dados existente. Clique OK.
  9. Verifique o conteúdo do seu banco de dados, que agora está ativo na sua máquina local.

Embora meu fundo MySQL seja limitado, acho que você não tem muita sorte em fazer isso. No entanto, você poderá migrar todos os seus dados restaurando o banco de dados para um servidor MSSQL e criando um pacote SSIS ou DTS para enviar suas tabelas e dados para o servidor MySQL.

espero que isto ajude

Eu duvido muito. Você pode querer usar o DTS/SSIS para fazer isso como Levi diz. Acha que você pode querer fazer é iniciar o processo sem realmente importar os dados. Apenas faça o suficiente para reunir as estruturas básicas da tabela. Então você vai querer mudar em torno da estrutura da tabela resultante, porque qualquer estrutura que a TAT provavelmente será criada será instável, na melhor das hipóteses.

Você também pode precisar dar um passo adiante e criar uma área de estadiamento que assuma todo o formulário Data First Na String (Varchar). Em seguida, você pode criar um script que faça validação e conversão para colocá -lo no banco de dados "real", porque os dois bancos de dados nem sempre funcionam bem juntos, especialmente ao lidar com datas.

O método que usei incluía parte do método de Richard Harrison:

Então, instale o SQL Server 2008 Express Edition,

Isso requer o download do instalador da plataforma da web "wpilauncher_n.exe" depois de instalar o clique na seleção do banco de dados (você também é obrigado a baixar estruturas e horários de execução)

Após a Instalação, vá para o prompt de comando do Windows e:

Use sqlcmd -s sqlexpress (enquanto conectado como administrador)

Em seguida, emita o seguinte comando.

restaurar fileListonly de disk = 'c: temp mydbname-2009-09-29-v10.bak'; Vá listar o conteúdo do backup - o que você precisa são os primeiros campos que informam os nomes lógicos - um será o banco de dados real e o outro o arquivo de log.

Restaurar banco de dados mydbname de disk = 'c: temp mydbname-2009-09-29-v10.bak' com mover 'mydbname' para 'c: temp mydbname_data.mdf', mover 'mydbname_log' para 'c: temp mydbname_data.ldf '; VAI

Eu acionei o Web Platform Installer e, na guia OM que instalei, instalei o SQL Server Management Studio e naveguei no banco de dados para garantir que os dados estivessem lá ...

Nesse ponto, experimentei a ferramenta incluída no MSSQL "SQL Import and Export Wizard", mas o resultado do dump do CSV incluiu apenas os nomes das colunas ...

Então, em vez disso, acabei de exportar resultados de consultas como "Select * dos usuários" do SQL Server Management Studio

Os bancos de dados do SQL Server são muito proprietários da Microsoft. Duas opções que consigo pensar são:

  1. Despeje o banco de dados em CSV, XML ou formato semelhante que você carregaria no MySQL.

  2. Configure a conexão ODBC com o MySQL e, em seguida, usando o DTS transportando os dados. Como Charles Graham sugeriu, pode ser necessário construir as mesas antes de fazer isso. Mas isso é tão fácil quanto um corte e colar do SQL Enterprise Manager Windows para a janela MySQL correspondente.

Para aqueles que tentam a solução de Richard acima, aqui estão algumas informações adicionais que podem ajudar a navegar em erros comuns:

1) Ao executar a Restauração FilElistonly, você pode obter o erro do sistema operacional 5 (o acesso é negado). Se for esse o caso, abra o gerenciador de configuração do SQL Server e altere o login do SQLEXPress para um usuário que possui privilégios de gravação local.

2) @"Isso listará o conteúdo do backup - o que você precisa são os primeiros campos que lhe dizem os nomes lógicos" - se o seu arquivo listar mais de dois cabeçalhos, você também precisará explicar o que fazer com esses arquivos em o comando RESTORE DATABASE. Se você não indicar o que fazer com os arquivos além do banco de dados e do log, o sistema aparentemente tentará usar os atributos listados no arquivo .bak. Restaurar um arquivo do ambiente de outra pessoa produzirá um 'o caminho possui atributos inválidos. Ele precisa ser um diretório '(como o caminho em questão não existe em sua máquina). Simplesmente fornecer uma declaração de movimento resolve esse problema.

No meu caso, houve um terceiro arquivo do tipo ftdata. O comando de movimentação que eu adicionei:

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

No meu caso, eu realmente tive que fazer um novo diretório para o terceiro arquivo. Inicialmente, tentei enviá -lo para a mesma pasta que o arquivo .mdf, mas que produziu um erro 'falhou em inicializar corretamente' no terceiro arquivo FTDATA quando executei a restauração.

O arquivo .bak do SQL Server é específico para esse dialeto de banco de dados e não é compatível com o MySQL.

Tente usar EtlalChemy Para migrar o banco de dados do SQL Server para o MySQL. É uma ferramenta de código aberto que eu criei para facilitar as migrações fáceis entre os diferentes RDBMs.

Instalação rápida e exemplos são fornecidos aqui a página do github, e uma explicação mais detalhada das origens do projeto pode ser encontrada aqui.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top