Domanda

Il titolo è autoesplicativo. Esiste un modo per eseguire direttamente questo tipo di importazione?

È stato utile?

Soluzione

I file .BAK dal server SQL sono in formato Microsoft Tape Format (MTF) ref: http: / /www.fpns.net/willy/msbackup.htm

Il file bak conterrà probabilmente i file LDF e MDF utilizzati da SQL Server per archiviare il database.

Sarà necessario utilizzare il server SQL per estrarli. SQL Server Express è gratuito e farà il lavoro.

Quindi, installa SQL Server Express edition e apri SQL Server Powershell. Esegui sqlcmd -S <COMPUTERNAME>\SQLExpress (mentre sei loggato come amministratore)

quindi emettere il seguente comando.

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

Questo elencherà il contenuto del backup - ciò di cui hai bisogno sono i primi campi che ti dicono i nomi logici - uno sarà il database effettivo e l'altro il file di registro.

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

A questo punto hai estratto il database - quindi installa " di Microsoft; Sql Web Data Administrator " ;. insieme a questo strumento di esportazione e avrai uno script SQL che contiene il database.

Altri suggerimenti

Non sono riuscito a trovare un modo per farlo direttamente.

Invece ho importato il file bak in SQL Server 2008 Express e poi ho usato MySQL Migration Toolkit .

Ha funzionato come un fascino!

MySql ha un'applicazione per importare db da microsoft sql. Passaggi:

  1. Apri MySql Workbench
  2. Fare clic su " Migrazione database " (se non viene visualizzato, è necessario installarlo dall'aggiornamento MySql)
  3. Segui l'elenco delle attività di migrazione utilizzando la semplice procedura guidata.
  1. Apri SQL Server Management Studio sul tuo computer locale.
  2. Fare clic con il tasto destro sulla cartella Database. Dal menu a comparsa, selezionare Nuovo database.
  3. Immettere un nome per il database, quindi fare clic su OK.
  4. Fare clic con il tasto destro del mouse sull'icona del nuovo database. Dal menu a comparsa, selezionare Attività - & Gt; Ripristina - & Gt; Database.
  5. Seleziona l'opzione Da dispositivo, quindi fai clic sul pulsante Sfoglia.
  6. Fai clic su Aggiungi e vai al file appropriato. Fai clic su OK.
  7. Nella finestra Ripristina database, selezionare la casella di controllo accanto al file BAK.
  8. Passa alla pagina Opzioni. Seleziona la casella di controllo Sovrascrivi il database esistente. Fai clic su OK.
  9. Verifica i contenuti del tuo database, che è ora attivo sul tuo computer locale.

Sebbene il mio background su MySQL sia limitato, non credo che tu abbia molta fortuna nel farlo. Tuttavia, dovresti essere in grado di migrare su tutti i tuoi dati ripristinando il db su un server MSSQL, quindi creando un pacchetto SSIS o DTS per inviare tabelle e dati al server MySQL.

spero che questo aiuti

Ne dubito fortemente. Potresti voler usare DTS / SSIS per farlo come dice Levi. Uno pensa che potresti voler fare è avviare il processo senza importare effettivamente i dati. Basta fare abbastanza per riunire le strutture di base della tabella. Quindi vorrai cambiare intorno alla struttura della tabella risultante, perché qualsiasi struttura che verrà probabilmente creata sarà alquanto traballante.

Potrebbe anche essere necessario fare un ulteriore passo avanti e creare un'area di gestione temporanea che includa prima tutti i dati in un modulo stringa (varchar). Quindi è possibile creare uno script che esegua la convalida e la conversione per inserirlo nel & Quot; real & Quot; database, perché i due database non sempre funzionano bene insieme, specialmente quando si tratta di date.

Il metodo che ho usato includeva parte del metodo di Richard Harrison:

  

Quindi, installare SQL Server 2008 Express   edizione,

Ciò richiede il download del programma di installazione della piattaforma Web " wpilauncher_n.exe " Una volta installato questo, fai clic sulla selezione del database (devi anche scaricare Frameworks e Runtime)

Dopo l'installazione vai al prompt dei comandi di Windows e:

  

usa sqlcmd -S \ SQLExpress (while   accesso come amministratore)

     

quindi emettere il seguente comando.

     

ripristina solo file da   disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak';   GO Verrà elencato il contenuto di   backup: quello di cui hai bisogno è il primo   campi che indicano i nomi logici   - uno sarà il database effettivo e l'altro il file di registro.

     

RIPRISTINA DATABASE mydbName DA   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

Ho avviato il programma di installazione della piattaforma Web e dalla scheda Novità ho installato SQL Server Management Studio e ho consultato il db per assicurarmi che i dati fossero lì ...

A quel punto ho provato lo strumento incluso con MSSQL " SQL Import and Export Wizard " ma il risultato del dump CSV includeva solo i nomi delle colonne ...

Quindi, invece, ho appena esportato i risultati di query come " selezionare * dagli utenti " da SQL Server Management Studio

I database di SQL Server sono molto proprietari di Microsoft. Due opzioni che mi vengono in mente sono:

  1. Scarica il database in formato CSV, XML o simile da caricare in MySQL.

  2. Imposta la connessione ODBC a MySQL e quindi usando DTS trasporta i dati. Come ha suggerito Charles Graham, potrebbe essere necessario creare i tavoli prima di farlo. Ma è facile come tagliare e incollare dalle finestre di SQL Enterprise Manager alla finestra di MySQL corrispondente.

Per coloro che tentano la soluzione di Richard sopra, ecco alcune informazioni aggiuntive che potrebbero aiutare a navigare errori comuni:

1) Quando si esegue il ripristino dell'elenco file, è possibile che venga visualizzato l'errore 5 del sistema operativo (accesso negato). In tal caso, aprire Gestione configurazione SQL Server e modificare l'accesso per SQLEXPRESS in un utente con privilegi di scrittura locali.

2) @ " Questo elencherà il contenuto del backup - ciò di cui hai bisogno sono i primi campi che ti dicono i nomi logici " - se il tuo file elenca più di due intestazioni dovrai anche tenere conto di cosa fare con quei file nel comando RESTORE DATABASE. Se non si indica cosa fare con i file oltre il database e il registro, apparentemente il sistema tenterà di utilizzare gli attributi elencati nel file .bak. Il ripristino di un file dall'ambiente di qualcun altro produrrà un 'Il percorso ha attributi non validi. Deve essere una directory "(poiché il percorso in questione non esiste sul tuo computer). Fornire semplicemente un'istruzione MOVE risolve questo problema.

Nel mio caso c'era un terzo file di tipo FTData. Il comando MOVE che ho aggiunto:

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

nel mio caso in realtà ho dovuto creare una nuova directory per il terzo file. Inizialmente ho provato a inviarlo nella stessa cartella del file .mdf ma questo ha prodotto un errore "impossibile inizializzare correttamente" sul terzo file FTData quando ho eseguito il ripristino.

Il file .bak da SQL Server è specifico per quel dialetto del database e non è compatibile con MySQL.

Prova a utilizzare etlalchemy per migrare il tuo database SQL Server in MySQL. È uno strumento open source che ho creato per facilitare le migrazioni facili tra diversi RDBMS.

Installazione rapida ed esempi sono forniti qui alla la pagina github e una spiegazione più dettagliata della proposta del progetto le origini possono essere trovate qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top