1.冷备
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。
只能提供到“某个时间点”的恢复;不能按表和用户恢复;工作是需要关闭数据库;恢复对版本有很高要求
备份速度取决于存储引擎类型
cp
1.找到数据目录存放位置
2.把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入
3.关闭mysql服务器
4.备份
注意,对于 Innodb 类型表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。
2.热备
热备份是在数据库运行的情况下,备份数据库操作的sql语句。
mysqldump
mysqldump 是采用SQL级别的备份机制(逻辑备份),它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法
Mysqldump命令的工作原理很简单,它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换为一条INSTERT语句。这些CREATE语句和INSTERT语句都是还原时使用的。还原数据时就可以使用其中的CREATE语句来创建表。使用其中的INSERT语句来还原数据。它可以实现整个服务器备份,也可以实现单个或部分数据库、单个或部分表、表中的某些行、存储过程、存储函数、触发器的备份;并且能自动记录备份时刻的二进制日志文件及相应的位置。对于InnoDB存储引擎来讲支持基于单事务模式实现热备,对于MyISAM则最多支持温备。
MySQL数据库压缩备份
仅备份数据库结构
备份服务器上所有数据库
还原需要先手动创建一个数据库 db_name
还原MySQL数据库的命令
还原压缩的MySQL数据库
二进制(binlog)
二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。
启用binlog。
server-id = 1 log-bin = binlog log-bin-index = binlog.index
1.滚动日志复制文件<br> 终止对当前 binlog 的写入
复制导出二进制文件
2.mysqlbinlog导出二进制日志文件内容
3.恢复
ps:如果是备份复制系统中的从服务器,还应该备份 master.info 和 relay-log.info 文件。
mysqldump全备 + binlog增备
http://www.bitsCN.com/article/74613.htm<br> http://www.bitsCN.com/article/22727.htm
mysqlhotcopy
mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotcopy 只能用于备份 MyISAM,并且只能运行在 类Unix 和 NetWare 系统上。
安装
备份
