当前位置: 首页 > news >正文

mysql基础(二)五分钟掌握全量与增量备份

全量备份

Linux环境

数据备份

数据库的备份与恢复有多中方法,通过mysql自带的mysqldump工具可对数据库进行备份。语法:

mysqldump -u username -p password --databases db_name > file_name .sql

说明:

-u参数指定用户名,username 填入用户名;

-p参数指定用户密码,password 填入用户密码;

–databases参数指定要导出的数据库,可以是一个或者多个,多个数据库用空格分开,db_name填入要备份的数据库;

file_name填入导出的文件名称,可以是文件的绝对路径,文件的格式可以.db文件或者.sql文件。

mysqldump 并不是在mysql命令行中运行,是一个可执行文件,安装mysql后在安装目录下会有该工具。以linux为例,比如mysqldump 工具在/usr/bin路径下。导出某个数据库:

[root@201 mysqlback]# /usr/bin/mysqldump -u root -p123456 --databases mysql_test > /share/mysql_test.db

导出所有数据库使用–all-databases参数

[root@201 mysqlback]# /usr/bin/mysqldump -u root -p 123456 --all-databases > /share/all.db

数据恢复

数据库的恢复可以使用source命令执行,进入mysql的命令行,执行以下命名。

mysql> source /share/mysql_test.sql;
query ok, 0 rows affected (0.06 sec)

windows环境

cmd命令行备份

语法同上,比如把temp数据库备份到 d:\temp.bak

mysqldump –u root –p123456 temp > d:\temp.bak

如果你希望备份是数据库的某几张表,可以在数据库后面加要备份的表名称,比如:

mysqldump –u root –p123456 temp dept > d:\temp.dept.bak

数据恢复

进入mysql控制台,使用source命令备份文件恢复我们的数据,比如:

mysql>source d:\temp.dept.bak

定时备份

把备份数据库的指令,写入到 bat文件, 然后通过任务管理器去定时调用 bat文件执行备份,比如新建一个bakTask.bat,里面写入mysql的备份命令:

F:\MySQL\bin\mysqldump -u root -p123456 temp dept > d:\temp.dept.bak

如果你的mysqldump.exe文件路径有空格,则一定要使用双引号 “ ” 包裹。把bakTask.bat做成一个任务,并设置每天定时调用。具体步骤如下:

(1) windows搜索“任务计划程序”,打开windows的任务计划程序。
在这里插入图片描述

(2)选中任务计划程序库,右键创建基本任务,输入任务名称,选择触发时间,最后选中bakTask.bat文件,下一步完成任务计划程序的创建。
在这里插入图片描述

增量备份

一个完整的备份方案应当包含全量备份与增量备份,下面以windows环境为例,讲解mysql的增量备份。当启用增量备份之后,mysql会以二进制的形式把用户对数据库的操作记录到文件中。需要注意的是,增量备份并不会记录所有的数据库操作。通常对ddl语句 (create alter drop),dml语句 (insert update delete),dcl语句(grant revoke set commit rollback)进行记录,而不会记录dql语句(select),因为数据查询语句并不会影响数据的完整性。增量备份通常会记录数据库操作语句、操作时间、操作位置等内容。

启用增量备份

在进行增量备份之前需要查看一下mysql 是否开启log_bin

mysql> show variables like '%log_bin%';+---------------------------------+-------+| Variable_name          | Value |+---------------------------------+-------+| log_bin             | OFF  || log_bin_basename         |    || log_bin_index          |    || log_bin_trust_function_creators | OFF  || log_bin_use_v1_row_events    | OFF  || sql_log_bin           | ON   |+---------------------------------+-------+

log_bin为off说明还没有开启log_bin。找到mysql安装目录下的my.ini或者my.conf文件,启用log_bin二进制备份,在[mysqld]下新增以下配置

[mysqld]#启用增量备份,双引号及双反斜杠log-bin=log-bin=F:\\MySQLbinlog\\log-binserver-id=1

重启mysql服务后生效,对数据库进行操作时将会生成log-bin.000001、log-bin.index文件。log-bin.000001文件写满后继续生成log-bin.000002文件,以此类推,是数据库操作日志文件。log-bin.index记录着操作日志文件的路径。

log-bin操作日志文件用文本编辑器是无法查看的,需要用mysql自带的工具进行查看。

F:\MySQL\bin>mysqlbinlog.exe F:\MySQLbinlog\log-bin.000001
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'

在使用mysqlbinlog工具查看时可能会报unknown variable 'default-character-set=utf8’的错误,可以使用以下命令查看

>mysqlbinlog.exe --no-defaults --base64-output=decode F:\MySQLbinlog\log-bin.000001
>mysqlbinlog.exe F:\MySQLbinlog\log-bin.000002 > tmp.sql

在这里插入图片描述

关于增量备份的恢复我们放到下一篇讲。

http://www.lryc.cn/news/617933.html

相关文章:

  • OCSSA-VMD-Transformer轴承故障诊断,特征提取+编码器!
  • 视频剪辑的工作流程
  • socket编程TCP
  • 自然语言处理实战:用LSTM打造武侠小说生成器
  • 银河通用招人形机器人强化学习算法工程师了
  • IoT/透过oc_lwm2m/boudica150 源码中的AT指令序列,分析NB-IoT接入华为云物联网平台IoTDA的工作机制
  • openpnp - 顶部相机环形灯光DIY
  • Godot ------ 平滑拖动03
  • 企业高性能 Web 服务部署实践(基于 RHEL 9)
  • Jupyter lab保姆级教程和自动补齐功能实现
  • VMware 安装Ubuntu server 20.04
  • IPCP(IP Control Protocol,IP控制协议)
  • Rust 库开发全面指南
  • 《C++中 type_traits 的深入解析与应用》
  • 10种经典学习方法的指令化应用
  • 使用docker compose 部署dockge
  • 训推一体 | 暴雨X8848 G6服务器 x Intel®Gaudi® 2E AI加速卡
  • 【k近邻】 K-Nearest Neighbors算法k值的选择
  • es基本概念-自学笔记
  • Java多线程并发控制:使用ReentrantLock实现生产者-消费者模型
  • Redis中的AOF原理详解
  • 在 Linux 中通过 yum 安装和使用 Nginx
  • OrbStack 入门教程:macOS 上的轻量级容器与虚拟机管理工具
  • vue+django 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱
  • 基于8×8 DCT变换的图像压缩MATLAB实现
  • 云服务器部署SSM项目
  • Kubernetes生产环境健康检查自动化指南
  • 7.Java的继承
  • 北京朝阳区中小学生信息学竞赛选拔赛C++真题
  • 左子树之和