MySQL备份与恢复
????博客主页: 微笑的段嘉许博客主页
????欢迎关注????点赞????收藏⭐留言????
????本文由微笑的段嘉许原创!
????51CTO首发时间:????2022年10月日18????
✉️坚持和努力一定能换来诗与远方!
????作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
⭐本文介绍⭐
随着自动化办公与电子商务的不断发展,企业对于信息系统的依赖性越来越高,而且数据在信息系统中担任着非常重要的角色。尤其一些对数据可靠性要求非常高的行业,如银行、证券、电信等,如果发生意外宕机或数据丢失,其损失是非常严重的。为此数据库管理员必须针对具体的业务要求制定详细的数据备份与灾难恢复的策略,并通过模拟故障对每种的情况进行严格的测试,从而保证数据的可靠性。
????理论讲解:
数据库备份概论
备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。本文将从生产运维的角度了解备份恢复的分类与方法。
数据备份的重要性
在企业中数据的价值至关重要,数据保障了企业业务的正常运行。因此,数据的安全性及数据的可靠性是运维的重中之重,任何数据的丢失都可能对企业产生严重的后果。通常情况下造成数据丢失的原因有如下几种:
- 程序错误
- 人为操作错误
- 运算错误
- 磁盘故障
- 灾难(如火灾、地震)和盗窃
数据库备份类型
从物理与逻辑的角度
数据库备份可以分为物理备份和逻辑备份。物理备份是对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。这种类型的备份适用于在出现问题时需要快速恢复的大型重要数据库。
物理备份又可以分为冷备份(脱机备份)、热备份(联机备份)和温和备份。
- 冷备份:在数据库关闭状态下进行备份操作
- 热备份:在数据处于运行状态时进行备份操作,该备份方法依赖数据库的日志文件。
- 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。
逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据库结构(CREATEDATABASE,CREATE TABLE语句)和内容(INSERT语句或分隔文本文件)的信息。这种类型的备份适用于可以编辑数据值或表结构较小的数据量,或者在不同的机器体系结构上重新创建数据。
从数据备份的策略角度
从数据库的备份策略角度,数据库的备份可以分为完全备份、差异备份和增量备份。
- 完全备份:每次对数据进行完整的备份,即对整个数据库的备份,数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础。完全备份的备份与恢复此操作都非常简单方便,但是数据存在大量的重复,并且会占用大量的磁盘空间,备份的时间也很长。
- 差异备份:备份那些自从上次完全备份之后被修改的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据时,只需要恢复上次的完全备份与最近的一次差异备份。
- 增量备份:只有那些在上次完全备份或者增量备份后被修改的文件会被备份。以上次完整备份或上次大的增量备份的时间为时间点,仅备份者之间的数据变化,因而备份的数据量小,占用空间小,备份速度快。但恢复时,需要从上次一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复,如中间某次的备份数据损坏,将导致数据丢失。
常见的备份方法
MySQL数据库的备份可以采用很多种方式,如直接打包数据库文件(物理冷备份)、专用备份工具(mysqldump)、二进制日志增量备份、第三方工具备份等。
物理冷备份
物理冷备份时需要在数据库处于关闭状态下,能够较好地保证数据库的完整性。物理备份一般用于非核心业务,这类业务一般都允许中断,物理冷备份的特点就似乎速度快,恢复时也是最为简单的。通常通过直接打包数据库文件。
专用备份工具mysqldump或mysqlhotcopy
mysqldump程序和mysqlhotcopy都可以做备份,mysqldump是客户端常用逻辑备份程序,能够产生一组被执行以再先原始数据库对象定义额表数据的SQL语句。它可以转储一个到多个MySQL数据库,对其进行备份或传输到远程SQL服务器。mysqldump更为通用,因为它可以备份各种表。mysqlhotcopy仅适用于某些存储引擎
mysqlhotcopy是由Tim Bunce最初编写和贡献的Perl脚本。mysqlhotcopy仅用于备份mylSAM和ARCHIVE表。它只能运行在UNIX或Linux上。
通过启用二进制日志进行备份
MySQL支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制,对执行备份点后进行行的数据库更改为所需的信息进行恢复。如果进行增量备份(包括自上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志。
通过第三方工具备份
Percona XtraBackup是一个免费的MySQL热备份软件,支持在线热备份Innodb和XtraDB,也可以支持MySQL表备份,不过MylSAM表的备份要在表锁的情况进行。
Percona XtraBackup有三个主要工具:xtrabackup、innobackpex、xbstream,其中:
- xtrabackup:是一个编译了的二进制文件,只能备份Innodb/Xtradb数据文件。
- innodbackupex:是一个封装了xtrabackup的Perl脚本,除了可以备份Innodb/Xtradb之外,还可以备份MylSAM。
????实验配置与实现:
拓扑图:
推荐步骤:
在Centos01上安装Mysql数据库服务,生成服务器其配置文件,添加系统服务优化命令初始化mysql,
设置访问密码登录 mysql 数据库
在 Centos01 的 mysql 服务器上创建数据库,数据库创建表修改表中数据
授权用户访问 Mysql 数据库增强数据库安全和数据库远程管理
实验步骤:
一、部署 Mysql 数据库系统
1、配置 yum 仓库安装依赖软件
1)挂载系统盘到mnt目录
2)删除自带的yum仓库、配置本地的yum仓库
3)安装依赖程序
2、切换 mysql 程序光盘解压源代码程序
1)卸载系统光盘挂载点
2)切换到mysql程序光盘
3)挂载mysql程序光盘
4)解压源代码到usr/src/目录
3、配置安装mysql
1)配置mysql
2)编译安装MySQL
3)创建管理MySQL组和用户
4)修改目录所有者
5)生成MySQL主配置文件覆盖原有文件
6)生成服务添加执行权限添加为系统服务设置开机自动启动
7)优化MySQL执行命令
8)初始化MySQL
4、控制MySQL服务MySQL数据可设置密码
1)启动MySQL服务
2)空密码登录MySQL数据库和退出
3)设置MySQL数据库密码使用账户密码登录
二、MySQL数据库表和记录管理
1、数据库管理
1)登录MySQL数据创建数据库名字
2)查看创建的数据库
3)切换到创建的 HB3035 数据库和 mysql 数据库
4)删除 HB3035 数据库查看创建的数据库
2、数据库表的管理
1)创建 accp 数据库,在 accp 数据库创建 student 表,设置表格 4 列数据三类为字符串 1 列数据为整数类
2)查看创建的表结构
3)切换到 accp 数据库,查看创建的表
4)删除创建的student表
3、表中记录管理
1)student 表中插入连续列数据
2)student 表中插入不连续列数据
3)查看表中student所有数据
4)查看 student 表的姓名和身份号码列数据
5)修改 stdeunt 表中数据给胡炎添加年龄和电话
6)查看修改后的数据
7)查看姓名是胡炎的数据
8)删除 accp 数据库的 student 中记录名字是胡炎的记录
9)查看删除后的数据
三、授权用户管理数据和远程管理数据库修改数据库密码
1、授权和撤销授权的配置
1)授权用户 bob 对 accp 数据库下的所有表拥有完全控制权限通过远程计算机
192.168.100.30 访问
2)查看授权的 bob 用户权限
3)撤销授权
2、授权远程 Linux 的客户端访问 mysql 数据库
1)挂载 Linux 系统光盘
2)配置 yum 仓库
3)安装 mariadb 客户
4)在 mysql 数据库授权 tom 用户完全控制权限通过主机 192.168.100.20 访问数据库服务器写入数据
5)Linux 系统 Mysql 客户端远程访问 mysql 数据库
3、授权远程 Windows 客户端访问 Mysql 数据库
1)在 Windows10 客户端安装 Navicat
2)接收协议许可条款
3)指定一下安装位置
4)创建桌面图标安装客户端
5)安装完成客户端
6)找到安装目录可执行文件激活客户端
7)mysql 服务器授权 192.168.100.40 通过 ljm 用户密码为 pwd@1234 访问任意数据库和表
8)客户端连接 mysql
9)使用客户端查看数据
????作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!