一、前言:
当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受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真实模拟经营养成&美女大厨做饭烹饪游戏免费下载
热血江湖传-经典重燃 正邪对决 RPG武林挂机免费下载
我的复古脑腐宠物AI山海经3D虚拟宠物抽象合成小游戏免费下载
监狱 休息 盛大 监狱 逃脱免费下载
心灵射手-飞行弹幕射击游戏stg免费下载
雨纪免费下载
装扮日记-时尚设计&制作衣服免费下载
解压泡泡 - 玩转精美肥皂泡和新年圣诞礼物免费下载
城市汽车驾驶运输游戏免费下载
虚拟动漫怀孕的母亲免费下载
时尚律师法庭风格免费下载
积木世界 - 沙盒创造模式免费下载
明星化妆师 - 公主女生装扮大师小游戏免费下载
当代人生免费下载
末世英雄手游最新版下载v2.5 安卓版
豪华停车场特技游戏下载v1.2.8 安卓版
网易迷你世界官方版下载v1.44.1 安卓手机版
捕鱼达人2原版地址最新下载
大富翁卡牌战争游戏下载v1211001 安卓版
basketball arena游戏下载v1.33.2 安卓版
未生逆行港台服下载v3.7.3 安卓版
初音未来梦幻歌姬腾讯版下载v0.7.0 安卓版
公主时尚沙龙内购破解版下载v2.5.1 安卓版
梦中的你全章节解锁版下载v1.3.3 安卓无限提示版
大战争之城黑帮之城手机版(grand wars: mafia city)下载v0.12 安卓版
召唤神龙2小游戏下载v1.4.1 安卓版
逍遥修仙录游戏下载v1.0.0 安卓版
grumiku手游中文版




小麦魔方网盘下载v2.0.1 官方版
MP4视频转换通下载v17.6 官方最新版
极品五笔输入法2016下载香芋版
星辰多线程小说下载助手下载v1.0 绿色免费版
风云pdf编辑器官方版下载v2021.714.1523.44 最新版
cg magic 2021官方版下载v4.2.10.55 免费版