蒙在股里 发表于 2015-1-14 21:18:32

Linux教程之Centos下mysql经常使用的三种备份***

欢迎大家来到仓酷云论坛!mysql依照备份规复体例分为逻辑备份和物理备份
逻辑备份是备份sql语句,在规复的时分实行备份的sql语句完成数据库数据的重现
物理备份就是备份数据文件了,对照抽象点就是cp下数据文件,但真正备份的时分天然不是的cp这么复杂
这2种备份各有好坏,一样平常来讲,物理备份规复速率对照快,占用空间对照年夜,逻辑备份速率对照慢,占用空间对照小
上面先容以下3种经常使用的存案***

1、mysqldump工具备份
mysqldump因为是mysql自带的备份工具,以是也是最经常使用的mysql数据库的备份工具。撑持基于InnoDB的热备份。但因为是逻辑备份,以是速率不是很快,合适备份数据量对照小的场景。
mysqldump完整备份+二进制日记―>完成工夫点规复
温备:
在利用MyISAM引擎中,只能利用温备份,这时候候要避免数据的写进,以是先加上读锁
这时候候能够进进数据库手动加读锁。如许对照贫苦,在mysqldump工具中间接有一个加锁的选项
mysqldump--databasesmydatabase--lock-all-tables--flush-logs>/tmp/backup-`date+%F-%H-%M`.sql
假如是针对某张表备份,只需在数据库称号前面加上表称号就好了
这里注重,要完成工夫点的规复,加上--flush-logs选项,在利用备份文件规复后,然后再基于二进制日记举行工夫点的规复
工夫点的规复***
mysqlbinlogmysql-bin.000000x>/tmp/PointTime.sql
然后用mysql下令导进这个sql剧本就好了
热备:
假如利用的是InnoDB引擎,就不用举行对数据库加锁的操纵,加一个选项既能够举行热备份:--single-transaction
mysqldump--databasesmydb--single-transaction--flush-logs--master-data=2>/tmp/backup-`date+%F-%H-%M`.sql
注重点
规复的时候封闭二进制日记
mysql>setsql_log_bin=0;
由于这是基于逻辑备份体例,在规复日记时会实行sql语句拔出数据,而规复时分拔出数据的日记没成心义。
2、基于LVM快照备份
在物理备份中,有基于文件体系的物理备份(LVM的快照),也能够间接用tar之类的下令打包。但这些只能举行冷备份
分歧的存储引擎能备份的级别也纷歧样,MyISAM能备份到表级别,而InnoDB不开启每表一文件的话就只能备份全部数据库。
上面就先容下利用LVM的快照功效举行备份
为了宁静起首在数据库上施加读锁
mysql>FLUSHTABLESWITHREADLOCK;
革新一下二进制日记,便于做工夫点规复
mysql>FLUSHLOGS;
然后创立快照卷
lvcreateCL1GCsCndata-snapCpCr/dev/myvg/mydata
最初进进数据库开释读锁
UNLOCKTABLES;
挂载快照卷举行备份
mountCr/dev/myvg/data-snap/mnt/snap
然后对/mnt/snap下的文件举行打包备份
复原的时分,封闭mysqld,然后备份二进制日记后将本来备份的文件复原出来,然后经由过程二进制日记复原到堕落的工夫点(经由过程二进制复原工夫点的时分不要忘了临时封闭二进制日记)

3、利用percona供应的xtrabackup(保举)
撑持InnoDB的物理热备份,撑持完整备份,增量备份,并且速率十分快,并且撑持InnoDB引擎的数据在分歧数据库迁徙
为了让xtrabackup撑持更多的功效扩大,设置InnoDB每表一个文件的功效
在my.cnf的mysqld中到场此项:innodb_file_per_table=1
此项不启用将不撑持备份独自的表
但假如之前没有启用这个选项,要完成单表一文件的话,能够用mysqldump导出数据,然后启用该选项,规复归去后就是单表一文件了

起首下载xtrabackup
下载地点:http://www.percona.com/software/percona-xtrabackup
能够间接下载rpm包安装便可
xtrabackup有完整备份,增量备份和部分备份(后面开启innodb每表一文件,就是为了此功效)
1.完整备份全部数据库
innobackupex--user=root--password=123456/tmp/backup
此时会在/tmp/backup目次下天生以工夫为名的文件夹,内里是备份文件
在这里,备份的数据还不克不及间接用来复原,由于备份数据中会含有还没有提交的事件大概未同步到数据文件中的事物。这里必要用prepare回滚事物使数据文件处于分歧性。
innobackupex--apply-log/tmp/backup/dir
处置完成后才干用来复原数据,用此下令复原
innobackupex--copy-back/tmp/backup/dir
要完成工夫点复原,仍是必要利用二进制日记
2.增量备份
增量备份撑持Innodb,关于MyISAM只能完整备份
innobackupexCincremental/tmp/backup/incremental--incremental-basedir=/tmp/backup/dir
在举行一次增量备份--incremental-basedir要指向上一次增量备份的目次
假如要举行复原,先辈行prepare处置
这里处置的体例,将备份兼并
innobackupex--apply-log--redo-only/tmp/backup/dir
innobackupex--apply-log--redo-only/tmp/backup/dir--incremental-dir=/tmp/backup/incremental
最初利用完整备份的谁人备份复原
至于差别备份,只需每次将basedir指向完整备份文件夹就好了
最初再空话一句:要完成工夫点复原,是必要利用二进制日记的,以是备份好二进制日记相当主要。除非在规复工夫点和上一次备份工夫点这段工夫的数据对你来讲无所谓。。。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!

小女巫 发表于 2015-1-17 10:42:47

熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:

不帅 发表于 2015-1-24 12:40:25

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

小妖女 发表于 2015-2-1 16:10:20

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

老尸 发表于 2015-2-7 09:50:27

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?

再现理想 发表于 2015-2-22 01:43:47

熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。

柔情似水 发表于 2015-3-7 01:11:26

Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。

透明 发表于 2015-3-14 07:39:47

在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。

变相怪杰 发表于 2015-3-21 03:28:47

放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
页: [1]
查看完整版本: Linux教程之Centos下mysql经常使用的三种备份***