求助:bind+dlz+mysql+view 运行一段时间后提示不能连接数据库 - 服务器应用-chinaunix


本站和网页 http://bbs.chinaunix.net/thread-1003562-1-1.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

求助:BIND+DLZ+MYSQL+VIEW 运行一段时间后提示不能连接数据库 - 服务器应用-Chinaunix
忘记密码 -->    免费注册 查看新帖 | 论坛精华区 快捷导航 竞拍 Auction 商店 论坛 BBS 排行榜 Ranklist   平台 博客 文库 频道 :--> 自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统 › IT运维 服务器应用
求助:BIND+DLZ+MYSQL+VIEW 运行一段时间后提示不能连接 ...
最近访问板块
版块跳转
新手园地
      硬件问题
Linux系统管理
Linux网络问题
Linux环境编程
Linux桌面系统
国产Linux
BSD
      BSD文档中心
AIX
      新手入门
      AIX文档中心
      资源下载
      Power高级应用
      IBM存储
AS400
Solaris
      Solaris文档中心
HP-UX
      HP文档中心
SCO UNIX
      SCO文档中心
互操作专区
IRIX
Tru64 UNIX
Mac OS X
门户网站运维
集群和高可用
监控和防护
虚拟化技术
架构设计
行业应用和管理
服务器及硬件技术
      服务器资源下载
云计算
      云计算文档中心
      云计算业界
      云计算资源下载
存储备份
      存储文档中心
      存储业界
      存储资源下载
      Symantec技术交流区
安全技术
网络技术
      网络技术文档中心
      GUI编程
      Functional编程
内核源码
      内核问题
移动开发
      移动开发技术资料
Shell
Perl
Java
      Java文档中心
      php文档中心
Python
      Python文档中心
Ruby
CPU与编译器
嵌入式开发
驱动开发
Web开发
VoIP开发技术
      MySQL文档中心
Sybase
Oracle
PostgreSQL
DB2
Informix
数据仓库与数据挖掘
NoSQL技术
IT业界新闻与评论
IT职业生涯
      猎头招聘
IT图书与评论
      CU技术图书大系
      Linux书友会
二手交易
下载共享
Linux文档专区
IT培训与认证
      培训交流
      认证培训
清茶斋
投资理财
运动地带
快乐数码摄影
      摄影器材
      摄影比赛专区
IT爱车族
旅游天下
站务交流
版主会议室
博客SNS站务交流区
CU活动专区
      Power活动专区
      拍卖交流区
