mysqlbackup使用
安装mysqlbackup
(从各种渠道获得mysqlbackup后)
mysqlbackup是二进制文件,可直接使用
首先将mysqlbackup加入到系统环境中,
cd /usr/bin
ln -s /home/meb-4.0.3/bin/mysqlbackup #(这里是你的mysqlbackup的bin目录文件位置)
vim /etc/profile
(在这文件中添加)
PATH=/home/meb-4.0.3/bin/:$PATH
export PATH
输入以上信息
source /etc/profile
这时mysqlbackup已经可以在任意目录下使用了
完整备份
mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --socket=/...... --with-timestamp --user=用户 --password=密码 --backup-dir=/var/lib/backup backup-and-apply-log
--defaults-file mysql配置文件目录
--socket socket目录 (默认不用输入,如果使用的时候报错在/……未找到socket,通过find命令来查找mysqld.sock文件,在通过软连接ln将两个目录打通)
--with-timestamp 以时间来生成文件名
--user 用户
--password 密码
--backup-dir 备份文件目录
backup-and-apply-log 备份并检查日志文件
恢复完整备份
service mysql stop
mysqlbackup --defaults-file=/etc/mysql.conf.d/mysqld.cnf --datadir=/var/lib/mysql --backup-dir=/var/lib/backup/备份目录 copy-back
--datadir 当前数据库相应的数据文件所在位置
--backup-dir 当前备份目录
copy-back 把back-dir复制到datadir中
在恢复时报错未找到innodb配置,两种方法解决,第一种在mysqld.cnf添加innodb的配置文件,具体配置在备份文件backup-my.cnf中,第二种方法直接将 --defaults-file指定到备份文件的backup-my.cnf目录
在还原后,修改mysql这个目录和mysql里面的文件内容都把权限修改成mysql,否mysql无法启动
增量备份
注:不能用apply-log的完整备份
1.mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --socket=/...... --with-timestamp --user=用户 --password=密码 --backup-dir=/var/lib/backup backup
第一次增量备份
2.mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --user= --password --with-timestamp --incremental --incremental-base=dir:/var/lib/backup/2020_11_03_09_23_32/ --incremental-backup-dir=/var/lib/backup/inc/ backup
--incremental 表示增量备份
--incremental-base 基于哪个备份的备份
--incremental-backup-dir 增量备份的备份存放目录
第二次增量备份
mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --with-timestamp --user=用户 --password --incremental --incremental-base=dir:/var/lib/backup/inc/2020_11_04_11_22_33/ --incremental-backup-dir=/var/lib/backup/inc/ backup
注:第二次incremental-base的位置是第一次增量备份的位置
恢复增量备份
//1.使用apply-log将完整备份做成最终备份
mysqlbackup --backup-dir=/var/lib/backup/2020_11_03_09_23_32/ apply-log
//2.将第一次增量备份备份完整备份中
//mysqlbackup --incremental-backup-dir=/var/lib/backup/inc/2020_11_04_11_22_33/ --backup-dir=/var/lib/backup/2020_11_03_09_23_32/ apply-incremental-backup
将第二次增量备份备份到完整备份中
mysqlbackup --incremental-backup-dir=/var/lib/backup/inc/2020-11-05_13-23-53/ --backup-dir=/var/lib/backup/2020_11_03_09_23_32/ apply-incremental-backup
最后物理还原
mysqlbackup --defaults-file=/etc/mysql/mysql.cond.d/mysqld.cnf --backup-dir=/var/lib/backup/2020_11_03_09_23_32/ copy-back
//apply-incremental-backup 每一个增量备份刷新日志
制作单文件备份
mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --socket=/…… --user= --password= --with-timestamp --backup-dir=/var/lib/backup/ --backup-image=backup1.mbi backup-to-image
--backup-image 设置备份镜像的镜像名
backup-to-image 单文件备份
单文件还原
mysqlbackup --defaults-file=/var/lib/mysql.conf.d/mysqld.cnf --backup-image=/backup/date/backup.mbi image-to-backup-dir (将单文件备份转换成通常文件形式)
单文件的增量备份同普通增量备份
单文件增量备份还原
mysqlbackup --backup-dir=/var/lib/backup/ --backup-image=/var/lib/backup/img/date/backup1.mbi image-to-backup-dir 将image文件转换成普通备份文件
mysqlbackup --backup-dir=/var/lib/backup/img/date apply-log
mysqlbackup --backup-dir=/var/lib/backup/img/date --incremental-backup-dir=/var/lib/backup/inc/date1 apply-incremental-backup
mysqlbackup --backup-dir=/var/lib/backup/img/date --incremental-backup-dir=/var/lib/backup/inc/date2 apply-incremental-backup
mysqlbackup --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --backup-dir=/var/lib/backup/img/date copy-back-and-apply-log
查看单文件备份
mysqlbackup --backup-image=/var/lib/backup/img/backup1.mbi list-image
提取单文件备份(1 or 2)
1.使用image-to-backup-dir提取备份文件(不能选择目录??)
mysqlbackup --backup-image=/var/lib/backup/img/backup1.mbi --backup1.mbi --backup-dir=/var/lib/backup image-to-backup-dir
or
2.使用extract将备份文件在指定目录中解开
mysqlbackup --backup-image=/var/lib/backup/img/backup1.mbi --backup-dir=/var/lib/backup/unpack/ extract
提取单文件备份中的指定文件
使用 --src-entry提取备份文件中的指定文件
mysqlbackup --backup-image=/var/lib/backup/img/imgtest1.mbi --src-entry=meta/image_files.xml extract
--src-entry 是提取--backup-image中的imgtest1.mb1的文件
使用--dst-entry可以将指定文件解开至指定目录
mysqlbackup --backup-image=/var/lib/backup/img/backup1.mbi --src-entry=meta/image_files.xml --dst-entry=/var/lib/backup/unpack/myimage_files.xml extract
--dst-entry 将src-entry文件提取出来
参数:--defaults-file= mysql配置文件参数
--socket mysql的套接字接口
--with-timestamp 一创建以时间命名的子目录(时间戳)
--backup-dir 备份文件保存位置
backup-and-apply-log 备份和同步日志一起执行
--datadir 当前数据库文件所在位置
--uncompress 在操作期间解压缩备份
--start-lsn 指定上一个备份中包含的最高lsn值
--src-entry 标识要从单个文件备份中提取的文件或目标
--slave-info 捕获设置相同副本服务器所需的信息
--rename 在要还原的 --include表选项选择单个表时重命名该表
--port 要连接到TCP端口号
--incremental-bakcup-dir 指定增量备份的位置
--incremental-base 基于哪个备份的备份
--incremental 指定关联的备份或备份操作时增量备份
--encrypt-password 加密密码,用户提供的密码
--force 强制写入
--skip-binlog 在备份期间不包含二进制日志文件,或在还原期间不还原二进制日志文件
--skip-unused-pages 备份innodb表时,跳过表空间中未使用的页面
--show-progress 显示进度
--compress-level 压缩(level从1到9)
--uncompress 解压
--only-innodb 只备份innodb相应的数据表文件
--list-image 查看单文件备份
image-to-backup-dir 恢复单文件
extract 从单个文件备份中解包单个文件或目录。它可用于故障排除或不需要完整备份数据的恢复。生成的文件或目录进入当前目录,或进入备份目录,如果使用--backup-dir 指定;在这两种情况下,目标目录都必须为空。