深爱那片海 发表于 2015-1-16 22:19:12

MYSQL教程之MySQL浅易备份办法

据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。合用工具:MySQLDB办理员.
合用前提:对Linux情况有基本的办理及操纵才能.
文章附注:本篇文章为自在文件,接待非贸易性子转载,并请说明出处!
贸易性子转载请来信告诉!
出格注重:1.本篇文章供应之程式及设定*纷歧定*切合您的情况,
请依您的体系情况得当地修正程式及设定.
2.在实行任何具损坏性的举措及举动前,
请确认您已作好完全可用的材料备份事情.
目次内容
一.媒介
二.毛病修改
三.入手下手备份
四.怎样回存
五.MySQL线上备份
六.MySQL线上回存
七.入手下手排定备份
八.结语
九.参考材料
十.附录-备份Script原始档

一.媒介
前几周,合法我在网上康乐的冲浪,在酷!学园康乐的灌口水时,竟蹦出一页"phpBBcriticalerror",查询Database呈现毛病的讯息,中止了各学员在各系版唇枪激辩,强烈热闹的会商,固然过了不久,体系办理工友把网页修睦,但入手下手一连几个礼拜,phpBB会商区偶然仍是很简单挂失落,频次约莫是一至二周一次,一般都是在周末人人最闲的时侯产生的,幸亏此时恰好天下杯足球赛恰好开打,不克不及到学园注水,起码另有足球赛能够看.事先修护的体例,是将MySQL服务中断,再把前一次可用的DB档案盖归去,然後再从头启动MySQL服务来测试phpBB是不是一般,如许子的作法一般都无效,但老是会丢失某一段工夫内的文章,这不是人人所但愿的...为了保留很多可贵的材料和学园们恶心的口水,我入手下手著手筹办DB的备份事情,筹办重修这个有成绩DB,更加未来校园的迁址作DB移转筹办.
(DB:Database的简称,以下都以DB代替Database,
phpBB:酷!学园会商区体系的软体称号)
二.毛病修改
花了一些工夫熟习主机的情况後,我入手下手寻觅毛病在那边...检测MySQL内phpBB的DB後发明,有个users的table是有成绩的,
利用myisamchk实验往修护,发明还不可用预设体例修护,还要多加个"-o"的参数才行,在利用myisamchk时,为制止另有用户来存取DB,最好是可以将MySQL服务中断,否则起码也要下个"mysqladminflush-tables"後,再作myisamchk指令,像:
myisamchk-ophpbb2_users.MYI
这个举措,大概要作个2~3次,直到没有毛病的讯息呈现!修护完,从头启动MySQL服务後,就能够用mysql这个client的指令,往Query一下DB内容,测试看是不是一般.很侥幸的,DB的部分在此时,运作是一般的.固然,在你要备份之前,假设能先检测材料是不是准确,那是最好不外了,假设有必要,能够把检测的事情,排定在备份事情之前,可是记得,这个检测DB的举措不要排定在DB高用量的那段工夫,深夜无人上线的时段是个不错的选择!

三.入手下手备份
phpBB会商区的材料档,次要有两个部分,就是php主程式和DB内容,
php主程式的备份就对照复杂,只需把全体档案tar起来就好了,就像:
tarcvfzphpbb2_20020601.tgzphpbb
(下面的phpbb是指phpBB的php网页程式寄存目次.)
以後有改到phpBB网页程式部分再从头备份一次就行,它的内容材料都写在DB内,以是php程式档部分异动性应当不年夜.
再来就是MySQLDB部分了,预设MySQL的DB档案是存在/var/lib/mysql内,以DB称号为目次,目次内就是该DB的一切材料,像phpbb2这个DB,就是存在/var/lib/mysql/phpbb2内,在备份前,由于怕材料还没有完整写进磁碟,并且MySQL会Lock在利用的DB档案,以是应当是要先把MySQL先Shutdown一下,全部备份的程序能够下像上面的指令往完成:
/etc/rc.d/init.d/mysqldstop
tarcvfzphpbb2_db_20020601.tgzphpbb2
/etc/rc.d/init.d/mysqldstart
(下面的phpbb2是指寄存phpbb2这个DB的目次.)Ok!如许就完成了!(什麽?就如许!3行就停止了?!)
对!如许就能够了!不外要注重的是,怕DB内每一个Tables间的材料有关联系关系性,以是最好是把全部DB一次备起来,独自只备哪一个Tables的档案,以後回存时,怕会有材料联系关系纷歧致的成绩!以酷!学园的口水会商区为例,有21000笔摆布的文章加上1200名注册会员,材料库
全部tar起来约莫30几MB摆布,天天备份,以一周为周期来盘算,备份约莫只必要
(35*7=245)200多MB摆布的空间,一礼拜的备份烧在一张光碟还够!
本旧事共3页,以后在第1页123


