首 页  资讯中心 下载中心 资讯教程 最新下载 发布软件 发布文章 网通站 电信站繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:曾子源码软件下载站 -> 数据库 -> MySQL -> 文章内容 退出登录 用户管理
热门文章
· 常用C,VC,C++书籍下..
· 新概念英语视频教程..
· 常用 JAVA JAVA2 J..
· 《梦幻麻将馆9雀圣争..
· 新东方英语视频教程..
· 常用VB,Visual Basi..
· [组图] After Effect..
· WINDOWS 所有系统文..
· [组图] 让机器运行多..
· 全美经典学习指导系..
相关文章
· my123爆发 360安全卫..
· [组图] Photoshop光影..
· 初学入门 PHP 和 My..
· MySQL安全问题(匿名..
· ASP使用MYSQL数据库..
· mysql获得系统权限
· [组图] IIS实现ASP,C..
· 学习使用数据库MySQ..
· MySQL的转义字符“\..
· 怎样在UNIX系统下安..
MySQL简易备份方法
作者:无从考证  来源:转载  发布时间:2005-12-29 23:33:01  发布人:我爱源码

减小字体 增大字体

七.开始排定备份

知道备份的方法之後,就可以把整个备份的动作作成一个 Scirpt ,指定 DB 相关参数後,
便可利用 Crontab 排定备份的周期和时间,可以把下面的指令加入 Crontab 内:

00 04 * * * /home/dbadmin/backup

(backup 是 Script 的档名)

排定的时间当然最好是夜间离峰时. (酷!学园常24hr都有人在线上)
以本文附录提供的 Script 作备份规则说明,每日执行备份作业,以一周为一个周期,所以最近的资料是昨天,最久的资料是一星期前,每次备份是将指定的 DB Full Dump 成一个档, 用 tar 压缩後存入指定的路径. 备份档以 DB 的名称加上星期来命名,星期的表示为"0" 代表日,"1"代表星期一,以此类推. 目前该 Scirpt 一次只能备份一个 DB 而已,你可以加以修改以符合你的系统环境及需求.


八.结语

目前这个 Script 在测试机上测试的效果还不错,以酷!学园讨论区的2万多篇讨论文章, DB 总大小有30几 MB, 跑这个 Script 大约只需要30几秒就完成,下面是以 time 指令测试数次计算的结果:

[root@demo tmp]# time backup

real 0m32.788s
user 0m22.770s
sys 0m4.610s
[root@demo tmp]# time backup

real 0m33.898s
user 0m24.740s
sys 0m4.590s
[root@demo tmp]# time backup

real 0m32.808s
user 0m23.710s
sys 0m4.750s

测试机的硬体配备是Intel Celeron 600 + 256mb SDRAM, 作业系统是CLE Linux 1.0.

因为 Dump 备份的速度很快,大部份作 MySQL 的备份都是这样作的,假如是大型大量的DB 环境时,就需要考虑以 Incremental 的备份方式,而 MySQL 本身也提供这种备份方式, 这种备份方式,一周作一次完整的备份,每天只要作异动作业档(LOG)的备份就行,在备份的成本上,可以节省备份时间和储存空间. 完成了备份的工作安排,现在又可以和学园们一起快乐的上网冲浪去了...


九.参考资料

1.MySQL中文参考手册
http://cnpa.yzu.edu.tw/~cfc/docs/mysqldoc_big5/manual_toc.html

2.MySQL man page

3.Study-area - Shell和Shell Script
http://www.study-area.org/linux/linuxfr1.htm


十.附录-备份Script原始档

#!/bin/sh
#
# Title: MySQL Backup Script
# Created: 2002.06.01
# Current: 2002.06.23
# Contact: Duncan Lo <duncan@twn.wox.org >
# Note: This script just only backup one database!
#

#
# Variables define for your server
#

# Database name
DBNAME="phpbb2"

# Database admins name
DBUSER="root"

# Database admins password
DBPASS="password"

# MySQL commands path
# default: /usr/bin
BINPATH="/usr/bin"

# Backup date format
BAKDATE=`date +%w`

# Path for backup files save to
BAKPATH="/usr/backup/phpbb"

# Temp directorys name
TMPDIR="tmp.db_bak".$BAKDATE

# Backup filess directory
BAKDIR="$DBNAME"_$BAKDATE

# Database tables list files name
TABLST="tables_list"

# Backup Type
# 0: All tables in one dump file
# 1: Pre table in one dump file
BAKTYPE="0"

#
# Script Start
#

#
# Create backup temp directory
#
cd /tmp
rm -rf $TMPDIR
mkdir $TMPDIR
cd $TMPDIR
mkdir $BAKDIR
cd $BAKDIR

#
# Create databases table list
#
$BINPATH/mysql $DBNAME -u$DBUSER -p$DBPASS -N -e "show tables" > $TABLST

#
# Flush databases LOG before dump
#
$BINPATH/mysqladmin -u$DBUSER -p$DBPASS flush-logs

#
# Choice one type to dump datebase
#
case $BAKTYPE in
0)
#
# Dump database all table in one file
#
$BINPATH/mysqldump $DBNAME -u$DBUSER -p$DBPASS opt > $DBNAME.sql
;;
1)
#
# Dump database pre table in one file
#
awk { print BINPATH"/mysqldump "DBNAME" -u"DBUSER" -p"DBPASS" \
opt " $1 " > " $1".sql" } \
BINPATH="$BINPATH" DBNAME="$DBNAME" DBUSER="$DBUSER" DBPASS="$DBPASS" \
$TABLST \
| /bin/sh
;;
*);;
esac

cd ..

#
# Compress backup files
#
tar cfz $BAKDIR.tgz $BAKDIR

#
# Move file to backup directory
#
mv $BAKDIR.tgz $BAKPATH

cd ..
#
# Clean temp files and directory
#
rm -rf $TMPDIR

#
# Script End
#


上一页  [1] [2] [3] 

[] [返回上一页] [打 印] [收 藏]
上一篇文章:Access 的最大容量
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [发表评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站信息排名查询
Copyright © 2004-2006 Zasp.Net. All Rights Reserved .