mysql备份与恢复方案

mysql备份与恢复方案

2023年7月30日发(作者:)

38

效劳器备份方案

一、MYSQL数据库备份与恢复:

数据库本地备份:当数据量少的时候可以在每天凌晨1点-3点进行完全备份,随着数据库的增大,可 以2两小时〔根据需求设置时间〕做增量备份与完全备份相结合的备份方式以保证数据的平安.

数据库完全备份脚本:

1 .确定我们备份文件存放的目录这里我把所有备份文件放到/home/mysqlback

2 .确定需要备份的数据库,这里我们用备份d_test这个数据库来说明.

3 .确定我们要备份的时间,我们以每天两小时备份一次做说明.

#!/bin/sh

dbuser="root"

dbpasswd="123456〞

dbname="d_test〞

date1='date +%Y%m%d'

date2=、date +%Y%m%d%H%M%S、

date3='date -d -5day +"%Y%m%d"'

back="/home/mysqlback/$date1〞 if [ ! -d $back ] then

mkdir -p $back fi

mysqldump -u$dbuser -p$dbpasswd $dbname | gzip > $back/$dbname$

cd /home/mysqlback rm -rf $date3

#!/bin/sh#shell 脚本

页脚内容 38

dbuser="root"

dbpasswd="123456"

dbname="dtest"

#定义数据库用户名

# 定义数据库密码

# 定义需要备份的数据库

date1='date +%Y%m%d'

# 读取当前日期

date2 = 'date +%Y%m%d%H%M%S、#读取当前的日期时间Y年m月d日H小时M分钟S

date3 = 'date -d -5day +"%Y%m%d"'#读取当天日期之5天前的日期

back = /home/mysqlback/$date1# 备份文件存放目录

# 判断是不是有文件存放目录如果没有那么新建.

if [ ! -d $back ]

then

mkdir -p $back fi

# 使用mysqldump命令来备份指定的数据库并且压缩成gz包.

mysqldump -u$dbuser -p$dbpasswd $dbname | gzip > $back/$dbname$

# 删除指定5天前备份的过期文件以便节省磁盘空间

cd /home/mysqlback

rm -rf $date3

异地备份

首先准备一台异地的效劳器,并且搭建好vsftp〔vsftp具体搭建详细步骤请参考VSFTP搭建文档〕

异地备份到vsftp效劳器上脚本如下:

#!/bin/sh

echo "start backup"

dbuser="root"

贝脚内容

38 dbpasswd="123456" dbname="dtest" date1='date +%Y%m%d' date2=、date

+%Y%m%d%H%M%S、 date3='date -d -4day +"%Y%m%d"' back="/home/ftp1/$date1" if

[ ! -d $back ] then mkdir -p $back fi mysqldump -u$dbuser -p$dbpasswd

$dbname | gzip > $back/ sleep 5s cd $back ftp <

open 192.168.16.104

user ftp1 1123456

binary

put

rename $

close bye

EOF

贝脚内容 38

mv $

I

cd /home/ftpl

rm -rf $date3

数据库恢复或者重建,由于是完全备份,可以直接恢复最后一次完全备份文件.

gunzip〈备份. | mysql -u root -p d_test

二.文件备份与恢复:

由于文件一般都比拟大,所以我们采用完整与增量结合的方式做备份,每个星期〔时间具体情况而定〕

备份完整备份一次文件,每天做一次增量备份.备份脚本如下 #!/bin/sh

wenjian="/home/backwenjian〞

backlog="/home/backlog〞

date1='date +%Y%m%d'

date2=、date +%Y%m%d%H%M%S、

date3='date -d -14day +"%Y%m%d"'

back="/home/beifen/$date1〞 if [ ! -d $back ] then

mkdir -p $back fi

tar -g $backlog -zcf $back/$ $wenjian cd /home/beifen rm -rf

$date3

#!/bin/sh

#shell脚本

贝脚内容 企划编号:克烨O.2

wenjian="/home/backwenjian

backlog="/home/backlog"

date1='date +%Y%m%d'

date2=、date

+%Y%m%d%H%M%S、

date3='date -d -14day +"%Y%m%d"

back="/home/beifen/$date1"

#指定需要备份的文件目录

#指定备份时候记录文件

#读取当前日期

#读取当前日期时间

#读取14天前的日期

#指定备份存放的文件目录

#判断是不是有文件存放目录如果没有那么新建 if [ ! -d $back ]

then

mkdir -p $back

fi #用tar备份指定文件并打包 tar -g $backlog -zcf $back/$ $wenjian

#命令在第一次使用的时候是完整

备份,之后使用那么是增量备份

#进入备份存放目录删除指定时间目录

cd /home/beifen

rm -rf $date3

如果需要一周备份一次完整备份,我们只需要把记录文件删除或者备份到其他目录或者改名就好下面是

脚本

# ! /sbin/sh

date='date +%Y%m%d'

mv /home/backlog /home/backlog-$date

文件恢复:

使用tar解包命令进行解包,恢复顺序为,最后一次完整备份+最后一次完整备份后的一次增量备份

贝脚内容 38

+……+最后一次增量备份.

脚本运行时间也是备份策略时间:

一种系统默认自动执行的目录有一下几个,如果备份策略规律符合下面的策略时间的话,可以把编写的

shell脚本放入对应的目录即可,系统会自动运行对应文件,提示:所以的shell脚本要给予执行权

限,否那么无法执行.

/etc//

每天执行一次

/etc/y/

每月执行一次

/etc//

每周执行一次

/etc//

每小时执行一次

另外我们可以自己定义时间策略规律: 可以直接用命令:crontab -e来编辑,这个命令编辑的文件是/var/spool/cron/下面对应的用户 cron文件,如果你用的是root用户编辑的,那么你编辑的就是/var/spool/cron/root文件.也

可以直接修改/etc/crontab文件.

编辑文件格式如下:

Minute Hour Day Month Dayofweek Command

分钟 小时天 月每星期那天 命令

字段的代表的意思:

Minute代表每个小时第几分钟执行指定任务

Hour代表每天的第几个小时执行指定任务

Day代表每月的第几天执行指定的任务

Month代表每年的第几个月执行指定任务

Dayofweek 代表每周的第几天执行指定任务

Command代表指定要执行的程序

这些字段除了 Command是每次必须指定的以外其他的可以可选,不指定的可以用*代替

贝脚内容

38

下面举例说明: 分钟小时天 月每星期那天命令

10****sh/home/sh/mysql_指定每小时的第 10

分钟执行一次sh命令/home/sh/mysql_ 是指定的脚本路径

1013***sh/home/sh/mysql_指定每天 13 点第

10分钟执行一次sh命令/home/sh/mysql_ 是指定的脚本路径

101322**sh/home/sh/mysql_指定每月 22 号 13

点第10分钟执行一次sh命令/home/sh/mysql_是指定的脚本路径

1013225*sh/home/sh/mysql_指定每年的 5 月 22

号13点第10分钟执行一次sh命令/home/sh/mysql_ 是指定的脚本路径

1013**2sh /home/sh/mysql_指定每星期二 13 点

第10分钟执行一次sh命令/home/sh/mysql 是指定的脚本路径〔星期的数字代表分

别为:0星期天1星期一 2星期二……6星期六〕

*/10****sh /home/sh/mysql_ 指定每 10 分钟

〔每小时第10 20 30 40 50 60〕执行一次sh命令 /home/sh/mysql_ 是指定的脚本

路径

1013-18***sh /home/sh/mysql_ 指定每天 13 点

到18点的第10分钟执行一次sh命令/home/sh/mysql_是指定的脚本路径

101322, 2 6**sh /home/sh/mysql_ 指定每月 22 号

以及26号的13点第10分钟执行一次sh命令/home/sh/mysql_是指定的脚本路径

1013*/22**sh /home/sh/mysql_ 指定每隔 22 天

13点10分钟执行一次sh命令/home/sh/mysql_是指定的脚本路径

1013***root run-parts /home/sh/ 指定每天 13 点第 10 分

页脚内容企划编号:克烨O.2

钟执行/home/sh/下面的所有可以执行的文件.

我们通过上面的举例可以灵活设置出实际需求策略.

贝脚内容

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690652619a386945.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信