sql数据库定时备份怎么弄,mysql 定期备份

sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)

在操作数据的过程中,可能会导致数据错误甚至数据库崩溃,有效的定时备份可以很好的保护数据库。本文主要介绍了几种定期备份MySQL数据库的方法。

目录

一、mysqldump命令备份数据。

二。mysqldump III常见操作示例。恢复MySQL备份内容1。编写BASH来维护固定数量的备份文件2。使用crontab定期执行备份脚本2.1 cron服务2.2crontab语法2.3创建cron脚本IV。附上crontab使用示例:

1.mysqldump命令备份数据

MySQL提供了一个方便的工具mysqldump,用于通过命令行导出dumpbase数据和文件。我们可以通过命令行直接导出数据库内容。首先我们简单

解一下mysqldump命令用法

:

#MySQLdump是常用的

Mysqldump -u root -p - databases数据库2xxx.sql

二. mysqldump常用操作示例

备份全部数据库的数据和结构

MySQL dump-u root-p 123456-A/data/MySQL dump/mydb . SQL

备份全部数据库的结构(加 -d 参数)

MySQL dump-u root-p 123456-A-d/data/MySQL dump/mydb . SQL

备份全部数据库的数据(加 -t 参数)

MySQL dump-u root-p 123456-A-t/data/MySQL dump/mydb . SQL

备份单个数据库的数据和结构(,数据库名mydb)

MySQL dump-u root-p 123456 mydb/data/MySQL dump/mydb . SQL

备份单个数据库的结构

MySQL dump-u root-p 123456 myd b-d/data/MySQL dump/mydb . SQL

备份单个数据库的数据

MySQL dump-u root-p 123456 myd b-t/data/MySQL dump/mydb . SQL

备份多个表的数据和结构

(数据和结构如上分别备份)

MySQL dump-u root-p 123456 mydb t1 T2/data/MySQL dump/mydb . SQL

一次备份多个数据库

mysqldump -uroot -p123456 -数据库db1 db2 /data/mysqlDump/mydb.sql

三. 还原 MySQL 备份内容

恢复有两种方式,第一种是在MySQL命令行,第二种是使用SHELL行完成恢复。

在系统命令行中,输入

如下实现还原

:

MySQL-uroot-p 123456/data/MySQL dump/mydb . SQL

登录mysql系统,

通过source指令找到对应系统中的文件进行还原

:

MySQL source/data/MySQL dump/mydb . SQL

在Linux中,通常使用BASH脚本来编写要执行的内容,定期执行crontab命令来实现日志自动生成。

下面的代码功能是备份mysql,用crontab,备份内容是近一个月(31天)的日常mysql数据库记录。

1、编写BASH维护固定数量备份文件

在Linux中,使用vi或vim编写脚本内容并命名为:mysql _ dump _ script.sh。

#!/bin/bash

#保存备份次数并备份31天的数据。

数量=31

#备份保存路径

备份目录=/root/mysqlbackup

#日期

