[20180428]DNS与ORA-12154错误.txt

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: [20180428]DNS与ORA-12154错误.txt --//今天建立并测试DNS,使用名字代替IP登录数据库,遇到ORA-12154错误,做一个记录: 1.环境: --//首先我建立dns使用dnsmasq,很简单仅仅需要把IP与机器名加入/etc/hosts,启动dnsmasq就ok了.

[20180428]DNS与ORA-12154错误.txt

--//今天建立并测试DNS,使用名字代替IP登录数据库,遇到ORA-12154错误,做一个记录:

1.环境:
--//首先我建立dns使用dnsmasq,很简单仅仅需要把IP与机器名加入/etc/hosts,启动dnsmasq就ok了.

--//环境:最后一列表示主机名:
192.168.100.78 DNS服务器与数据库   gxqyydg4
192.168.100.33 client端            icaredg

--//2台机器修改/etc/resolv.conf,加入:
nameserver 192.168.100.78

--//192.168.100.33 client端       icaredg 执行:
# host icaredg 192.168.100.78
Using domain server:
Name: 192.168.100.78
Address: 192.168.100.78#53
Aliases:

Host icaredg not found: 5(REFUSED)
--//client Ip不做解析.

# host gxqyydg4
gxqyydg4 has address 192.168.100.78
Host gxqyydg4 not found: 5(REFUSED)
Host gxqyydg4 not found: 5(REFUSED)

# host 192.168.100.78
78.100.168.192.in-addr.arpa domain name pointer gxqyydg4.com.

2.测试:
--//192.168.100.33 client端:
$ sqlplus -S -l scott/book@gxqyydg4:1521/book
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

--//出现ora-12154错误!!
--//使用strace跟踪重复测试:
$ strace -f -o /tmp/xx1.txt sqlplus -S -l scott/book@gxqyydg4:1521/book
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

