mysql

Posts filed under mysql

从数据库的原理及备份方案

Filed in 服务器Tags:

主从服务器技术,又叫数据库复制,是一种从一个服务器到多个服务器的异步同步技术,同步延时视主服务器的负载而定
数据库复制的技术细节如下:

1、主服务器把数据更新记录到二进制日志中
2、从服务器把主服务器的二进制日志拷贝到自己的中继日志中
3、从服务器重做中继日志的时间,把更新应用到自己的数据库上。

复制不光可以复制,由于他的短延时的特性(通常几秒钟)还可以做数据库负载均衡
通常网上使用的方法是DNS轮询,即通过DNS服务器返回不同的ip,已达到负载均衡的目的
但是,介于咱们学校的DNS服务器实在是不给力,和外部的DNS通信太慢,所以,改方式不适用与极速
第二个方案是做主从服务器读写分离,当然也有多种办法,有些插件变可以实现这项功能,但是由于极速特殊情况的存在,不利于控制
于是,选用使用php代码的方式,来控制读写分离,这样,易于控制和合理的调整

关于备份我的想法:
从刚才的分析可以看出,复制基本上可以解决服务器的备份问题,但是存在一种较为特殊的情况
那就是,当对主服务器误操作的时候,复制会立刻将修改更新的从服务器上,这样就比较麻烦
所以,即使有了主从服务器,还是需要对数据库进行定期的备份
备份的方式据我了解有以下四种

1、冷备份:
通过对frm文件、共享表空间文件、ibd文件、重做日志文件进行直接拷贝即可。由于mylisam只需要对frm和ibd进行拷贝即可,所以一般人会忽视共享表空间文件和重做日志文件,导致其余类型的数据库无法启动(而且说实在话,我还真不知道这两种文件在什么地方……)
而且该方法必须停止数据库进程,否则极易出现数据表损坏的情况,所以叫冷备份。(某个开着数据库备份的大大自弹小鸡鸡谢罪吧)
2、逻辑备份
即使用mysqlddump命令,
个人比较推崇这种方法产生,该方法不需要停掉数据库(停掉数据库这个语句也执行不起来……)
生产的是sql文件,跨平台性强,易于导入,
但是有个小小的问题,由于该语句相当于selet语句的原理,所以在出现update的语句是可能会造成排队现象
比较适合在深夜执行
3、热备份
顾名思义,和冷备份相对,可以在不停止数据库的情况下进行备份,而且不会影响到sql语句,是一种非常优秀的备份方式
但是有个比较大的问题,官方提供的ibbackup插件是收费的,啦啦啦啦啦啦……
当然有一种叫做XtraBackup的替代方案,还可以实现增量备份,不过没有实验过,可以考虑试试~
4、硬盘镜像
改方案必须使用LVM的硬盘模式,使用写时复制的技术,不会对原硬盘数据的读写造成任何的影响,是一种非常值得考虑的技术
当然,由于是全盘镜像,会对硬盘造成极大的压力,只一点不得不考虑

先写这么多吧,其实这个假期主要是对innodb进行了大量的研究,结果发现这个技术只有当内存超过数据库大小是才能体现出最高的效率
内存太贵了,so,放弃了……
还是主从数据库吧……

最近评论
Click to view/hide
 
Click to view/hide
2019年八月
« 8月    
 1234
567891011
12131415161718
19202122232425
262728293031  
站点功能
Click to view/hide