Domanda

Per fare un po' di pulizia autunnale, sto spostando 25 tabelle tra database MySQL (diversi componenti hardware).Questo non è l'INTERO database, solo 25 tabelle su poche centinaia...Queste tabelle non appartengono davvero a lì, non entrerò nel perché per motivi di NDA.

Ora, questo interromperà molti codici e query SQL.

Qual è il modo migliore per farlo?

  1. Spostateli tutti insieme.

  2. Spostateli 1 per 1

--

Spostarli tutti in una volta è piuttosto carino.Potrebbero esserci delle interruzioni e del codice non funzionante che mi sono sfuggito, ma spostarli come un blocco è molto più veloce e richiede meno tempo per l'estrazione del codice.

Spostarli uno per uno è piuttosto carino, meno possibilità che grandi cose si rompano, ma verrà dedicato MOLTO più tempo alla microgestione del lavoro, al lavoro ridondante e alla distribuzione.

È possibile eseguire il mirroring delle tabelle tra due database per un po'?Un tavolo federato forse?

--

Informazioni varie:Ci sono 25 tabelle tutte correlate tra loro in base al contenuto.

Non posso chiudere i database per ore alla volta, circa 5 minuti di inattività sarebbero accettabili.

--

Qual è il modo migliore per spostare tutti questi dati e mantenere il codice, SQL e me in ottime condizioni?

Potrei federare le tabelle come un modo per replicare le tabelle in un nuovo database?

-Daniele

È stato utile?

Soluzione

Sembra che spostarli uno alla volta sarebbe la strada da percorrere.In questo modo avrai un sacco di piccoli problemi facili invece di un grosso problema difficile.Spero che tu sottoponga il tuo sistema a molti test automatizzati per assicurarti che tutto questo mescolamento non rompa nulla.

Un'altra cosa:parli di chiudere il database.Se stai apportando modifiche in un ambiente di sviluppo e le rendi attive solo quando sei sicuro che tutto funzioni, perché dovresti avere tempi di inattività nella produzione?Spero che tu non stia pensando di apportare queste modifiche alla produzione senza prima farlo in fase di sviluppo.

Altri suggerimenti

Puoi usare SQLYog (front-end mysql) per farlo.

La mia opzione è Powertools -> Procedura guidata di sincronizzazione del database

Devi essere in grado di aprire entrambi i database in remoto (l'host% dovrebbe essere presente)

Ci sono stato, l'ho fatto e in realtà sono nel bel mezzo di un progetto simile proprio adesso.Dei nostri progetti ne abbiamo ereditati alcuni che non sappiamo cosa siano o dove sia tutto, ma ecco il flusso generale:

  • Sul nuovo server, configura gli account appropriati
  • Trova dove modificare il server e il nome utente/password, se necessario, nella configurazione dell'applicazione
  • Arrestare l'applicazione Web in modo che non vi siano scritture durante lo spostamento
  • Sposta il database
  • Riconfigurare l'app
  • Riaccendilo
  • Ripetere per ogni DB/applicazione

Per piccole cose, ci vogliono solo pochi secondi. SQLyog è di grande aiuto qui.Se disponi di database di grandi dimensioni o decidi di non volere tempi di inattività, devi prendere in considerazione la replica.

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