C'est le but de faire plus d'io :) avec une thread d'import tu ne vas pas exploiter les capacité de ton serveur.
Ce qui te limite c'est MySQL. Ce n'est pas un problème de conf. Le disable/enable keys est très important.
Si tu ne changes pas de version de MySQL tu peux le faire avec une simple copie (voire même un rsync avec le dernier suite à un lock+flush).
Si tu changes de version il vaut mieux faire un export/import pour bien reconstruire les données. Le 10 déc. 2013 14:43, "Axel Vittecoq" avittecoq@multiposting.fr a écrit :
oui mysqldump c'est une mauvaise idée en fin de compte. j'ai lançé ça un peu vite avant le WE en pensant que 2 jours lui suffirait !
les import parallèles ça ferait plus d'IO en même temps donc pas forcement mieux?!
le load data à l'air intéressant, ça nécessite un peu de préparation d'abord quand même
au final je pensais faire, comme suggéré, un backup à froid: une copie du datadir (/var/lib/mysql) d'un slave que je peux arrêter à souhait.
ou dans le même genre j'ai repéré ça http://www.percona.com/software/percona-xtrabackup pour du hotbackup mais ça doit bien marcher à froid.
full InnoDB
[mysqld]
character-set-server = utf8 user = mysql port = 3306 socket = /var/run/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysql/mysqld.err log-slow-queries = /var/log/mysql/mysqld-slow_queries.log long_query_time = 300 basedir = /usr datadir = /var/lib/mysql/db-master skip-external-locking key_buffer = 16M max_allowed_packet = 32M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K default-storage-engine = INNODB innodb_buffer_pool_size = 100G innodb_additional_mem_pool_size = 20M innodb_data_file_path = ibdata1:10M:autoextend:max:10G innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_log_files_in_group=2 innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_file_per_table
tmpdir en tmpfs innodb_flush_log_at_trx_commit = 0 pour le moment
Le 9 décembre 2013 23:10, Greg greg-frsag@duchatelet.net a écrit :
C'est vrai que c'est trop lent... Peux ton avoir une partie de la config MySQL ? Ce sont des tables InnoDB ?
Le 9 décembre 2013 20:21, DjinnS DjinnS snnijd@gmail.com a écrit :
Salut,
Fais un dump par table. Ensuite tu importes en parallèle. Par exemple tu fais 4 threads d'import. L'idée c'est de répartir les tables équitablement.
Dans ton dump mets les options pour le disable keys/ensable keys.
La parallélisation te permettra de tirer parti de ton hard.
Dans l'idéal tu peux aussi passer par un autre disque que le serveur final. Sur un lan privé tu auras tendance à "piper" le dump direct vers l'import. Tu gagnes sur les io.
-- Guillaume Le 9 déc. 2013 19:36, "Joël DEREFINKO" joel.derefinko@118218.fr a écrit :
A voir aussi : si tes tables contiennent des index (ce dont je ne doute pas vu la volumétrie), il est préférable supprimer les index avant le restore (donc idéalement avant le dump).
Pourquoi ? à chaque insert, les index sont recalculés. Si au début ca va vite, après quelques millions de lignes, ca devient plus coton.
Une fois la restore faite, remettre les index en place.
Joël.
*From:* frsag-bounces@frsag.org [mailto:frsag-bounces@frsag.org] *On Behalf Of *Thomas Pedoussaut *Sent:* lundi 9 décembre 2013 16:39 *To:* Axel Vittecoq *Cc:* French SysAdmin Group *Subject:* Re: [FRsAG] import dump MySQL très lent
On 2013-12-09 16:33, Axel Vittecoq wrote:
Bonjour,
Je vous expose mon problème:
Nous avons pris ce serveur http://www.ovh.co.uk/dedicated_servers/enterprise/2014-SP-128.xml + Raid hard
pour y migrer notre master MySQL
actuellement c'est un Raid0 soft de SSD, 24G RAM, Xeon i7 W3520
Il y a environ 400G à migrer selon:
SELECT table_schema "DB Name", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;
J'ai fait un dump classique (qui pèse 200G). le dump a été transféré sur le serveur.
J'importe le dump dans MySQL (mysql < /mon/dump.sql)
Mauvais outils .....
http://dev.mysql.com/doc/refman/5.6/en/load-data.html
Sinon jouer avec alter table ... disable keys / enable keys.
-- Thomas
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/