学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> MYSQL >> 一个MySQL数据库的简易备份方法介绍


一个MySQL数据库的简易备份方法介绍


适用对象: MySQL DB管理员.

适用条件: 对 Linux 环境有基础的管理及操作能力.

文章附注: 本篇文章为自由文件,欢迎非商业性质转载,并请注明出处!

商业性质转载请来信告知!

特别注意: 1.本篇文章提供之程式及设定*不一定*符合您的环境,

请依您的系统环境适当地修改程式及设定.

2.在执行任何具破坏性的动作及行为前,

请确认您已作好完整可用的资料备份工作.

目录内容

一.前言

二.错误修正

三.开始备份

四.如何回存

五.MySQL线上备份

一.前言

正当我在网上快乐的冲浪,在酷!学园快乐的灌口水时,竟蹦出一页 "phpBB critical error",查询 Database 出现错误的讯息,中断了各学员在各系版唇枪舌战,热烈的讨论,虽然过了不久,系统管理工友把网页修好,但开始连续几个星期,phpBB 讨论区有时还是很容易挂掉,频率大约是一至二周一次,通常都是在周末大家最闲的时侯发生的,幸好此时刚好世界杯足球赛正好开打,不能到学园灌水,最少还有足球赛可以看.

当时修护的方式,是将 MySQL 服务停止,再把前一次可用的DB档案盖回去, 然後再重新启动 MySQL 服务来测试 phpBB 是否正常,这样子的作法通常都有效,但总是会遗失某一段时间内的文章,这不是大家所希望的...

为了保存许多珍贵的资料和学园们恶心的口水,我开始著手准备 DB 的备份工作,准备重建这个有问题 DB ,更为将来校园的迁址作 DB 移转准备.

(DB: Database的简称,以下都以 DB 取代 Database,phpBB: 酷!学园讨论区系统的软体名称)

二.错误修正

花了一些时间熟悉主机的环境後,我开始寻找错误在那里...

检测 MySQL 内 phpBB 的 DB 後发现,有个 users 的 table 是有问题的,使用 myisamchk 尝试去修护,发现还不行用预设方式修护,还要多加个 "-o"的参数才行,在使用 myisamchk 时,为避免还有用户来存取 DB ,最好是能够将 MySQL 服务停止,不然最少也要下个 "mysqladmin flush-tables" 後,

再作 myisamchk 指令,像:

myisamchk -o phpbb2_users.MYI

这个动作,可能要作个2'3次,直到没有错误的讯息出现!

修护完,重新启动 MySQL 服务後,就可以用 mysql 这个 client 的指令,去 Query 一下 DB 内容,测试看是否正常.很幸运的,DB的部份在此时,运作是正常的.

当然,在你要备份之前,假如能先检测资料是否正确,那是最好不过了, 假如有需要,可以把检测的工作,排定在备份工作之前,但是记得,这个检测DB 的动作不要排定在 DB 高用量的那段时间,深夜无人上线的时段是个不错的选择!

三.开始备份

phpBB 讨论区的资料档,主要有两个部份,就是 php 主程式和 DB 内容,php 主程式的备份就比较简单,只要把全部档案 tar 起来就行了,就像:

tar cvfz phpbb2_20020601.tgz phpbb

(上面的 phpbb 是指 phpBB 的 php 网页程式存放目录.)

以後有改到 phpBB 网页程式部份再重新备份一次就行,它的内容资料都写在DB 内,所以 php 程式档部份异动性应该不大.

再来就是 MySQL DB 部份了,预设 MySQL 的 DB 档案是存在 /var/lib/mysql 内,以 DB 名称为目录,目录内就是该 DB 的所有资料,像 phpbb2 这个 DB,就是存在 /var/lib/mysql/phpbb2 内,在备份前,因为怕资料尚未完全写入磁碟,而且 MySQL 会 Lock 在使用的 DB 档案,所以应该是要先把 MySQL 先 Shutdown 一下,整个备份的程序可以下像下面的指令去完成:

/etc/rc.d/init.d/mysqld stop 
tar cvfz phpbb2_db_20020601.tgz phpbb2 
/etc/rc.d/init.d/mysqld start

(上面的 phpbb2 是指存放 phpbb2 这个 DB 的目录.)

Ok!这样就完成了! (什麽?就这样! 3行就结束了?!)

对!这样就可以了! 不过要注意的是,怕 DB 内每个 Tables 间的资料有关关联性,所以最好是把整个 DB 一次备起来,单独只备哪个 Tables 的档案,以後回存时,怕会有资料关联不一致的问题!

以酷!学园的口水讨论区为例,有21000笔左右的文章加上1200名注册会员,资料库整个 tar 起来大约30几 MB 左右,每天备份,以一周为周期来计算,备份大约只需要(35*7=245) 200 多 MB 左右的空间,一星期的备份烧在一张光碟还够!

四.如何回存

phpBB 讨论区的回存,只需把档案解回原来存放网页的路径就可以,用以下指令解开:

tar xvfz phpbb2_20020601.tgz

DB 发生错误而要回存时,其实也不难,先找出最近一次完整正常的备份,先把现在错误的网页或 DB 先更名或 tar 起来,再把好的备份给解开回原来目录位置就行了,需要注意的是, MySQL 服务最好也是要先停止,回存完成後再启动服务,回存 DB 的整个程序可能像下面:

/etc/rc.d/init.d/mysqld.stop 
mv phpbb2 phpbb2_error 
tar xvfz phpbb2_db_20020601.tgz 
/etc/rc.d/init.d/mysqld.start

然後再去测试一下网页及资料库! 看使用上是否正常就行了...

五.MySQL线上备份

使用像上面的"档案"方式备份是个不错的方法,它最少可以保持该主机某个时间点的完整档案备份,但还是有一些问题需要考虑到,有些主机就不只建立一个 DB 而已,总不能为了备份某个 DB 而把整个MySQL 服务停止,备份档案的方式,回存在原主机上一定适用,但假如 MySQL 版本升级,或是在那天,该网页空间需迁机移机到别的主机时,那就没人敢保证备出来的资料档可以用,所以我们可以考虑另一种备份的方式,是使用MySQL 本身提供的功能: "MySQL Data Dump",指令是 "mysqldump".

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"一个MySQL数据库的简易备份方法介绍"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 一个MySQL数据库的简易备份方法介绍 相关内容
Google搜索中 一个MySQL数据库的简易备份方法介绍 相关内容
雅虎中 一个MySQL数据库的简易备份方法介绍 相关内容
Sogou搜索中 一个MySQL数据库的简易备份方法介绍 相关内容

相关软件 最新回复帖子:

·nesox让电子邮件营销原来如此轻松!
·Windows Vista 中卸载软件的不同方式
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描


  相关软件 一个MySQL数据库的简易备份方法介绍相关文章
MySQL入门学习之修改、备份和批处理 有关MySQL的双机热备份问题杂谈
通过PHP来实现XML备份MySQL数据库 MySQL数据库的备份和恢复经验简介
两个机器上MYSQL的互为备份问题 有关MySQL的数据同步备份复制问题
MySQL数据库的安装备份与密码恢复 教你如何使用MYSQL来备份数据恢复
教你MySQL数据库的主从及双机备份 有关MySQL数据库与标准的兼容性问题
数据库中有关差异备份的恢复问题 MySQL的本地备份和双机相互备份脚本
Mysql日常备份和增量备份脚本(Linux) 简单应用:一个Mysql自动备份脚本
MySQL数据库的多表操作和备份处理 MySQL下数据备份的系统解决方案简介
一个简便的MySql数据库备份的方法 MySQL数据库如何实现双机热备的配置
数据库安全基础入门知识简介 向你介绍MySQL数据库备份的简单知识