频道交流区
查看:
10083
回复:
[DNS]
求助:BIND+DLZ+MYSQL+VIEW 运行一段时间后提示不能连接数据库
[复制链接]
lzylwy
当前离线
丰衣足食
丰衣足食, 积分 807, 距离下一级还需 193 积分
串个门
加好友
打招呼
发消息
问答
好友
消息
论坛徽章:
电梯直达
[收藏(
)]
[报告]
发表于 2007-10-17 12:50
只看该作者
倒序浏览
安装什么都是正常的,启动也是没有问题的,但是运行一段时间后连接MYSQL数据库的进程就没有掉了,也没有什么日志,只是在BIND的日志有这样的一句
17-Oct-2007 12:24:13.587 client: client @0xb56dd130: udprecv
17-Oct-2007 12:24:13.587 database: mysql driver unable to return result set for findzone query
出现这个总是生新reload一下又是正常了,查询什么的都是可以的,但过了一段时间后又会出现这样的问题,不能连接MYSQL ,这个时间不是固定的
BIND的版本是9.4.1-P1
named.conf如下:
options {
        listen-on port 53 { 127.0.0.1;192.168.0.8; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        //recursion no;
        allow-query-cache { none; };
        allow-recursion { none; };
        datasize 2098;
        //auth-nxdomain no;
};
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
                print-time yes;
                print-category yes;
        };
        category queries {
                default_debug;
        category config {
        category database {
include "/etc/cnc.ip";
include "/etc/view.conf";
include "/etc/rndc.key";
复制代码
view.conf的内容如下:
view "cnc_view" {
        match-clients{ CNC; };
        zone "." IN {
                type hint;
                file "named.ca";
        include "/etc/named.rfc1912.zones";
        dlz "cnc_view" {
                database "mysql
                {host=127.0.0.1 port=3306 dbname=dns user=dns pass=****}
                {SELECT zone FROM chinacnc_records WHERE zone = '%zone%'}
                {SELECT ttl, type, mx_priority, CASE WHEN lower(type)='txt' THEN '\"' || data || '\"' ELSE data END FROM chinacnc_re
cords WHERE zone = '%zone%' AND host = '%record%' AND NOT (type = 'SOA' OR type = 'NS')}
                {SELECT ttl, type, mx_priority, data, contact, serial, refresh, retry, expire, minimum FROM chinacnc_records WHERE z
one = '%zone%' and (type = 'SOA' or type='NS')}
                {SELECT ttl, type, host, mx_priority, data, contact, serial, refresh, retry, expire, minimum FROM chinacnc_records W
HERE zone = '%zone%'}
                {select zone from chinacnc_xfr_table where zone = '%zone%' and client = '%client%'}
                {update chinacnc_count set count = count + 1 where zone ='%zone%'}";
//
//chinanet and other view
view "chinanet_other_view" {
        match-clients{ any; };
        
        dlz "chinanet_other_view" {
                {host=127.0.0.1 port=3306 dbname=dns user=dns pass=*****}
                {SELECT zone FROM chinanet_records WHERE zone = '%zone%'}
                {SELECT ttl, type, mx_priority, CASE WHEN lower(type)='txt' THEN '\"' || data || '\"' ELSE data END FROM chinanet_re
                {SELECT ttl, type, mx_priority, data, contact, serial, refresh, retry, expire, minimum FROM chinanet_records WHERE z
                {SELECT ttl, type, host, mx_priority, data, contact, serial, refresh, retry, expire, minimum FROM chinanet_records W
                {select zone from chinanet_xfr_table where zone = '%zone%' and client = '%client%'}
                {update chinanet_count set count = count + 1 where zone ='%zone%'}";
请大家帮偶看看是什么问题。
先谢谢大家了
本帖最后由 lzylwy 于 2007-10-17 12:52 编辑
文库|博客
U-Mail邮件服务器分布式+双机热备方案.doc
kafka删除topic
大白话了解哈希洪荒攻击
cratedb导入json数据
REdis一致性方案探讨
llzqq
广告杀手
发表于 2007-10-17 14:14
BIND+MYSQL达到实用的程度很难(主要是MYSQL不堪重负)。建议LZ检查MYSQL的并发连接数限制。
实战分享:从技术角度谈机器学习入门
【大话IT】RadonDB低门槛向MySQL集群下战书
ChinaUnix打赏功能已上线!
新一代分布式关系型数据库RadonDB知多少?
发表于 2007-11-10 17:46
回复 #2 llzqq 的帖子
这个问题后来用bind+SDB+mysql来做了,这个方案对于不用经常添加\删除域来说还算是比较的稳定.
badb0y
富足长乐
富足长乐, 积分 6866, 距离下一级还需 1134 积分
发表于 2007-11-19 10:20
LS的,,,
bind+SDB+mysql怎么做呀,楼上的可否写个文档?
langzi289
白手起家
白手起家, 积分 139, 距离下一级还需 61 积分
发表于 2007-12-18 11:19
您把您的所有配置都发上来,看下是不是配置路径有问题。我配置的mysql可以连接但是不能正常使用,我看我的配置和你的有什么不同。
发表于 2008-01-09 20:10
回复 #4 badb0y 的帖子
BIND + SDB + DLZ 都会存在当连接到MYSQL的空闲时间达到MYSQL最大的空闲时间时连接被强行断开的情况,最糟糕的是连接断开后SDB 和 DLZ都不会进行自动重连,要实现自动重连需要修改SDB 和 DLZ的源码, 在连接数据库时加上自动重连的参数,这个可以参考MYSQL  C 语言的 API.
对于我前面说的 BIND + DLZ会不定时的断开数据库连接,是因为BIND +DLZ 在LINUX 下不能用多线程的原故(官方有说明的),我一直是开启多线程的,关于这一点在DLZ的官方网站有详细的说明.(那时偶怎么就会去官方网站去看看,到后面是实在没有招了,去官方网站认真的看了一遍文档,唉.) 对于已经开启线程编译好的BIND 可以在启动时加上 "-n 1" 的参数就可以让named 只开启一个工作线程了.
BIND + SDB 对域名数较少,不经常增减域名的还是比较合适的,效率也较可以,要是再加上 memcache 的缓存那样应该就会更好了.
BIND + DLZ 灵活些,但效率会比较低点(一个DNS查询要执行多条SQL语句.),但是要是也加上memcache的缓存可能会好些.
(偶是这么想的,不知道对不对.呵呵)
本帖最后由 lzylwy 于 2008-1-9 20:17 编辑
scyzxp
版主
发表于 2008-01-11 20:50
原帖由
于 2008-1-9 20:10 发表
BIND + SDB + DLZ 都会存在当连接到MYSQL的空闲时间达到MYSQL最大的空闲时间时连接被强行断开的情况,最糟糕的是连接断开后SDB 和 DLZ都不会进行自动重连,要实现自动重连需要修改SDB 和 DLZ的源码, 在连接数据库 ...
对于不自动重连的情况,有三方补丁解决了这个问题。我的现在的BIND+DLZ+MYSQL+VIEW运行得好好的,还有就是你说的单线程的问题,我的BIND也是单线程的工作的,效率感觉还可以。我的VIEW主要用于CDN网络的智能解析。没有出现过什么特别的问题
gregry
白手起家, 积分 34, 距离下一级还需 166 积分
发表于 2008-08-16 17:37
于 2008-1-11 20:50 发表
对于不自动重连的情况,有三方补丁解决了这个问题。我的现在的BIND+DLZ+MYSQL+VIEW运行得好好的,还有就是你说的单线程的问题,我的BIND也是单线程的工作的,效率感觉还可以。我的VIEW主要用于CDN网络的智 ...
你说的第三方补丁在哪里可以下载?能否完美解决LZ说的问题?
我找到个补丁,但貌似是扩展Bind的关键字的:
http://team.lea-linux.org/prae/dlz/
mb
丰衣足食, 积分 905, 距离下一级还需 95 积分
发表于 2008-09-26 11:59
mysql 默认8小时timeout问题
返回列表
Chinaunix
高级模式
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
注册
本版积分规则
发表回复
回帖后跳转到最后一页
ChinaUnix官方微信
构架师技术大会
扫码送文库金币
北京盛拓优讯信息技术有限公司. 版权所有
京ICP备16024965号-6
北京市公安局海淀分局网监中心备案编号:11010802020122
niuxiaotong@pcpop.com
17352615567
未成年举报专区
中国互联网协会会员  
联系我们
:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处
清除 Cookies
ChinaUnix
Archiver
WAP
TOP
积分 0, 距离下一级还需
积分