首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>mysql>正文

MySQL 备份和恢复策略

http://www.oklinux.cn  2008-01-08  来源: oklinux收集   会员收藏  游客收藏  【 】 

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。假如发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。本文主要对MyISAM表做备份恢复。


备份策略一:直接拷贝数据库文件(不推荐)

备份策略二:使用mysqlhotcopy备份数据库(完全备份,适合小型数据库备份)

备份策略三:使用mysqldump备份数据库(完全 增量备份,适合中型数据库备份)

备份策略四:使用主从复制机制(replication)(实现数据库实时备份)


备份策略一、直接拷贝数据库文件

直接拷贝数据文件最为直接、快速、方便,但缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在备份文件前,执行以下 SQL 语句:

FLUSH TABLES WITH READ LOCK;

也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。



备份策略二、使用mysqlhotcopy备份数据库

mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上,并且mysqlhotcopy 只能用于备份 MyISAM表。

本备份策略适合于小型数据库的备份,数据量不大,可以采用mysqlhotcopy程序天天进行一次完全备份。

备份策略布置:

(1)、安装DBD-mysql perl模块,支持mysqlhotcopy脚本连接到MySQL数据库。

shell> tar -xzvf DBD-mysql-4.005.tar.gz

shell> cd DBD-mysql-4.005

shell> unset LANG

shell> perl Makefile.PL -mysql_config=/usr/local/mysql/bin/mysql_config -testuser=root -testpassword=UserPWD

shell> make

shell> make test

shell> make install

(2)、设置crontab任务,天天执行备份脚本

shell> crontab -e

0 3 * * * /root/MySQLBackup/mysqlbackup.sh >/dev/null 2>&1

天天凌晨3:00执行备份脚本。



mysqlbackup.sh注释:

#!/bin/sh

# Name:mysqlbackup.sh

# PS:MySQL DataBase Backup,Use mysqlhotcopy script.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义变量,请根据具体情况修改

# 定义脚本所在目录

scriptsDir=`pwd`

# 数据库的数据目录

dataDir=/usr/local/mysql/data/

# 数据备份目录

tmpBackupDir=/tmp/tmpbackup/

backupDir=/tmp/mysqlbackup/

# 用来备份数据库的用户名和密码

mysqlUser=root

mysqlPWD=111111

# 定义eMail地址

[email protected]


# 假如临时备份目录存在,清空它,假如不存在则创建它

if [[ -e $tmpBackupDir ]]; then

rm -rf $tmpBackupDir/*

else

mkdir $tmpBackupDir

fi

# 假如备份目录不存在则创建它

if [[ ! -e $backupDir ]];then

mkdir $backupDir

fi


# 清空MySQLBackup.log

if [[ -s MySQLBackup.log ]]; then

cat /dev/null >MySQLBackup.log

fi


# 得到数据库备份列表,在此可以过滤不想备份的数据库

for databases in `find $dataDir -type d | \

sed -e "s/\/usr\/local\/mysql\/data\///" | \

sed -e "s/test//"`; do


if [[ $databases == "" ]]; then

continue

else

# 备份数据库

/usr/local/mysql/bin/mysqlhotcopy --user=$mysqlUser --password=$mysqlPWD -q "$databases" $tmpBackupDir

dateTime=`date " %Y.%m.%d %H:%M:%S"`

echo "$dateTime Database:$databases backup success!" >>MySQLBackup.log

fi

done


# 压缩备份文件

date=`date -I`

cd $tmpBackupDir

tar czf $backupDir/mysql-$date.tar.gz ./


# 发送邮件通知

if [[ -s MySQLBackup.log ]]; then

cat MySQLBackup.log | mail -s "MySQL Backup" $eMail

fi


# 使用smbclientmv.sh脚本上传数据库备份到备份服务器

# $scriptsDir/smbclientmv.sh



smbclientmv.sh注释

#!/bin/sh

# Name:smbclientmv.sh

# PS:Move the data to Backup Server.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义变量

# 备份服务器名

BackupServer="BackupServerName"
共2页: 上一页 1 [2] 下一页

上一篇:MySQL 备份和恢复策略(二)   下一篇:MySQL的数字类型以及建库策略


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·MySQL 备份和恢复策略(二)
·MySQL的数字类型以及建库策略
·MySQL 备份和恢复策略(三)
·MySQL数据库中Show命令的用法
·如何正确的更改表中的列顺序
·MySQL查询结果的分页显示
·如何正确的解决 MySQL中忽略用户的现象
·MySQL对“服务器端光标”的 限制
·MySQL 搜索中的大小写敏感性
·如何处理未被适当关闭的表的问题
·轻松了解十个重要的 MySQL客户启动选项
·带你轻松接触MaxDB和MySQL之间的协同性
·怎样正确的解决 MySQL 中文模糊检索问题
·怎样修改 MySQL数据库中的密码
·怎样修改MySQL数据库中一个用户的密码
·怎样在MySQL中获得更好的搜索结果
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·深入讲解"InnoDB"和"MyISAM"的不同之处
·MySQL的存储过程写法和"Cursor"的使用
·如何安装配置基于2台服务器的MySQL集群
·带你轻松接触一个检测MySQL状态的脚本
·实例讲解"MySQL"在记录不存在时的插入
·无需编程直接利用图形界面导入导出的方
·教你快速掌握 MySQL数据库中触发器的应
·解析:怎样在MySQL中获得更好的搜索结果
·将数据从MySQL迁移到 Oracle的注意事项
·细化解析:怎样修改 MySQL数据库中的密
·解析:优化MySQL数据库性能的几个好方法
·教你轻松掌握如何保护MySQL中的重要数
  阅读排行
·Linux 安装 Mysql
·如何在Linux系统中安装MySQL
·在Linux 环境下安装 Mysql
·在Linux上安装MySQL Server 5.0
·图形化管理MySQL更轻松
·[Mysql]IIS+mysql+php相关知识介绍
·MySQL创始人David Axmark 访谈实录
·你应该知道的10个MySQL客户启动选项
·Heartbeat_2.0.3配置MySQL5.0.8集群
·Linux系统上安装MYSQL数据库的方法
·[MySQL]入门学习从安装入门到学习操作
·MySQL中文参考手册-创造并使用数据库
·MySQL5.0新特性教程 存储过程:第三讲
·MySQL 5.0新特性教程 存储过程:第一讲
·[Mysql]Mysql数据库管理系统优化方案
网摘收藏: