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

猫咪破坏王-变身猫咪模拟器免费下载
开间小店免费下载
汉家江湖免费下载
颜色大作战 - 红蓝大作战 给你点颜色免费下载
真正的飞机飞行员飞行模拟免费下载
美国刑事运输免费下载
时空召唤-巅峰竞技新赛季免费下载
疯狂客运城-经营自己的客运王国免费下载
难倒大侦探免费下载
农场 农业 拖拉机 卡车 收割机 汽车 游戏 洗车游戏免费下载
逃生路线:越狱免费下载
瓶射击3D:枪手专家免费下载
扫雷_经典版本免费下载
暖厨免费下载
65wan诛仙手机游戏下载v2.928.1 安卓版
我的现充计划汉化版下载v1.1.1 安卓中文版
华为恋与练习生官方版下载v2.12.2382 安卓版
松总动员国际版下载v2.6.656 安卓外国版
熊猫博士巴士司机游戏下载v1.0.1 安卓版
空间节奏传奇游戏下载v1.1.2 安卓版
诛仙手游奇趣客户端下载v2.928.1 官方安卓最新版
宝宝从哪来宝宝巴士下载v9.89.99.01 安卓免费版
手机跳棋游戏下载v1.2.0 安卓版
果盘天珠传奇手游下载v1.1.29630 官方安卓版
魔幻单职业游戏下载v1.3.0.1 安卓版
全城封锁末日求生正式版下载v1.0.0 安卓最新版
新网球王子手游繁中版下载v4.0.0 安卓官方版
我要当掌柜最新版下载v3.3.8 安卓版




跳吧软件电脑版下载v2.7.2 官方pc版
百度山寨云电脑版下载v1.4.3 官方最新版
影子系统2011中文修改版下载v5.0.0 免费版
东电云视管理客户端下载v1.0.25.0 官方版
阿香婆高清幻灯片制作软件(Ashampoo Slideshow Studio HD)下载v2.0.6.2 中文版
快读小说阅读器免费版下载v6.1.2 最新版