wdcsx 发表于 2018-9-30 06:47:03

MySQL的几种备份工具

  mysql备份和恢复
  注意:备份不成功的原因可能是版本不一样,需执行命令#cp /usr/local/mysql/bin/mysqldump|mysqlhotcop|mysqlimport/usr/local/bin/
  (1)mysqldump备份工具
  备份数据库下的表
  # mysqldump -u root -paixocm --opt test c01 c02 c03 > /employees.sql         \\备份
  # mysql -u root -paixocm --database test < employees.sql         \\恢复
  备份指定数据库
  # mysqldump -u root -paixocm --opt --database test > /employees.sql
  # mysql -u root -paixocm < employees.sql
  备份所有数据库
  # mysqldump -u root -paixocm --opt --all-databases > /employees.sql
  锁定和解锁所有表
  mysql> FLUSH TABLES WITH READ LOCK;
  mysql> unlock tables;
  锁定指定表
  mysql> lock table cware read;
  mysql> unlock tables;             \\解锁
  查看锁定表
  mysql> show open tables where in_use > 0;
  (2)mysqlhotcopy
  # mysqlhotcopy -u root -h localhost -p aixocm sxjy test /test/mydata
  (3)mysqlimport(从文件导入数据到数据库)
  # mysqlimport -u root -paixocm --fields-terminated-by=' ' --lines-terminated-by='\n' --local test(数据库名)/test/weblog.txt(文件名应和表名一致)
  (4)xtrabackup
  # tar xf percona-xtrabackup-2.2.12-Linux-x86_64.tar.gz
  # mv percona-xtrabackup-2.2.12-Linux-x86_64 /usr/local/xtrabackup
  # cp /usr/local/xtrabackup/bin/*/usr/bin/            (不然会报错:innobackupex命令没有找到)
  # yum install perl-Time*
  (5)innobackupex
  普通备份(全量备份)
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock /test/mydata/ (以当前的时间戳命名)
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock--no-timeatamp/test/mydata/1   (以1命名)
  恢复备份   (要把/database/mydata/目录下的内容全部删除,再stop服务,备份完之后要修改/database/mydata下的权限)
  # innobackupex --apply-log /test/mydata/2015-08-13_23-24-40      \\备份之前先应用日志
  # innobackupex --copy-back /test/mydata/2015-08-13_23-24-40          \\备份日志
  压缩备份
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock --stream=tar /test/mydata/ 2> /tmp/backup/mysql1.log | gzip > /test/mydata/mysql.tar.gz
  备份恢复
  # tar -ixf mysql.tar.gz -C /database/mydata/
  增量备份
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock --incremental /test/mydata/ --incremental-basedir=/test/mydata/2015-08-13_23-24-40
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock --incremental --incremental-basedir=/test/mydata/2015-08-13_23-24-40/ /test/mydata/         (基于全量备份的增量备份)
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock --incremental /test/mydata/ --incremental-basedir=/test/mydata/2015-08-13_23-24-40
  # innobackupex --user=root --password=aixocm --socket=/tmp/mysql.sock --incremental /test/mydata --incremental-basedir=/test/mydata/2015-08-13_23-29-04/ /test/mydata/      (基于第一个增量备份的第二个增量备份)
  备份恢复
  在所有备份目录下重做已提交日志
  # innobackupex --apply-log --redo-only /test/mydata/2015-08-14_14-36-31\\重做全量备份日志
  # innobackupex --apply-log --redo-only /test/mydata/2015-08-14_14-36-31 --incremental-dir=/test/mydata/2015-08-14_14-39-05\\重做增量备份日志
  # innobackupex --apply-log /test/mydata/2015-08-14_14-36-31 --incremental-dir=/test/mydata/2015-08-14_14-41-17\\应用最后一个增量备份日志
  # innobackupex --apply-log /test/mydata/2015-08-14_14-36-31\\重新应用全量备份日志

页: [1]
查看完整版本: MySQL的几种备份工具