四.怎样回存
phpBB会商区的回存,只需把档案解回本来寄存网页的路径就能够,用以下指令解开:
tarxvfzphpbb2_20020601.tgz
DB产生毛病而要回存时,实在也不难,先找出比来一次完全一般的备份,先把如今毛病的网页或DB先改名或tar起来,再把好的备份给解开回本来目次地位就好了,必要注重的是,MySQL服务最好也是要先中断,回存完成後再启动服务,回存DB的全部程序
大概像上面:
/etc/rc.d/init.d/mysqld.stop
mvphpbb2phpbb2_error
tarxvfzphpbb2_db_20020601.tgz
/etc/rc.d/init.d/mysqld.start
然後再往测试一下网页及材料库!看利用上是不是一般就好了...

五.MySQL线上备份
利用像下面的"档案"体例备份是个不错的办法,它起码能够坚持该主机某个工夫点的完全档案备份,但仍是有一些成绩必要思索到,有些主机就不但创建一个DB罢了,总不克不及为了备份某个DB而把全部MySQL服务中断,备份档案的体例,回存在原主机上必定合用,但假设MySQL版本晋级,或是在那天,该网页空间需迁机移机到其余主机时,那就没人敢包管备出来的材料档能够用,以是我们能够思索另外一种备份的体例,是利用MySQL自己供应的功效:"MySQLDataDump",指令是"mysqldump".
利用MySQL的Dump功效能够把DB的"布局","材料"或"布局加材料"Dump成笔墨档,mysqldump指令供应的弹性很年夜,你能够选择把全部DBDump成一个档,或是每一个Table为一个档,乃至是把布局档和材料分隔贮存都能够.检测酷!学园的phpBB材料库後发明,以布局加材料FullDump成一个档案,档案的巨细约莫也是30几MB摆布.在Dump之前最很多多少下个Flush-Logs更新LOG,以是全部Dump的指令以下:
mysqladmin-uroot-pflush-logs
mysqldumpphpbb2-uroot-popt>phpbb2_20020601.sql
(phpbb2是DB称号,opt是一个利用完全Dump参数)
再利用time指令往测试实行工夫,这个30几MB的DB,Dump出来竟只需15秒摆布,Query的速率还真是快,假设只是要独自Dump某个Table时,只需在下面的指令後,转出标记">"前加个Table称号就能够,如只需phpbb2_users这个Table的Dump时,只需下:
mysqldumpphpbb2-uroot-poptphpbb2_users>phpbb2_users_20020601.sql
Dump出来的档案是个纯笔墨档,你能够用tar把它压起来,以下面30几MB的DB为例,约莫能够把档案巨细压到1/3摆布的巨细,由于Dump出是笔墨档,一切的材料都是以明文显现,以是必需注重一下备份档保留的平安性,并且倡议备份档最好再别的贮存於异地和其他易於保留的媒体上,像光碟片或磁带,如许的备份才成心义.

六.MySQL线上回存
若要回存全部材料库,只需将紧缩的备份档复原成Dump的档案,再用上面的指令回存:
mysqlphpbb2-uroot-p<phpbb2_20020601.sql
这边需注重的是,若创建备份时是以"opt"或"add-drop-table"为参数时,回存的举措是先将旧的Table先删除,重修Table的布局後再把Data汇进,以是回存後,一切的材料会回到你事先备份谁人工夫点,因而在回存材料时,能够思索把现有毛病或不完全的DB先备份一份上去,以备不时之需,或是拿来比对毛病的中央在那边,固然你也能够把材料回存到另外一个测试用的DB内,只需把下面指令的DB称号改成你的测试用DB称号便可.
利用这类回存体例,MySQL服务不需中断,也不会动到其他正在利用的DB,在一些供应MySQL服务的假造主机,可用这类体例作你本人的DB备份及回存.
别的,假设你是体系重修或是移机时,切需在新的MySQL内,新建一个空缺DB後,才行作回存的事情,你能够用上面的指令创建:
mysql-uroot-p-e"CREATEDATABASEphpbb2"
(下面的phpbb2是你要新建的DB称号)
另外一种作法,先用"mysql"指令进进"mysqlclientconsole",然後再用:
CREATEDATABASEphpbb2;
如许就好了,记得尾端要加个";"标记该行指令才会实行.


共2页:上一页1下一页
客户还是可以使用DBaaS系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。

精灵巫婆 发表于 2015-1-19 08:35:58

从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。

乐观 发表于 2015-1-26 20:21:08

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

活着的死人 发表于 2015-2-4 20:44:05

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

蒙在股里 发表于 2015-2-10 09:01:26

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

只想知道 发表于 2015-3-1 08:09:20

sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西

老尸 发表于 2015-3-10 13:11:04

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

冷月葬花魂 发表于 2015-3-17 08:09:34

我个人认为就是孜孜不懈的学习

灵魂腐蚀 发表于 2015-3-24 03:55:06

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
页: [1]
查看完整版本: MYSQL教程之MySQL浅易备份办法