dd=`日期%Y-%m-%d-%H-%M-%S

#备份工具

工具=mysqldump

#用户名

用户名=root

#密码

密码=TankB214

#要备份的数据库

database_name=edoctor

#如果文件夹不存在,则创建它

如果[!-d $ backup _ dir];

然后

mkdir-p $ backup _ dir;

船方不负担装货费用

#只需编写MySQL dump-u root-p 123456 users/root/MySQL backup/users-$ filename . SQL。

$ tool-u $ username-p $ password $ database _ name $ backup _ dir/$ database _ name-$ DD . SQL

#写入以创建备份日志

echo create $ backup _ dir/$ database _ name-$ DD . dupm $ backup _ dir/log . txt

#找出需要删除的备份

delfile=`ls -l -crt $backup_dir/*。SQL | awk“{ print $ 9 }”| head-1 ` 1

#确定当前备份数量是否大于$number

count=`ls -l -crt $backup_dir/*。SQL | awk“{ print $ 9 }”| WC-l ` 1

if [ $count -gt $number ]

然后

#删除最旧的备份,只留下$ number个备份

rm $delfile

#写入删除文件日志

echo delete $ delfile $ backup _ dir/log . txt

船方不负担装货费用

如上代码主要含义如下:

1.首先,设置各种参数,如最大备份号码数、备份路径、用户名、密码等。

2.执行mysqldump命令保存备份文件,将操作打印到同一个目录下的log.txt,标记操作日志。

3.

定义需要删除的文件

:通过ls命令获取第九列,即文件名列表,然后通过实现用最晚的操作时间定义需要删除的文件。

.定义备份数量:

用ls命令加上wc -l L统计以sql结尾的文件行数。

5.如果文件超过了限制大小,则删除最早创建的sql文件。

2、使用crontab定期执行备份脚本

在Linux中,周期性执行的任务一般由cron [ps -ef|grep cron]处理。Cron读取一个或多个配置文件,其中包含命令行及其调用时间。cron的配置文件叫做“crontab”,是“cron table”的简称。

2.1 cron服务

Cron是Liunx下的一个定时执行工具,可以在没有人为干预的情况下运行作业。

服务crond start //启动服务

服务crond stop //关闭服务。

服务crond restart //重新启动服务

服务crond重新加载//重新加载配置

服务crond状态//检查服务状态

2.2crontab语法

crontab命令用于安装、删除或列出用于驱动cron后台进程的表。用户将需要执行的命令序列放入crontab文件中执行。每个用户都可以拥有自己的crontab文件。不能直接创建或修改/var/spool/cron下的Crontab文件。crontab文件由crontab命令创建。

如何在crontab文件中输入要执行的命令和时间?文件中的每一行包括六个字段,其中前五个字段是执行指定命令的时间,最后一个字段是要执行的命令。每个字段由空格或制表符分隔。

格式如下:

分钟小时月日年月日星期命令

合法值是00-59 00-23 01-31 01-12 0-6 (0是星期日)

除了数字之外,还有几个特殊符号,分别是 * 、/和-、、、表示范围内的所有数字,/表示每五个单位,-表示某个数字到某个数字,、分隔几个离散的数字。

-l在标准输出上显示当前crontab。

-r删除当前的crontab文件。

-e使用VISUAL或EDITOR环境变量指向的编辑器编辑当前crontab文件。当您完成编辑并离开时,编辑过的文件将自动安装。

2.3创建cron脚本

第一步:

写一个cron脚本文件,命名为mysqlRollBack.cron 15,30,45,59 * * * * echo xgmtest . xgmtest.txt表示打印命令每15分钟执行一次。

第二步:

添加计划任务。执行命令“crontab crontest.cron”。锻炼

第三步:

crontab -l l 检查计划任务是否成功,或者检查/var/spool/cron下是否生成了相应的cron脚本。

注意:

该操作直接替换该用户下的crontab,而不是添加。

执行定期编写的调度任务脚本(记得先给shell脚本执行权限)

0 2 * * */root/MySQL _ backup _ script . sh

然后使用crontab命令定期指示计时脚本。

crontab mysqlRollback.cron

然后检查该计划任务是否是由以下命令创建的:

四、附 crontab 的使用示例:

(1).每天早上6点。

0 * * *回应“早上好”/tmp/test . txt//注意,简单地echo,你看不到任何来自屏幕的输出,因为cron会将任何输出通过电子邮件发送到root的邮箱。

(2).每两个小时

0 */2 * * * echo“现在休息一下。”/tmp/test.txt

(3).从晚上11点到早上8点,每两个小时一次。

0 23-7/2,8 * * * echo 做个好梦/tmp/test.txt

(4).每月4日,每周一至周三上午11点。

0 11 4 * 1-3命令行

(5).1月1日凌晨4点。

0 1 1 *命令行shell=/bin/bash path=/sbin:/bin:/usr/sbin:/usr/bin mailto=root//如果有错误或数据输出,数据将被发送到此帐户HOME=/

(6).每小时执行/etc/cron.hourly中的脚本

01 * * * *根运行-零件/etc/cron.hourly

(7).每天执行/etc/cron.daily中的脚本。

02 4 * * * root run-parts/etc/cron . daily

(8).每周执行/etc/cron.weekly中的脚本

22 4 * * 0根运行零件/etc/cron .每周

(9).每月执行/etc/cron.monthly中的脚本。

42 4 1 * *根运行-零件/etc/cron .每月

00-

注意:

“运行零件”参数。如果删除此参数,可以编写要运行的脚本的名称,而不是文件夹名称。

(10).每天4: 00、5: 00和6: 00分别在5分钟、15分钟、25分钟、35分钟、45分钟和55分钟执行命令。

5,15,25,35,45,55 16,17,18 * * *命令

(11).每周一、三、五下午三点,系统进入维护状态,重启系统。

00 15 * * 1,3,5关机-r 5

(12).在每小时的10: 00和40: 00,在用户目录中执行命令innd/bbslin:

10,40 * * * * innd/bbslink

(13).每小时在用户目录中执行命令bin/account 1分钟:

1个* * * *箱/账户

以下是我测试每分钟的截图效果,其对应代码如下:

* * * * */root/MySQL _ backup _ script . sh

效果截图:

以上就是本文关于MySQL数据库定时备份的几种方式(全面)。有关MySQL数据库定时备份的几种方式的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

sql数据库定时备份怎么弄,mysql 定期备份