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-bin

server-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

在这里插入图片描述

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帧栈

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值