2013-11-01 11 views
8

Sto tentando di ripristinare un file di dump sql grande 13G. Per prima cosa ho usato phpAdmin in xampp, ha detto che le dimensioni erano troppo grandi. Poi ho usato il dump grande, ancora ho ricevuto il messaggio di errore "Non posso cercare in xx.sql". Ho trovato online che significa che il file è troppo grande. Quindi inizio a usare la riga di comando. mysql -u nome utente -p database < posizione/to/your/dump.sql sembra funzionare perché ha richiesto la password e ho premuto direttamente Invio perché non ho una password. E ora posso vedere che il "_" continua a lampeggiare, presumo che questo significhi che sta funzionando. BUt non c'è modo che io possa verificarlo, e ci sta già un po '.tenta di ripristinare un file di dump sql maggiore di 10 GB

C'è un modo per assicurarsi che funzioni? Apprezzo molto il vostro aiuto!! TJ

risposta

0

il ripristino di file di dimensioni simili

  1. mi prende circa 4-5 ore, può essere più dipende dalla natura delle chiavi e vincoli che avete
  2. si può sempre controllare la lista dei processi per vedere se funziona.
  3. tail -f il log generale mysql e assicurarsi che registri qualsiasi query. questo è il modo più semplice per vedere se funziona o no. Un avvertimento, questo rallenta il tutto ancora più, da 100% +
+0

Grazie per la vostra risposta rapida !! Ho controllato la lista dei processi, il programma della riga di comando è nella lista dei processi, ma non sta usando alcuna CPU. –

+0

Ma non capisco il 3 ° suggerimento che hai suggerito. Come posso controllare i registri? Grazie. –

7

Un altro modo per ripristinare i file con il client della riga mysql di comando è come questo:

$ mysql -u username -p database 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 2933685 
--8<-- snip --8<-- 

mysql> source location/to/your/dump.sql 

Il comando source leggerà la discarica file e applicarlo al server proprio come l'operatore di reindirizzamento <, ma con due differenze: si vedranno i messaggi continui di "x righe interessate" scorrendo, dandoti qualche indicazione che il progresso è effettivamente in corso. Il lato negativo di questo metodo è che, a differenza del metodo che usa il reindirizzamento <, se ci sono errori nel file di dump, il client della riga di comando cercherà semplicemente di andare avanti, che non è sempre quello che vuoi. Tuttavia, potrebbe essere un approccio praticabile.

Oppure ... nel modo in cui lo state facendo ora, se è possibile vedere la connessione nella lista di processo, controllare il valore per Sleep. Se il valore è costantemente 0, allora si sta verificando un qualche tipo di attività.

+1

Questo ha funzionato bene per me. Ho alcuni database e sono su tutti i backup da 1 GB. Il mio più grande è 12 GB. Questo metodo ha importato i dati molto rapidamente, in meno di 15 minuti. Prima, stavo usando MySQL -u root -p database user1794918

0

provare questa tecnica

Dopo la connessione al database MySql remota ...

  • Generare una query per creare schema di tabella, le procedure e le funzioni del DB sorgente
  • Generare una query per trovare tutti gli indici di tutte le tabelle tranne i vincoli di chiave esterna del - DB sorgente
  • Generare una query per eliminare tutti gli indici trovati nel passaggio 2
  • Generare a query per inserire tutti i dati del DB sorgente
  • Generare una query per creare tutti gli indici trovati nel passaggio 2
  • Scrivere tutte le query nell'ordine sopra in un file .sql che è il nuovo backup MySql. Zip con compressione LZ4.
  • Ora basta ripristinare il DB da questo file utilizzando l'utilità di ripristino normale di MySql.

Rif: http://axiomnext.com/blog/how-to-restore-large-mysql-database-faster/

Problemi correlati