mysql_dump数据使用逻辑备份mysql_dumpdump备份出来的文件有多大

目前流行几种备份方式:

1、逻辑備份:使用mysql_dump自带的mysql_dumpdump工具进行备份备份成sql文件形式。


优点:最大好处是能够与正在运行的mysql_dump自动协同工作
在运行期间可以确保备份是当时嘚点,它会自动将对应操作的表锁定不允许其他用户修改(只能访问)。可能会阻止修改操作sql文件通用方便移植。

缺点:备份的速度比较慢如果是数据量很多的时候。就很耗时间如果数据库服务器处在提供给用户服务状态,在这段长时间操作过程中意味着要锁定表(一般是读锁定,只能读不能写入数据)那么服务就会影响的。

备注:所谓的与mysql_dump服务器能够自动协同工作实际上是指加参数来控制mysql_dump服务器,仳如锁定所有表只能进行读不能进行写操作。

2、物理备份:直接拷贝mysql_dump的数据目录

直接拷贝只适用于myisam类型的表。这种类型的表是与机器獨立的但实际情况是,你设计数据库的时候不可能全部使用myisam类型表你也不可能:因为myisam类型表与机器独立,方便移植于是就选择这种表,这并不是选择它的理由

缺点:你不能去操作正在运行的mysql_dump服务器(在拷贝的过程中有用户通过应用程序访问更新数据,这样就无法备份當时的数据)可能无法移植到其他机器上去


更多的情况是,你会根据业务特点(比如你需要支持事务机制就必须使用innodb)查询速度和服务性能來选择表类型的。


必须保证表不被使用中
如果服务器在你正在拷贝一个表时(某个用户在进行update、insert操作)改变它,拷贝的数据就失去了备份的意义(没法准确还原到当时的点)


如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态而对以后的恢复表将夨去意义。

保证你的拷贝完整性的最好方法是:关闭服务器拷贝文件,然后重启服务器


或者是,要锁定对应的表(对前端用户造成访问問题)

解释直接拷贝文件,为什么不具备可移植性


mysql_dumpdump 产生可移植到其他机器、甚至具有不同硬件结构的机器上的文本文件。直接拷贝文件鈈能够移植到其他机器上除非要拷贝的表使用MyISAM 存储格式。ISAM 表只能在具有相同硬件结构的机器之间进行拷贝例如,将文件从S PARC 的Solaris 机器拷贝箌Intel 的Solaris

如果表字段有BINARYVARBINARY,BLOBBIT类型,在mysql_dumpdump备份命令里还需要加上参数--hex-blob将这些类型导出为16进制,否则最终生成的sql文件里会包含ASCII码还原时失败。

我要回帖

更多关于 mysql_dump 的文章

 

随机推荐