mysql,数据库数据备份

news/2024/12/22 21:40:35 标签: 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'密码'

        
    


http://www.niftyadmin.cn/n/5795924.html

相关文章

Linux——卷

Linux——卷 介绍 最近做的项目&#xff0c;涉及到对系统的一些维护&#xff0c;有些盘没有使用&#xff0c;需要创建逻辑盘并挂载到指定目录下。有些软件需要依赖空的逻辑盘&#xff08;LVM&#xff09;。 先简单介绍一下卷的一些概念&#xff0c;有分区、物理存储介质、物…

【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类

文章目录 一、this扩展方法1、扩展方法的基本语法2、使用扩展方法3、扩展方法的注意事项5、扩展方法的限制6、总结 二、运算符重载1、C# 运算符重载2、运算符重载的基本语法3. 示例&#xff1a;重载加法运算符 ()4、使用重载的运算符5、支持重载的运算符6、不能重载的运算符7、…

String.prototype.padStart() 方法来实现日不足两位时补充零

你可以使用 String.prototype.padStart() 方法来实现日不足两位时补充零&#xff0c;这样代码更简洁。padStart() 会在字符串的前面填充指定的字符&#xff0c;直到字符串达到给定的长度。对于你的需求&#xff0c;padStart(2, 0) 会将 day 补充成两位数&#xff08;如果 day 是…

亚信安全与方天股份达成战略合作,双向奔赴助力数字化转型

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与青岛方天科技股份有限公司&#xff08;以下简称“方天股份”&#xff09;签订合作框架协议。双方强强携手&#xff0c;在网络安全运营平台共建、信息化项目安全支撑、政企市场拓展…

Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索

作者&#xff1a;来自 Elastic Jeff Vestal 了解如何使用开放爬虫与 semantic text 字段结合来轻松抓取网站并使其可进行语义搜索。 Elastic Open Crawler 演练 我们在这里要做什么&#xff1f; Elastic Open Crawler 是 Elastic 托管爬虫的后继者。 Semantic text 是 Elasti…

Vue(二)

1.Vue生命周期 Vue生命周期就是一个Vue实例从 创建 到 销毁 的整个过程。生命周期四个阶段&#xff1a; 创建阶段&#xff1a;创建响应式数据。 挂载阶段&#xff1a;渲染模板。 更新阶段&#xff1a;修改数据&#xff0c;更新视图。 销毁阶段&#xff1a;销毁Vue实例。 …

网络安全基础知识分享

目录 一. 网络安全的定义 二. 常见的网络安全威胁 三. 网络安全防范措施 四. 结语 随着数字化时代的到来&#xff0c;网络安全已成为全球范围内关注的热点问题。无论是个人用户&#xff0c;还是企业和政府机构&#xff0c;都面临着越来越多的网络安全威胁。黑客攻击、数据泄…

使用C#绘制具有平滑阴影颜色的曼德布洛特集分形

示例使用复数类在 C# 中轻松绘制曼德布洛特集分形解释了如何通过迭代方程绘制曼德布洛特集: