Home  >  Article  >  Database  >  MySQL数据库的自动备份与数据库被破坏后的恢复1

MySQL数据库的自动备份与数据库被破坏后的恢复1

WBOY
WBOYOriginal
2016-05-31 08:47:06936browse

一、前言:

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。

或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。

这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell。

建立数据库备份所需条件

[1] 建立自动备份脚本

在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[root@CentOS ~]# vi mysql-backup.sh ← 建立数据库自动备份脚本,如下:

#!/bin/bash 

PATH=/usr/local/sbin:/usr/bin:/bin 

# The Directory of Backup 

BACKDIR=/backup/mysql 

# The Password of MySQL 

ROOTPASS=******** 此处请将星号替换成MySQL的root密码 

# Remake the Directory of Backup 

rm -rf $BACKDIR 

mkdir -p $BACKDIR 

# Get the Name of Database 

DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /` 

# Backup with Database 

for dbname in $DBLIST 

do 

mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy 

done

[2] 运行数据库自动备份脚本

[root@CentOS ~]# chmod 700 mysql-backup.sh 改变脚本属性,让其只能让root用户执行

[root@CentOS ~]# ./mysql-backup.sh 运行脚本 

[root@CentOS ~]# ls -l /backup/mysql/ 确认一下是否备份成功 

total 8 

drwxr-x--- 2 mysql mysql 4096 Sep 1 16:54 mysql 已成功备份到/backup/mysql目录中

[3] 让数据库备份脚本每天自动运行

[root@sample ~]# crontab -e ← 编辑自动运行规则(然后会出现编辑窗口,操作同vi)00 03 * * * /root/mysql-backup.sh 添加这一行到文件中,让数据库备份每天凌晨3点进行
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn