您的位置:首页 > 数据库 > MySQL

mysqlbackup

2016-05-28 23:12 337 查看
mysqlbackup 使用学习
1、设置数据库用户的相关权限

create user backupuser@'127.0.0.1' identified by '1234567890';
grant reload,replication client,super,process on *.* to backupuser@'127.0.0.1';
grant create,insert,drop,update on mysql.backup_progress to backupuser@'127.0.0.1';
grant create,insert,select,drop,update on mysql.backup_history to backupuser@'127.0.0.1';
grant lock tables,select,create,alter on *.* to backupuser@'127.0.0.1';
grant create,insert,drop,update on mysql.backup_sbt_history to backupuser@'127.0.0.1';

create user backupuser@'localhost' identified by '1234567890';
grant reload,replication client,super,process on *.* to backupuser@'localhost';
grant create,insert,drop,update on mysql.backup_progress to backupuser@'localhost';
grant create,insert,select,drop,update on mysql.backup_history to backupuser@'localhost';
grant lock tables,select,create,alter on *.* to backupuser@'localhost';
grant create,insert,drop,update on mysql.backup_sbt_history to backupuser@'localhost';


2、backup-dir

  可以看成是临时目录,备份期间mysqlbackup会向它写入一些数据

3、一个典型的mysqlbackup工作周期包涵
  1:备份
  2:校验
  3:还原

4、mysqlbackup 备份整个mysql实例

mysqlbackup --host=127.0.0.1 --port=3306 --user=backupuser --password=1234567890 --backup-dir=/tmp/backup_temp --backup-image=/root/backup/full_backup.mbi backup-to-image


  1:--backup-dir 临时目录在mysqlbackup执行备份时会向它里面写一些数据,但是备份完成之后mysqlbackup并没有自动的去删除它;如果下次再执行上面相同的命令,

  会因为backup-dir不为空而失败,所以在执行备份之前要保证这个目录是空的。

5、校验备份

mysqlbackup --backup-image=/root/backup/full_backup.mbi validate


6、还原备份

mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/root/backup/full_backup.mbi --backup-dir=/tmp/backup_temp copy-back-and-apply-log


7、一些mysqlbackup的高级玩法

  1:流式的备份到stdout

mysqlbackup --host=127.0.0.1 --port=3306 --user=backupuser --password=1234567890 --backup-image=- --backup-dir=/tmp/backup_temp backup-to-image >/tmp/3306.mbi


  2:校验一个流式备份

mysqlbackup --backup-image=/tmp/3306.mbi validate


  3:还原备份

mysqlbackup --host=127.0.0.1 --port=3306 --user=backupuser --password=1234567890 --backup-dir=/tmp/backup_temp --backup-image=/tmp/3306.mbi copy-back-and-apply-log


8、把一个单文件的备份转换为文件夹的备份

mysqlbackup --backup-image=/tmp/3306.mbi --backup-dir=/tmp/backup_temp/ image-to-backup-dir


9、把一个文件夹的备份转换成单一文件的备份

mysqlbackup --backup-image=/tmp/3306.mbi --backup-dir=/tmp/backup_temp/ backup-dir-to-image


10、查看单文件备份中所包涵的内容

mysqlbackup --backup-image=/tmp/3306.mbi list-image


11、抽取单文件中的内容到当前目录

mysqlbackup --backup-image=/tmp/3306.mbi extract


12、从单文件备份中抽取指定文件(文件的路径可以由list-image看到,) extract

mysqlbackup --backup-image=/tmp/3306.mbi --src-entry=server-all.cnf extract


13、备份时压缩 --compress --compress-level

mysqlbackup --host=127.0.0.1 --port=3306 --user=backupuser --password=1234567890 --compress --backup-dir=/tmp/backup_temp --backup-image=/tmp/full_backup.mbi backup-to-image


经过测试当前环境的压缩比大概是8/1 也就是说备份文件只是之前的1/8大小

14、用一个压缩的备份还原数据库 --uncompress

mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/tmp/full_backup.mbi --backup-dir=/tmp/backup_temp --uncompress copy-back-and-apply-log


15、演示一个全备加增备的还原过程

mysqlbackup --host=127.0.0.1 --port=3306 --user=backupuser --password=1234567890 --backup-image=/tmp/full.mbi --backup-dir=/tmp/backup_temp/ backup-to-image
rm -rf /tmp/backup_temp/*
mysqlbackup --incremental --incremental-base=history:last_backup --backup-dir=/tmp/backup_temp/ --backup-image=/tmp/incremental.mbi backup-to-image
rm -rf /tmp/backup_temp/*
cd /tmp/full/
mysqlbackup --backup-image=/tmp/full.mbi extract
cd /tmp/incremental/
mysqlbackup --backup-image=/tmp/incremental.mbi extract
mysqlbackup --backup-dir=/tmp/full apply-log
mysqlbackup --backup-dir=/tmp/full --incremental-backup-dir=/tmp/incremental apply-incremental-backup
mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/full copy-back
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: