mysql存储计划:MySQL管理Bind软件中Zone数据的DLZ和SDB驱动对比
mysql存储计划:MySQL管理Bind软件中Zone数据的DLZ和SDB驱动对比2、Bind-9.11.12 扩展稳定版和MySQL数据库连接能使用Bind软件自带的DLZ驱动以及SDB驱动,官网地址驱动官方地址本文主要讨论两种MySQL驱动方式来管理Bind软件中的Zone数据经过一周不懈的测试,目前结果如下1、Bind-9.14.7 稳定版本和MySQL数据库连接只能使用Bind软件自带的DLZ驱动,官网地址
Bind是构成DNS服务器最主要的软件。官方地址如下(因头条不能发外链,请按如下地址输入)
Bind官方地址
,目前的版本如下
版本及生命周期
本文主要讨论两种MySQL驱动方式来管理Bind软件中的Zone数据
一、版本选择经过一周不懈的测试,目前结果如下
1、Bind-9.14.7 稳定版本和MySQL数据库连接只能使用Bind软件自带的DLZ驱动,官网地址
驱动官方地址
2、Bind-9.11.12 扩展稳定版和MySQL数据库连接能使用Bind软件自带的DLZ驱动以及SDB驱动,官网地址
官网地址
二、两种驱动的使用选择我们主要从两种驱动连接MySQL的数据库结构来区分
1、DLZ驱动的MySQL地址库结构
CREATE TABLE `dns_records` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT `zone` varchar(255) NOT NULL `host` varchar(255) NOT NULL DEFAULT '@' `type` enum('MX' 'CNAME' 'NS' 'SOA' 'A' 'PTR') NOT NULL `data` varchar(255) DEFAULT NULL `ttl` int(11) NOT NULL DEFAULT '800' `mx_priority` int(11) DEFAULT NULL `refresh` int(11) NOT NULL DEFAULT '3600' `retry` int(11) NOT NULL DEFAULT '3600' `expire` int(11) NOT NULL DEFAULT '86400' `minimum` int(11) NOT NULL DEFAULT '3600' `serial` bigint(20) NOT NULL DEFAULT '2008082700' `resp_person` varchar(64) NOT NULL DEFAULT 'root.domain.com.' `primary_ns` varchar(64) NOT NULL DEFAULT 'ns1.domain.com.' PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
2、SDB驱动的MySQL地址库结构
CREATE TABLE IF NOT EXISTS `domain_name` ( name varchar(255) default NULL ttl int(11) default NULL rdtype varchar(255) default NULL rdata varchar(255) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
3、从上面的数据库结构很容易就能看出来区别,使用官方自带的DLZ驱动,所有的解析记录都放在同一个表‘dns_records’中,好处是只有一个表,方便管理,方便设置回退点;坏处是如果有多个域名需要管理的话,是需要从一个表中进行查询的,如果有一条记录有问题,会影响整体的解析结果。如果不加载动态库,无法使用Bind软件的多线程。使用外部的SDB驱动,一个域名需要单独建立一个表,好处是可以多个域名方便管理,一个域名的表内数据有问题也不会影响整体解析结果;坏处就是SDB驱动不是官方自带的,而且很长时间不再更新了,会随时让你有深深的恐惧感 :(
最后更新时间在13年4月22日
三、综述在我看来,选择哪种驱动见仁见智,如果你像我一样有大部分不同域名需要日常经常维护的话,SDB驱动显然是非常合适的;但如果你只有少数的几个域名,而且又不愿意折腾的话(SDB驱动需要更改源代码文件),那使用DLZ驱动就很合适,而且也不用担心什么时候官方不再提供驱动支持。
日常管理的域名,使用SDB方式非常合适
(PS. 周末异想天开,想通过修改代码的方式让Bind-9.14.7支持外部的SDB驱动,改了一天,由于源代码变化实在太大,各种错误层出不穷,最终不得已放弃了这个想法,如果有朋友实现了,请别忘了告诉我一声。)
欢迎大家留言讨论。