--//检查跟踪文件发现如下内容:
16336 ioctl(7, FIONREAD, [38])          = 0
16336 recvfrom(7, " m\201\205\0\1\0\0\0\0\0\0\10gxqyydg4\vlocaldomai"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.100.78")}, [16]) = 38
16336 close(7)                          = 0
16336 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
16336 connect(7, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.100.78")}, 28) = 0
16336 fcntl(7, F_GETFL)                 = 0x2 (flags O_RDWR)
16336 fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
16336 poll([{fd=7, events=POLLOUT}], 1, 0) = 1 ([{fd=7, revents=POLLOUT}])
16336 sendto(7, " m\1\0\0\1\0\0\0\0\0\0\10gxqyydg4\vlocaldomai"..., 38, MSG_NOSIGNAL, NULL, 0) = 38
16336 poll([{fd=7, events=POLLIN}], 1, 5000) = 1 ([{fd=7, revents=POLLIN}])
16336 ioctl(7, FIONREAD, [38])          = 0
16336 recvfrom(7, " m\201\205\0\1\0\0\0\0\0\0\10gxqyydg4\vlocaldomai"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.100.78")}, [16]) = 38
16336 close(7)                          = 0
16336 open("/u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb", O_RDONLY) = 7
16336 fcntl(7, F_SETFD, FD_CLOEXEC)     = 0
16336 lseek(7, 0, SEEK_SET)             = 0
16336 read(7, "\25\23\"\1\23\3\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 256) = 256"
16336 lseek(7, 512, SEEK_SET)           = 512
16336 read(7, "Q\32C5V[\340u\374\205\200\224y\352\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
16336 lseek(7, 1536, SEEK_SET)          = 1536
16336 read(7, "`\32m\32{\32\222\32\232\32\365\32\0\33\f\33)\33>\33$\34-\0346\34@\34L\34T\34"..., 512) = 512
16336 lseek(7, 221696, SEEK_SET)        = 221696
16336 read(7, "\v\0B/\0\0J\0C/\0\0q\0D/\0\0\232\0v/\0\0\321\0w/\0\0\350\0"..., 512) = 512
16336 close(7)                          = 0
16336 lseek(4, 512, SEEK_SET)           = 512
16336 read(4, "\245\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
16336 lseek(4, 1024, SEEK_SET)          = 1024
16336 read(4, "\26\0*\0R\0h\0\201\0\236\0\350\0\374\0\n\1#\1?\1M\1\251\1\307\1\346\1\3\2"..., 512) = 512
16336 lseek(4, 5120, SEEK_SET)          = 5120
16336 read(4, "\r\0\351\0\0\0V\0\352\0\0\0\220\0\353\0\0\0\240\0\356\0\0\0\320\0\357\0\0\0\344\0"..., 512) = 512
16336 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0
16336 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b50e4535000
16336 write(1, "ERROR:\n", 7)           = 7
16336 write(1, "ORA-12154: TNS:could not resolve"..., 66) = 66
16336 write(1, "\n", 1)                 = 1
16336 write(1, "\n", 1)                 = 1
16336 write(1, "SP2-0751: ", 10)        = 10
16336 lseek(4, 512, SEEK_SET)           = 512
16336 read(4, "\245\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
16336 lseek(4, 1024, SEEK_SET)          = 1024
16336 read(4, "\26\0*\0R\0h\0\201\0\236\0\350\0\374\0\n\1#\1?\1M\1\251\1\307\1\346\1\3\2"..., 512) = 512
16336 lseek(4, 18432, SEEK_SET)         = 18432
16336 read(4, "\10\0\351\2\0\0008\0\352\2\0\0s\0\353\2\0\0\232\0\355\2\0\0\332\0\356\2\0\0\7\1"..., 512) = 512
16336 write(1, "Unable to connect to Oracle.  Ex"..., 47) = 47

--//视乎解析正常的,但是发现
16336 sendto(7, " m\1\0\0\1\0\0\0\0\0\0\10gxqyydg4\vlocaldomai"..., 38, MSG_NOSIGNAL, NULL, 0) = 38

--//很明显被解析成了gxqyydg4.localdomai,而实际上192.168.100.78的全名是 gxqyydg4.com

--//在192.168.100.78 DNS服务器与数据库 执行:
# grep 100.78 /etc/hosts
192.168.100.78   gxqyydg4.com gxqyydg4

--//可以发现全名实际上是gxqyydg4.com.

3.如何解决这个问题呢?
--//一个解决方法就是在主机名后面加入一个.(点),执行如下:
$ sqlplus -S  -L  scott/book@gxqyydg4.:1521/book <<< 'select sysdate from dual;'

SYSDATE
-------------------
2018-04-28 09:52:46

--//另外的解决方法加入修改192.168.100.33的客户端加入/etc/resolv.conf,内容如下,加入search com.
# cat /etc/resolv.conf
search localdomain
search com
nameserver 192.168.100.78

$ sqlplus -S  -L  scott/book@gxqyydg4:1521/book <<< 'select sysdate from dual;'

SYSDATE
-------------------
2018-04-28 09:54:07

$ sqlplus -S  -L  scott/book@gxqyydg4.com:1521/book <<< 'select sysdate from dual;'

SYSDATE
-------------------
2018-04-28 09:54:12

--//OK,问题解决.

目录
相关文章
|
网络协议 域名解析 网络架构
DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务)。域名系统为Internet上的主机分配域名地址和IP地址。由于网络中的计算机都必须有个IP地址,来识别, 互相之间才能通信,但让我们记住一大串的IP地址来访问网站显然是不可能的,所以用户使用域名地址,而DNS系统的功能就是自动把域名地址翻译为IP地址。
18936 0
|
7月前
|
SQL Java 数据库连接
springboot解析txt文件顺便加到数据库中(nohup文件)
springboot解析txt文件顺便加到数据库中(nohup文件)
|
域名解析 网络安全
申请SSL证书时,使用nslookup查询域名解析的TXT记录是否成功
申请SSL证书时,使用nslookup查询域名解析的TXT记录是否成功
259 0
申请SSL证书时,使用nslookup查询域名解析的TXT记录是否成功
|
XML JSON 移动开发
小伙伴解析Json解的66的,但是老板甩给他了一个txt,那么就看如何用Unity解析txt文档
小伙伴跟我说,自从看了我这篇【Unity3D日常】Unity写Json数据,以及在Unity读取、解析Json数据,潜心学习,解析Json那解析的66的,没啥压力,但是领导给了他一个txt不知道怎么解析。 我说,那你把文档发给我,我整理一篇文章,让小伙们下次遇到这个问题知道总体流程了。
小伙伴解析Json解的66的,但是老板甩给他了一个txt,那么就看如何用Unity解析txt文档
Dataset之图片数据增强:设计自动生成(高级封装之命令行解析实现)汽车车牌图片算法(cv2+PIL+argparse)根据随机指定七个字符生成逼真车牌图片(自然场景+各噪效果+对应txt说明文档)
Dataset之图片数据增强:设计自动生成(高级封装之命令行解析实现)汽车车牌图片算法(cv2+PIL+argparse)根据随机指定七个字符生成逼真车牌图片(自然场景+各噪效果+对应txt说明文档)
Dataset之图片数据增强:设计自动生成(高级封装之命令行解析实现)汽车车牌图片算法(cv2+PIL+argparse)根据随机指定七个字符生成逼真车牌图片(自然场景+各噪效果+对应txt说明文档)
|
存储 缓存 Java
教你一招,使用java读取解析txt文本数据,管理简单的数据
在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使用数据库了,就用text文本代替了做了一个简单的数据库 一下图片是我存储的格式: 然后通过jav...
2767 0
[20171231]iostat -x命令诊断解析.txt
[20171231]iostat -x命令诊断解析.txt --//使用iostat诊断IO问题,里面的一些输出含义经常忘记,做一个记录: 输出信息的含义 rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读         取请求读取的是相同Block的数据,FS会将这个请求合并Merge); wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
896 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多