MYSQL的备份有多少种,请简要的描述:
数据库分逻辑备份物理备份
物理备份又分冷备和热备
A.直接拷贝数据文件到安全地方进行保存
B.使用MYSQLHOSTCOPY备分数据
C.使用MYSQLDUMP备份数据
D.使用MYSQL的同步复制,实现数据实时数据同步备份
常用的逻辑备份主要就是两种:一种是将数据生成为可以完全重现当前数据库中的数据的insert语句,另一种是将数据通过逻辑备份软件,将数据库表的数据以特定分隔符进行分割后记录在文本中。
对于第一种生成insert语句来说我们可以直接使用mysql自带的工具mysqldump来完成。这种方式不好之处在于可能导致数据的不一致,或是不完整。解决办法:一个是通过在数据库系统中加入写入锁,只提供数据库的查询服务;第二种是对于支持事务的存储引擎来说,INNODB BDB可以通过将整个备份过程控制在一个事务中,来达到备份数据的一致性和完整性;并且可以不用影响到数据库的正常运行。
恢复方式则是通过mysql
第二种直接生成数据格式。占用的空间小,数据格式清晰。可是没有数据库结构的脚本。不容易控制
实现方式:通过select******* to outfile from***命令来实现。恢复方式就是通过,load data infile和mysqlimport命令来做。
这一过程相当的复杂需要实时的进行恢复测试,保证备份数据是可用的
数据库的物理备份,主要的对象是数据库的物理数据文件,日志文件以及配置文件等。
物理数据文件有哪些呢?
一是日志文件6大类:错误日志error Log、二进制日志binary Log、更新日志 update log、查询日志 query log、慢查询日志 slow query log、innodb的redo日志。
二是数据文件?对于myisam来说的话,.frm表结构信息.myd数据信息.myi数据的索引信息。对于Innodb来说的话.ibd文件(独享表空间)和.ibdata(共享表空间)文件。
三是replication文件?master.info存储在slave端的数据目录下,存放了slave和master的相关信息,relay log和 relay log index主要存储了I/O进程从Master端读取到的binary log信息,然后由slave端的SQL线程从该binary log中读取解析过的日志信息,转化成master所能执行的query语句。index则是存放binarylog的路径也就是目录文件。
四是系统文件?如my.cnf、pid文件是mysqld应用程序中的一个进程文件存放自己的进程id还有就是socket文件它只有在linux下才有的,可以不通过tcp/ip网络协议直接连接mysql
如果是做冷备的话,直接复制所有的数据文件和日志文件到备份集存放的地方,
热备的方法针对不多的数据库有不同的方案