Mysql Dump: differenze tra le versioni

Da Emigar.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(10 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
==Creazione Dump==
==Creazione Dump==
Dump dei dati di un singolo database
Dump dei dati di un singolo database
⚫
mysqldump --no-create-info --no-autocommit --hex-blob --single-transaction --quick --flush-logs --set-gtid-purged=OFF --log-error=log.data.log --result-file=$db.data.sql --skip-lock-tables ${DB}


⚫
mysqldump --no-autocommit --hex-blob --single-transaction --quick --flush-logs --set-gtid-purged=OFF --log-error=output.log --result-file=output.sql --skip-lock-tables ${DB}
Dump dei metadati di un singolo database:
mysqldump --no-data --no-autocommit --hex-blob --single-transaction --quick --flush-logs --set-gtid-purged=OFF --no-tablespaces --triggers --routines --events --log-error=log.meta.log --result-file=db.matdata.sql --skip-lock-tables ${DB}


Se si aggiunge <code>--no-create-info</code> non vengono generate le DDL delle tabelle
⚫
==import Dump==


Se si aggiunge <code>--no-data</code> vengono generate solo le DDL senza le insert dei dati


<code>--disable-keys</code> disabilita indici prima di importare e abilita indici dopo import, utile per velocizzare

<code>--add-locks</code> esegue lock table prima di importare, velocizza

<code>--no-autocommit</code> non usa autocommit ma start transaction e commit esplicito a fine di ogni tabella

<code>--extended-insert</code> insert di più righe nello stesso statement, velocizza

<code>--users</code> esporta definizioni utenti e privilegi

<code>--single-transaction</code> consistenza di lettura del db tramite transazione, evita lock sul database sorgente

<code>--default-character-set</code> imposta il characterset del dump

<code>--no-set-names</code> e <code>--skip-set-charset</code> evitano che le create tables portino il charset del database sorgente, utile se si vuole migrare charset

⚫
==Import del Dump==

mysql --database=${DB} --batch < output.sql > import.log




Riga 13: Riga 33:
select schema_name,default_collation_name,default_character_set_name from information_schema.schemata;
select schema_name,default_collation_name,default_character_set_name from information_schema.schemata;


Convertire le tabelle al nuovo codeset:
select concat('alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;')
from information_schema.TABLES where TABLE_SCHEMA='mio_schema' and table_collation='latin1_swedish_ci';


==Grandezza dei database==
==Grandezza degli schemi==
SELECT
SELECT
table_schema AS 'Schema',
table_schema AS 'Schema',

Versione attuale delle 14:53, 9 giu 2026

Creazione Dump

Dump dei dati di un singolo database

mysqldump --no-autocommit --hex-blob --single-transaction --quick --flush-logs --set-gtid-purged=OFF --log-error=output.log --result-file=output.sql --skip-lock-tables ${DB}

Se si aggiunge --no-create-info non vengono generate le DDL delle tabelle

Se si aggiunge --no-data vengono generate solo le DDL senza le insert dei dati


--disable-keys disabilita indici prima di importare e abilita indici dopo import, utile per velocizzare

--add-locks esegue lock table prima di importare, velocizza

--no-autocommit non usa autocommit ma start transaction e commit esplicito a fine di ogni tabella

--extended-insert insert di più righe nello stesso statement, velocizza

--users esporta definizioni utenti e privilegi

--single-transaction consistenza di lettura del db tramite transazione, evita lock sul database sorgente

--default-character-set imposta il characterset del dump

--no-set-names e --skip-set-charset evitano che le create tables portino il charset del database sorgente, utile se si vuole migrare charset

Import del Dump

mysql --database=${DB} --batch < output.sql > import.log


Character set e collation

 select schema_name,default_collation_name,default_character_set_name from information_schema.schemata;

Convertire le tabelle al nuovo codeset:

select concat('alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;') 
from information_schema.TABLES where TABLE_SCHEMA='mio_schema' and table_collation='latin1_swedish_ci';

Grandezza degli schemi

SELECT 
   table_schema AS 'Schema',
   ROUND(SUM(data_length + index_length) / (1024 * 1024), 2) AS 'Dimensione (MB)'
FROM 
   information_schema.TABLES
GROUP BY 
   table_schema
ORDER BY 
   SUM(data_length + index_length) DESC;