一、前言:
当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受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点进行 |
测试自动备份正常运转与否(备份恢复的方法)
这里,以通过实际操作的过程来介绍问题出现后的恢复方法。
[1] 当数据库被删除后的恢复方法
首先建立一个测试用的数据库。
| [root@CentOS ~]# mysql -u root -p ← 用root登录到MySQL服务器 Enter password: ← 输入MySQL的root用户密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 4.1.20 Type help; or \h for help. Type \c to clear the buffer. mysql> create database test; ← 建立一个测试用的数据库test Query OK, 1 row affected (0.00 sec) mysql> use test ← 连接到这个数据库 Database changed mysql> create table test(num int, name varchar(50)); ← 在数据库中建立一个表 Query OK, 0 rows affected (0.07 sec) mysql> insert into test values(1,Hello,CentOS); ← 插入一个值到这个表(这里以Hello,CentOS为例) Query OK, 1 row affected (0.02 sec) mysql> select * from test; ← 查看数据库中的内容 +------+-----------------+ | num | name | +------+-----------------+ |1 | Hello,Centos | ← 确认刚刚插入到表中的值的存在 +------+------------------+ 1 row in set (0.01 sec) mysql> exit ← 退出MySQL服务器 Bye |
然后,运行刚才建立的数据库备份脚本,备份刚刚建立的测试用的数据库。
| [root@sample ~]# cd ← 回到脚本所在的root用户的根目录 [root@sample ~]# ./mysql-backup.sh ← 运行脚本进行数据库备份 |
接下来,我们再次登录到MySQL服务器中,删除刚刚建立的测试用的数据库test,以便于测试数据恢复能否成功。
| [root@Centos ~]# mysql -u root -p ← 用root登录到MySQL服务器 Enter password: ← 输入MySQL的root用户密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 to server version: 4.1.20 Type help; or \h for help. Type \c to clear the buffer. mysql> use test ← 连接到测试用的test数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> drop table test; ← 删除数据中的表 Query OK, 0 rows affected (0.04 sec) mysql> drop database test; ← 删除测试用数据库test Query OK, 0 rows affected (0.01 sec) mysql> show databases; +---------------+ | Database | +---------------+ | mysql | |

超冒险小镇物语免费下载
多乐斗地主-经典版免费下载
巨兽战场免费下载
围棋GO免费下载
骑马乐趣赛跑免费下载
警察模拟器游戏 - Police Simulator 21免费下载
好彩麻将免费下载
医生诊所冲刺免费下载
化妆大师-美妆造型师的大师之路!免费下载
荣誉打工人免费下载
模特少女-梦幻女生时装秀免费下载
妖错图免费下载
建设市叉车驾驶模拟器2017年免费下载
水上摩托大战 免费免费下载
我的樱花童话学校游戏下载v1.8 安卓版
商道高手2手游下载v5.0 安卓版
废土之息官方版下载v2.3.16 安卓最新版
滑雪大冒险西游版下载v2.3.3 安卓版
一起来跳舞手游木蚂蚁版下载v3.7 安卓版
我的星座女神游戏下载v1.1.0 安卓版
cyberfoot手游下载v2020.022 安卓版
人猜歌手游下载v5.2.6 安卓版
云城冒险手游官方版下载v1.0.0 安卓版
一起来捉妖手游下载v1.9.141.1 安卓客户端
拖车大赛手机版下载v1.0 安卓版
航海霸业360版本下载v3.1.0 安卓版
黎明救援手游




storyview绿色版(电子小说阅读器)下载v1.9.5.3 官方版
cterm(bbs专用上站软件)下载v2017 简体中文绿色版
iis7远程桌面连接工具下载v2.1.5 最新绿色免费版
3dmax地形插件terrain下载附terrain插件使用教程
群英旺旺群发器下载v4.5 官方版
长江证券港股快车专业版下载v6.14 官方版