Linux下MySQL数据库备份和恢复

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Linux下MySQL数据库有逻辑备份和物理备份,也可以分为完全备份、部分备份。·完全备份是指备份整个数据集(即整个数据库)·部分备份是指备份部分数据集(只备份一个表)大家也可以去我的CSDN查看此文章:https://blog.csdn.net/L963029755/article/details/88026657?spm=1001.2014.3001.5502

Linux下MySQL数据库备份和恢复

Linux下MySQL数据库有逻辑备份和物理备份,也可以分为完全备份、部分备份。

·完全备份是指备份整个数据集(即整个数据库)

·部分备份是指备份部分数据集(只备份一个表)

逻辑备份最大优点是对于各种存储引擎,都可以使用同样的方法来备份。而物理备份则不同,不同的存储引擎有着不同的备份方法。

mysqldump基本语法

mysqldump -uUsername -pPassword dbname table1 table2 … > BackupName.sql

备份多个数据库

mysqldump -uUsername -pPassword --databases dbname1 dbname2 … > Backup.sql

备份所有数据库

mysqldump -uUsername -pPassword -all-databases > BackupName.sql

MySQL 完全备份和恢复

备份某—个数据库: mysqldump -uUsername -pPassword 数据库名 > /root/XXX.bak

会将指定的数据库备份至roo家目录下,文件名为XXX.bak

恢复: mysql -uUsername -pPassword 数据库名 < /root/XXX.bak

MySQL 增量备份

验证和配置是否启动二进制日志功能。进行增量备份前,要启动二进制日志功能,首先使用vi /etc/my.cnf,打开配置文件,查看是否有log-bin配置行。因此添加此配置即可,输入内容:log-bin=/var/lib/mysql/sql_backup,然后保存my.cnf文件并退出。具体操作如图所示:MySQL-1.png

重新启动mysql服务,并且到目录/var/lib/mysql下查对应文件:索引文件sql_backup.index和文件sql_backup.000001,如出现以上两个文件,说明二进制日志功能开启成功了。

service mysqld restartcd /var/lib/mysql/
ls

MySQL-2.png

在进行增量备份时,需要做一次完全备份,输入命令:

mysqldump -uUserName -pPassword --lock-all-tables --flush-logs --delete-master-logs 数据库名 > /root/完全备份文件名.sql说明:在进行增量备份时,使用的参数解释如下:
--lock-all-tables 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性;--flush-logs为结束当前日志,生成新日志文件;--delete-master-logs 则清除以前的日志,以释放空间;

进行增量备份。我们使用上一步中的flush- logs时间点来进行备份,执行以下命令:

mysqladmin -uUserName -pPassword flush-logs

在/var/mysql/目录下看到新生产的日志文件:sql_backup.000002

做恢复增量备份前,需要恢复完全备份。执行以下命令:

mysql -uUsername -pPassword 数据库名 </root/完全备份文件名.sql

导入增量备份,执行以下命令:

mysqlbinlog /var/lib/mysql/sql_backup.000002| mysql -uUsername -pPassword 数据库名

Linux自动备份

开启Linux crond 服务:service crond startcd root/

在root/下编写一个自动化脚本:vi bak.sh

MySQL-3.png

通过执行命令chmod +x bak.sh为bak.sh赋予执行权限:chmod +x bak.sh 
crontab文件中,加入计划任务。假设我们每天1点30分开始备份,命令如下:crontab -e

MySQL-4.png

验证计划任务是否添加成功,输入命令:crontab -l

MySQL-5.png

确认一下crontab有没有开机启动,避免服务器重启后计划任务时效,输入命令:

chkconfig --list crond

MySQL-6.png

上图中,我们看到2、3、4、5状态下都是启动的,所以可以确认会开机自启动。

至此,每日的1点30分将会在目录/root/下自动产生数据库的一份全备。


目录
相关文章
|
9天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2天前
|
SQL 数据库 数据安全/隐私保护
如何手动备份数据库?
如何手动备份数据库?
7 1
|
19天前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
20 3
|
18天前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
18天前
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
97 1
|
SQL 关系型数据库 MySQL
第19章 数据库备份与恢复【4.日志与备份篇】【MySQL高级】2
第19章 数据库备份与恢复【4.日志与备份篇】【MySQL高级】2
195 0
|
1月前
|
运维 关系型数据库 MySQL
"MySQL运维精髓:深入解析数据库及表的高效创建、管理、优化与备份恢复策略"
【8月更文挑战第9天】MySQL是最流行的开源数据库之一,其运维对数据安全与性能至关重要。本文通过最佳实践介绍数据库及表的创建、管理与优化,包括示例代码。涵盖创建/删除数据库、表结构定义/调整、索引优化和查询分析,以及数据备份与恢复等关键操作,助您高效管理MySQL,确保数据完整性和系统稳定运行。
87 0
|
4月前
|
SQL 关系型数据库 MySQL
mysql数据库备份 与恢复 win下的mysql数据备份
mysql数据库备份 与恢复 win下的mysql数据备份
41 1
|
4月前
|
SQL 存储 关系型数据库
mysql数据库备份与恢复
mysql数据库备份与恢复
114 0
|
12月前
|
关系型数据库 MySQL 数据库
自建MySQL 5.7数据库备份上云
本场景介绍用户从OSS拉取数据库备份文件,并导入到RDS备份管理仓库,RDS会对导入后的备份文件进行校验,并生成一个云盘快照,通过该快照可以在3-5分钟内快速拉起RDS实例,实现准实时灾备响应。
269 0

热门文章

最新文章