一、前言:
当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受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 | |

怪物卡车特技汽车游戏 - 拆除德比怪物赛车 4 轮游戏免费下载
倒放勇者免费下载
仙侠大作战-休闲修仙闯关MMORPG免费下载
网吧老板模拟器免费下载
艺术绘图 Art Drawing 3D免费下载
生计与沉冤免费下载
大农场收成模拟器免费下载
胡桃日记免费下载
时尚玩偶设计师3D游戏免费下载
卡皮巴拉厨房轻松烹饪故事免费下载
鸣潮免费下载
开个餐厅-3D真实模拟经营养成&美女大厨做饭烹饪游戏免费下载
热血江湖传-经典重燃 正邪对决 RPG武林挂机免费下载
我的复古脑腐宠物AI山海经3D虚拟宠物抽象合成小游戏免费下载
宝宝巴士奇妙数字探险游戏下载v9.89.99.00 安卓版
偶像活动mv制作人老版本下载v1.1.2 安卓版
奇迹暖暖腾讯版本下载v5.9.0 安卓最新版
4399香肠派对最新版下载v21.41 安卓版
亡命救赎正式版下载v1.0 安卓版
跑球最新版下载v1.0 安卓版
软泥星球游戏
潮人篮球2网易官方版下载v0.93.6500 安卓版
逃离机械房间游戏下载v1.0.6 安卓版
逆转卡牌下载v1.0 安卓版
superstar oh my girl音游官方版下载v3.6.1 安卓版
绿林大冒险游戏下载v1.0 安卓版
吸血鬼之恋2游戏下载v1.2 安卓版
王国纪元oppo版下载v2.139 安卓最新版




开盘啦电脑客户端下载v2.4.0.0 官方pc版
anything to qrcode1.1.2下载官方免费版
geoda空间自相关分析中文版下载v1.20 官方最新版
索菲亚diyhome衣柜设计软件下载v6.0 最新版
chatroulette中文版下载v1.5 官方版
音乐梦想家尤克里里简谱修改版下载v7.77 安装版