Архивирайте MySQL база данни с MyISAM & InnoDB таблици

Имам MySQL база данни със смесени таблици (MyISAM, InnoDB).

Как мога да създам пълно архивиране на базата данни с mysqldump чрез командния ред на Linux, каква опция трябва да използвам?


person user3535392    schedule 28.08.2015    source източник
comment
Не мисля, че това принадлежи на StackOverflow. Най-доброто място да зададете този въпрос би било на dba.stackexchange.com   -  person MeanGreen    schedule 28.08.2015


Отговори (2)


използвайте по-долу-

Обща команда за всички db е-

mysqldump -uroot -proot123 -A > /path/mydbbackup.sql

Ако искате да вземете няколко или всички db по ваш избор, тогава-

mysqldump -uroot -proot123 -B mydb1 mydb2 mydb3 > /path/mydbbackup.sql

Ако искате да избегнете заключване, използвайте опцията за единична транзакция-

mysqldump --single-transaction -uroot -proot123 -A > /path/mydbbackup.sql

Ако искате да направите конкретен db архив, тогава-

mysqldump -uroot -proot123 mydb > /path/mydbbackup.sql

Ако искате да направите резервно копие на маса, тогава-

mysqldump -uroot -proot123 mydb mytable > /path/mydbbackup.sql

където потребителското име е root и паролата е root123, можете да промените според вашите

Забележка: помощната програма mysqldump взема резервни копия на innodb и myisam.

person Zafar Malik    schedule 28.08.2015

В момента няма удобно решение:

  • MyISAM таблиците се нуждаят от опцията --lock-tables
  • InnoDB таблиците се нуждаят от опцията --single-transaction --skip-lock-tables

И двата варианта се изключват взаимно. Първо трябва да изберете бази данни и след това да ги изхвърлите отделно.

Or...

Ако имате бази данни с двата типа таблици, просто стартирайте mysqldump два пъти...

person Tomasz Oleksiewicz    schedule 08.04.2017
comment
Поне при последните mysql, --single-transaction автоматично изключва --lock-tables - person Juanga Covas; 10.08.2019