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'密码'

相关推荐
程序员大金8 分钟前
基于SSM+Vue的个性化旅游推荐系统
前端·vue.js·mysql·java-ee·tomcat·mybatis·旅游
老王笔记2 小时前
GTID详解
mysql
啥都想学的又啥都不会的研究生3 小时前
高性能MySQL-查询性能优化
数据库·笔记·学习·mysql·面试·性能优化
计算机学姐4 小时前
基于SpringBoot的校园求职招聘管理系统
java·前端·vue.js·spring boot·后端·mysql·intellij-idea
core5125 小时前
flink SQL实现mysql source sink
mysql·flink·jdbc·source·cdc·sink·mysql-cdc
山山而川粤6 小时前
时间管理系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
你有抖音吗6 小时前
请说下你对 MYSQL 架构的了解?
mysql·架构
今天不coding6 小时前
MySQL三大日志-Redo Log
数据库·mysql·日志·redo log·mysql日志
老王笔记6 小时前
MySQL复制问题和解决
数据库·mysql