MySQL的备份与恢复
Posted Zlwriii
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的备份与恢复相关的知识,希望对你有一定的参考价值。
目录
前言
随着信息技术的飞速发展,数据库作为信息系统的核心承担着重要的角色。数据库备份,是在数据丢失的情况下,能及时恢复重要的数据,防止数据丢失的一种重要手段。一个合理的数据库备份方案,应该能都在数据丢失时,有效的恢复数据,同时需要考虑技术实现的难度和有效利用资源。
一、mysql数据库备份
1.数据备份的重要性
备份的主要目的就是灾难恢复。
在生产环境中,数据的安全性至关重要。
任何数据的丢失都可能产生严重的后果。
使用数据库的过程中,有多种原因造成数据丢失:程序错误、人为操作错误、运算错误、磁盘故障、灾难(天灾)和盗窃。
2.数据库备份的分类
从物理与逻辑的角度,备份可分为:
冷备份(脱机备份):在关闭数据库时进行的备份操作,能够较好地保证数据库的完整性。
热备份(联机备份):在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件。
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。
从数据库的备份策略角度,备份可分为:
完全备份:每次对数据库进行完整的备份。
差异备份:备份从上次完全备份之后被修改过的文件。
增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份。
二、常见的备份方法
1.使用tar打包文件夹备份
MySQL的数据库默认都是保存在安装目录的data文件夹下面,可以直接保存data文件夹,但占用空间较大,可以使用tar打包压缩进行保存。
需先安装xz压缩格式工具。
[root@localhost ~]# yum install xz -y
对数据库文件夹 /usr/local/mysql/data/ 进行打包操作。
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/
[root@localhost ~]# ls /opt/
mysql-2021-10-25.tar.xz
[root@localhost ~]# systemctl start mysqld
2.使用mysqldump工具进行备份
使用mysqldump更加灵活的控制备份的内容,比如某几个表或库都可以单独备份。
格式:mysqldump -u root -p[密码] --databases 库名1 [库名2] ... > /备份路径/备份文件名.sql
[root@localhost ~]# mysqldump -u root -p123456 --databases info > /opt/info.sql #对info库进行备份
[root@localhost ~]# ls /opt/
info.sql
[root@localhost ~]# mysqldump -u root -p123456 --all databases > /opt/info.sql #对所有库进行备份
[root@localhost ~]# mysqldump -u root -p123456 数据库名 表名 > /opt/info.sql
-d参数是复制表的样式,不复制参数内容
不使用-d,会把数据也备份
三、恢复库操作
当需要恢复整库的时候,可以使用source命令和mysql命令。
1.source 命令整库恢复
2.MySQL 命令整库恢复
在不登录MySQL的情况下,可以使用mysql命令直接恢复整库。
命令格式:mysql -uroot -p密码 < 库备份的脚本路径
四、恢复表操作
恢复数据同样可以使用source命令和mysql命令操作。
1.使用source命令恢复表
2.使用mysql命令恢复表
使用mysql命令恢复表的操作时,当备份文件中只包含表的备份,而不包括创建库的语句时,必须指定库名,且目标库必须存在。
格式:mysql -u 用户名 -p密码 库名 < 库备份脚本路径
总结
从物理逻辑的角度,备份可分为物理备份(冷备份、热备份)、逻辑备份。
从数据库的备份策略角度,备份可分为完全备份、差异备份和增量备份。
MySQL中使用mysqldump工具备份,它生成的是SQL的脚本文件。
恢复数据使用mysql、source命令。
备份可以针对整库、某些库或某些表进行。
以上是关于MySQL的备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章