mysql,数据库数据备份
mysql
一.数据库备份概念
1.备份分类
2.备份策略
3.备份三要素
二.完全备份操作
1.物理备份(还原),冷备份
2.逻辑备份,温备份
三.percona软件的xtrabackup工具备份(2备份,3还原),增量,差异
1.percona软件安装
2.增量备份(还原)
3.差异备份
四.binlog日志
1.binlog日志概念
2.查看binlog日志信息
3.清理binlog日志
4.自定义binlog日志存放位置:/etc/my.cnf.d/mysql-server.cnf
5.binlog日志刷新条件
6.binlog日志恢复数据
1.概念
1.备份分类
1.数据库服务状态分类:
冷备份:
停止数据库服务
温被备份:
数据库运行时备份,但对数据库性能受影响
热备份:
数据库运行
2.备份数据分类:
物理备份:备份原始文件(cp,tar)
跨平台差,备份时间长,冗余备份
逻辑备份:备份sql语句
效率低,备份和还原速度慢,锁表
2.备份策略
1.完全备份:数据冗余高,安全性高(完全重新备份)
2.增量备份:无冗余,安全性低(每次以上一次备份为参考)
3.差异备份:存在一定冗余,安全性较高(每次以完全备份为参考)
3.备份三要素
BW:备份数据时长
RPO:故障发生到数据可以恢复到的时间节点(时间差)
RTO:数据修复操作的时间长度
2.完全备份操作
1.物理备份,冷备份:
cp -r /var/lib/mysql /备份目录/mysql.bak
tar -zcf /备份目录.tar.gz /var/lib/mysql
完整操作:
50机器备份数据:
systemctl stop mysqld
mkdir /bakdir
cp -r /var/lib/mysql/ /root/bakdir/
scp -r /bakdir/mysql root@192.168.88.51:/root
51机器还原数据:
systemctl stop mysqld
rm -rf /var/lib/mysqld/*
cp -r /root/bakdir/mysql/* /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/
systemctl start mysqld
2.逻辑备份,温备份
备份:
mysqldump -uroot -p密码 库名(选项) > /目录/xxx.sql
选项:
(1)库名 表名列表 #备份库里面的表
(2)-B 库名列表 #备份多个库
(3)-A #备份所有数据
还原:
mysql -uroot -p密码 库名 < xxx.sql
注:这里的库名在恢复库时可以省略,表时不可以
3.percona软件的xtrabackup工具备份(2备份,3还原)
1.percona软件安装
(1)安装依赖包
yum -y install per-DBD-MySQL
(2)解压percona部署,mv移动
(3)配置环境变量 /etc/bashrc 或者 /root/.bashrc
文件最后追加:export PATH =/usr/local/percona/bin/:$PATH
source /配置文件目录/ #刷新配置文件
xtrabackup -v #验证
(4)xtrabackup:是一个用于 MySQL 和 Percona Server 数据库的热备份工具
2.增量备份
(1)增量备份数据
1)首次完全备份:
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --target-dir=完全备份目录
2)之后增量备份:(多次重复的代码)
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --increamental-basedir=参考目录 --target-dir=增量备份目录x
注:参考目录=上一次备份的目录
(2)增量备份恢复数据
1)准备数据
xtrabackup --prepare --apply-log-only --target-dir=/完全备份目录
2)合并数据(每次都需要合并)
xtrabackup --prepare --apply-log-only --incremental-dir=/增量备份目录x --target-dir=/完全备份目录
(多次操作,将增量备份数据和基础数据合并)
3)拷贝还原数据
systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=完全备份目录
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
3.差异备份
(1)差异备份数据
1)首次完全备份
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --target-dir=完全备份目录
2)之后差异备份
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --increamental-basedir=参考目录(不变) --target-dir=增量备份目录x
(2)差异备份数据恢复
1)准备恢复数据
xtrabackup --prepare --apply-log-only --target-dir=/完全备份目录
2)合并数据(合并最后一次的)
xtrabackup --prepare --apply-log-only --incremental-dir=/最后一次差异备份 --target-dir=/完全备份目录
3)拷贝还原数据
systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=完全备份目录
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
4.blinlog日志(保存sql语句)
1.概念
(1)保存除查询之外所有的sql
(2)可用于数据的备份和恢复
(3)配置mysql主从同步的必要条件
2.查看binlog日志信息
(1)查看当前活跃的binlog日志信息
show master status;
日志默认存储在:/var/lib/mysql/binlog.*
(2)查看所有binlog日志
show binary logs;
(3)查看binlog日志文件文件内容
show binlog events in 'mysql52.000001'
(4)查看binlog日志存储的二进制文件内容
mysqlbinlog 日志名
3.清理binlog日志
(1)清理至指定日志编号位置
purge master logs to 'mysql52.000003';
(2)重置日志
reset master;
4.自定义binlog日志存放位置:/etc/my.cnf.d/mysql-server.cnf
添加: log_bin = /mylog/mysql52 (/目录/日志名)
mkdir /mylog
chown -R mysql:mysql /mylog/
systemctl restart mysqld
5.binlog日志刷新条件
(1)数据大于1G
(2)手动执行 flush logs;
(3)重启服务
(4)mysqldump备份数据时配合--flush-logs
mysqldump --flush-logs mysql user > user.sql
6.binlog日志恢复数据
mysqlbinlog 日志名(mysql52.000001) | mysql -u用户名 -p'密码'
mysql
一.数据库备份概念
1.备份分类
2.备份策略
3.备份三要素
二.完全备份操作
1.物理备份(还原),冷备份
2.逻辑备份,温备份
三.percona软件的xtrabackup工具备份(2备份,3还原),增量,差异
1.percona软件安装
2.增量备份(还原)
3.差异备份
四.binlog日志
1.binlog日志概念
2.查看binlog日志信息
3.清理binlog日志
4.自定义binlog日志存放位置:/etc/my.cnf.d/mysql-server.cnf
5.binlog日志刷新条件
6.binlog日志恢复数据
1.概念
1.备份分类
1.数据库服务状态分类:
冷备份:
停止数据库服务
温被备份:
数据库运行时备份,但对数据库性能受影响
热备份:
数据库运行
2.备份数据分类:
物理备份:备份原始文件(cp,tar)
跨平台差,备份时间长,冗余备份
逻辑备份:备份sql语句
效率低,备份和还原速度慢,锁表
2.备份策略
1.完全备份:数据冗余高,安全性高(完全重新备份)
2.增量备份:无冗余,安全性低(每次以上一次备份为参考)
3.差异备份:存在一定冗余,安全性较高(每次以完全备份为参考)
3.备份三要素
BW:备份数据时长
RPO:故障发生到数据可以恢复到的时间节点(时间差)
RTO:数据修复操作的时间长度
2.完全备份操作
1.物理备份,冷备份:
cp -r /var/lib/mysql /备份目录/mysql.bak
tar -zcf /备份目录.tar.gz /var/lib/mysql
完整操作:
50机器备份数据:
systemctl stop mysqld
mkdir /bakdir
cp -r /var/lib/mysql/ /root/bakdir/
scp -r /bakdir/mysql root@192.168.88.51:/root
51机器还原数据:
systemctl stop mysqld
rm -rf /var/lib/mysqld/*
cp -r /root/bakdir/mysql/* /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/
systemctl start mysqld
2.逻辑备份,温备份
备份:
mysqldump -uroot -p密码 库名(选项) > /目录/xxx.sql
选项:
(1)库名 表名列表 #备份库里面的表
(2)-B 库名列表 #备份多个库
(3)-A #备份所有数据
还原:
mysql -uroot -p密码 库名 < xxx.sql
注:这里的库名在恢复库时可以省略,表时不可以
3.percona软件的xtrabackup工具备份(2备份,3还原)
1.percona软件安装
(1)安装依赖包
yum -y install per-DBD-MySQL
(2)解压percona部署,mv移动
(3)配置环境变量 /etc/bashrc 或者 /root/.bashrc
文件最后追加:export PATH =/usr/local/percona/bin/:$PATH
source /配置文件目录/ #刷新配置文件
xtrabackup -v #验证
(4)xtrabackup:是一个用于 MySQL 和 Percona Server 数据库的热备份工具
2.增量备份
(1)增量备份数据
1)首次完全备份:
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --target-dir=完全备份目录
2)之后增量备份:(多次重复的代码)
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --increamental-basedir=参考目录 --target-dir=增量备份目录x
注:参考目录=上一次备份的目录
(2)增量备份恢复数据
1)准备数据
xtrabackup --prepare --apply-log-only --target-dir=/完全备份目录
2)合并数据(每次都需要合并)
xtrabackup --prepare --apply-log-only --incremental-dir=/增量备份目录x --target-dir=/完全备份目录
(多次操作,将增量备份数据和基础数据合并)
3)拷贝还原数据
systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=完全备份目录
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
3.差异备份
(1)差异备份数据
1)首次完全备份
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --target-dir=完全备份目录
2)之后差异备份
xtrabackup --host=127.0.0.1 --user=用户名 --password=密码 --backup
--datadir=数据库目录 --increamental-basedir=参考目录(不变) --target-dir=增量备份目录x
(2)差异备份数据恢复
1)准备恢复数据
xtrabackup --prepare --apply-log-only --target-dir=/完全备份目录
2)合并数据(合并最后一次的)
xtrabackup --prepare --apply-log-only --incremental-dir=/最后一次差异备份 --target-dir=/完全备份目录
3)拷贝还原数据
systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=完全备份目录
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
4.blinlog日志(保存sql语句)
1.概念
(1)保存除查询之外所有的sql
(2)可用于数据的备份和恢复
(3)配置mysql主从同步的必要条件
2.查看binlog日志信息
(1)查看当前活跃的binlog日志信息
show master status;
日志默认存储在:/var/lib/mysql/binlog.*
(2)查看所有binlog日志
show binary logs;
(3)查看binlog日志文件文件内容
show binlog events in 'mysql52.000001'
(4)查看binlog日志存储的二进制文件内容
mysqlbinlog 日志名
3.清理binlog日志
(1)清理至指定日志编号位置
purge master logs to 'mysql52.000003';
(2)重置日志
reset master;
4.自定义binlog日志存放位置:/etc/my.cnf.d/mysql-server.cnf
添加: log_bin = /mylog/mysql52 (/目录/日志名)
mkdir /mylog
chown -R mysql:mysql /mylog/
systemctl restart mysqld
5.binlog日志刷新条件
(1)数据大于1G
(2)手动执行 flush logs;
(3)重启服务
(4)mysqldump备份数据时配合--flush-logs
mysqldump --flush-logs mysql user > user.sql
6.binlog日志恢复数据
mysqlbinlog 日志名(mysql52.000001) | mysql -u用户名 -p'密码'