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

相关推荐
逻极2 分钟前
数据分析项目:Pandas + SQLAlchemy,从数据库到DataFrame的丝滑实战
python·mysql·数据分析·pandas·sqlalchemy
luoluoal15 分钟前
基于python的英汉电子词典软件(源码+文档)
python·mysql·django·毕业设计·源码
UCH1HA29 分钟前
MySQL主从复制与读写分离
linux·mysql·集群
自燃人~1 小时前
为什么MySQL用b+不用B数
数据库·mysql
warton882 小时前
ubuntu24.04 安装mysql8.0.36
linux·运维·mysql
小Mie不吃饭2 小时前
Oracle vs MySQL 全面对比分析
数据库·mysql·oracle
扶尔魔ocy3 小时前
【linux C】在mysql中增加自定义的C动态库
linux·运维·mysql
kabcko4 小时前
CentOS安装Mysql
mysql·adb·centos
ruleslol4 小时前
MySQL 工具使用指南
mysql
爱学java的ptt4 小时前
mysql的存储引擎
数据库·mysql