Come posso ripristinare da un comando del database di rilascio utilizzando un registro binario mysql?

StackOverflow https://stackoverflow.com/questions/88800

  •  01-07-2019
  •  | 
  •  

Domanda

Come posso ripristinare un database mysql che è stato eliminato utilizzando il comando "drop database"?Ho accesso ai log binari che dovrebbero rendere possibile questo tipo di rollback.

È stato utile?

Soluzione

La documentazione fa schifo.Allude al fatto che DROP DATABASE è recuperabile, ma solo in condizioni strane che non conosco http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Secondo Docs, i binlog sono solo una sequenza di comandi eseguiti in base a un determinato punto di riferimento.In modo che quando hai fatto "DROP DATABASE", invece di dire "Oh, sta eliminando il database, dovremmo eseguire il backup ora per ogni evenienza", ha semplicemente scritto un "DROP DATABASE" nell'ultimo binlog.Il ripristino non è semplice come riprodurre il nastro al contrario.

Ciò che devi fare è ripristinare il database da un ultimo elemento valido noto e applicare i binlog che si sono verificati tra quel punto di ripristino e il comando DROP.

http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html

Tuttavia, non è chiaro come determinare quali binlog utilizzare.

Non c'è niente di meglio che avere backup completi del file system.E dovresti almeno avere questi a cui ricorrere.

Altri suggerimenti

Se non hai un backup del database, sei sfortunato. Gocciolarela creazione di un database è permanente.

Supponendo che tu abbia un backup, il registro binario contiene tutto ciò che è accaduto dopo quel backup.Usando l'utilità mysqlbinlog potresti fare qualcosa del tipo:

mysqlbinlog il_file_di_log > update.sql

Anche se penso che potresti dover modificare quel file per rimuovere tutto ciò che non vuoi eseguire di nuovo (come l'istruzione drop database).

Buona fortuna!

Nessun backup, nessuna festa.

Quindi risponderò:

Per non ritrovarti mai più nella tua situazione installa il semplicissimo e ultra potente automysqlbackup (se sei su Linux):

sudo apt-get install automysqlbackup

configuralo:

sudo nano /etc/default/automysqlbackup

Quindi carica automaticamente il suo contenuto su Dropbox, Ubuntu o simili.

Solo allora vivi felicemente :)

Giusto per completare la risposta di Kent Fredric, PUOI eseguire il rollback di drop database comando se stai utilizzando la registrazione binaria dalla creazione del database.

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