Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

9

主题
1#
发表于 2013-4-7 19:08:53 | 查看: 6510| 回复: 15
1. 先查看监听状态时发现,有报 ‘段错误’这样的错误信息

2. 重启动监听,报错如下:
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
System parameter file is /oracle9/app/oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /oracle9/app/oracle/product/9.2.0/network/log/listener.log
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12542: TNS:address already in use
TNS-12560: TNS:protocol adapter error
  TNS-00512: Address already in use
   Linux Error: 98: Address already in use

3. netstat -tulnpa|grep lsnr显示结果如下:
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      3994/tnslsnr
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      3994/tnslsnr
tcp        0      0 0.0.0.0:2100                0.0.0.0:*                   LISTEN      3994/tnslsnr
tcp        0      0 127.0.0.1:1521              127.0.0.1:50914             ESTABLISHED 3994/tnslsnr

4. 以为报1和2标出的错误是端口号被占用引起的,所以错误杀掉进程 kill -9 3994

5. 再次启动监听,报错如下:
Starting /oracle9/app/oracle/product/9.2.0/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 9.2.0.4.0 - Production
System parameter file is /oracle9/app/oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /oracle9/app/oracle/product/9.2.0/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
段错误

请指点如何解决。
2#
发表于 2013-4-7 19:13:49
su  - oracle

relink network

回复 只看该作者 道具 举报

3#
发表于 2013-4-7 19:17:17
感谢,那个段错误的解决了,可是重新启动监听的时候又报TNS-12542的错误:

TNSLSNR for Linux: Version 9.2.0.4.0 - Production
System parameter file is /oracle9/app/oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /oracle9/app/oracle/product/9.2.0/network/log/listener.log
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12542: TNS:address already in use
TNS-12560: TNS:protocol adapter error
  TNS-00512: Address already in use
   Linux Error: 98: Address already in use

回复 只看该作者 道具 举报

4#
发表于 2013-4-7 19:18:52
ps -ef|grep tns

netstat -lanp|grep tns

回复 只看该作者 道具 举报

5#
发表于 2013-4-7 19:20:51
谢谢,结果如下:
ps -ef|grep tns
oracle   26946     1  0 18:52 pts/6    00:00:00 /oracle9/app/oracle/product/9.2.0/bin/tnslsnr LISTENER -inherit
oracle   27371 25647  0 19:20 pts/6    00:00:00 grep tns

netstat -lanp|grep tns
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      26946/tnslsnr
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      26946/tnslsnr
tcp        0      0 0.0.0.0:2100                0.0.0.0:*                   LISTEN      26946/tnslsnr
tcp        0      0 127.0.0.1:1521              127.0.0.1:42595             ESTABLISHED 26946/tnslsnr
unix  2      [ ACC ]     STREAM     LISTENING     108290736 26946/tnslsnr       /var/tmp/.oracle/sEXTPROC
unix  2      [ ACC ]     STREAM     LISTENING     108290738 26946/tnslsnr       /var/tmp/.oracle/s#26946.1

回复 只看该作者 道具 举报

6#
发表于 2013-4-7 19:34:02
用oracle用户查看 netstat -tulnpa|grep 1521
信息如下:
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      26946/tnslsnr
tcp        0      0 172.16.4.247:1521           218.247.168.32:12693        ESTABLISHED 27541/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:3469         ESTABLISHED 27533/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:59822          ESTABLISHED 13077/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:52431          ESTABLISHED 15127/oracleora9
tcp        0      0 127.0.0.1:42595             127.0.0.1:1521              ESTABLISHED 4012/ora_pmon_ora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:18112        ESTABLISHED 27535/oracleora9
tcp        0      0 127.0.0.1:1521              127.0.0.1:42595             ESTABLISHED 26946/tnslsnr
tcp        0      0 172.16.4.247:1521           218.247.168.32:34532        ESTABLISHED 27539/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:36362        ESTABLISHED 27545/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:12179          ESTABLISHED 25473/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:54963          ESTABLISHED 26796/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:31828        ESTABLISHED 27537/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:33879          ESTABLISHED 26130/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:15584          ESTABLISHED 22643/oracleora9
tcp        0      0 ::ffff:172.16.4.247:54963   ::ffff:172.16.4.247:1521    ESTABLISHED -
tcp        0      0 ::ffff:172.16.4.247:34108   ::ffff:192.168.0.119:1521   ESTABLISHED -
tcp        0      0 ::ffff:172.16.4.247:15584   ::ffff:172.16.4.247:1521    ESTABLISHED -
tcp        0      0 ::ffff:172.16.4.247:12179   ::ffff:172.16.4.247:1521    ESTABLISHED -

回复 只看该作者 道具 举报

7#
发表于 2013-4-7 19:46:01

lsnrctl stop

lsnrctl start

回复 只看该作者 道具 举报

8#
发表于 2013-4-7 19:49:58
谢谢回复,这个我试过了,不起作用,还是报这个错误:
-bash-3.2$ lsnrctl stop

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 07-APR-2013 19:48:48

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
段错误

-bash-3.2$ lsnrctl start

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 07-APR-2013 19:48:52

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Starting /oracle9/app/oracle/product/9.2.0/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 9.2.0.4.0 - Production
System parameter file is /oracle9/app/oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /oracle9/app/oracle/product/9.2.0/network/log/listener.log
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12542: TNS:address already in use
TNS-12560: TNS:protocol adapter error
  TNS-00512: Address already in use
  
Linux Error: 98: Address already in use

Listener failed to start. See the error message(s) above...

回复 只看该作者 道具 举报

9#
发表于 2013-4-7 23:02:44
有说在/etc/hosts中一个主机对对应多个IP造成的,自己试了试, 没有这种错误。   关注 。

回复 只看该作者 道具 举报

10#
发表于 2013-4-7 23:20:15
库应该用了XEN的网络结构。从TNS-12542的错误来看,应该是ip,或端口号被占用造成,就是查不到怎么被占用了,这个明天去了公司再看看

回复 只看该作者 道具 举报

11#
发表于 2013-4-8 09:23:37
楼主有结论了没?

可以用lsof检查下端口资源占用。

回复 只看该作者 道具 举报

12#
发表于 2013-4-8 10:16:07
今天又查了端口号的占用,其中标红处应该是监听所用的,其余是被占用的,如下:
netstat -tulnpa|grep 1521
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      27848/tnslsnr
tcp        0      0 172.16.4.247:1521           218.247.168.32:38039        ESTABLISHED 5506/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:55959          ESTABLISHED 5364/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:55191          ESTABLISHED 5358/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:46009        ESTABLISHED 5783/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:59822          ESTABLISHED 13077/oracleora9
tcp        0      0 127.0.0.1:54689             127.0.0.1:1521              ESTABLISHED 4012/ora_pmon_ora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:48574        ESTABLISHED 5703/oracleora9
tcp        0      0 172.16.4.247:1521           192.168.5.115:4627          ESTABLISHED 5635/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:52660        ESTABLISHED 5798/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:1700         ESTABLISHED 5673/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:22085          ESTABLISHED 5190/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:52431          ESTABLISHED 15127/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:22095          ESTABLISHED 5273/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.127:51905          ESTABLISHED 4436/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:62159        ESTABLISHED 5767/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:16324        ESTABLISHED 5759/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:26353        ESTABLISHED 5781/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:2033         ESTABLISHED 5708/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:5098         ESTABLISHED 5675/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:10467        ESTABLISHED 5677/oracleora9
tcp        0      0 172.16.4.247:1521           172.16.4.247:53134          ESTABLISHED 5619/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:58880        ESTABLISHED 5671/oracleora9
tcp        0      0 172.16.4.247:1521           218.247.168.32:27709        ESTABLISHED 5607/oracleora9
tcp        0      0 127.0.0.1:1521              127.0.0.1:54689             ESTABLISHED 27848/tnslsnr

回复 只看该作者 道具 举报

13#
发表于 2013-4-8 11:58:19
谢谢楼11,背向天空
lsof -i :1521
COMMAND   PID USER   FD   TYPE    DEVICE SIZE NODE NAME
java     2916 tusp   36u  IPv6 108388579       TCP tuspapptest:36726->tuspapptest:ncube-lm (ESTABLISHED)
java     2916 tusp   70u  IPv6 108356878       TCP tuspapptest:22085->tuspapptest:ncube-lm (ESTABLISHED)
java    24876 tusp   32u  IPv6 108347411       TCP tuspapptest:5781->192.168.0.119:ncube-lm (ESTABLISHED)
java    24876 tusp   54u  IPv6 108392216       TCP tuspapptest:30292->tuspapptest:ncube-lm (ESTABLISHED)
java    24876 tusp   57u  IPv6 108392885       TCP tuspapptest:5711->tuspapptest:ncube-lm (ESTABLISHED)
java    24876 tusp   58u  IPv6 108392889       TCP tuspapptest:5712->tuspapptest:ncube-lm (ESTABLISHED)
java    24876 tusp   59u  IPv6 108392901       TCP tuspapptest:proshareaudio->tuspapptest:ncube-lm (ESTABLISHED)


java占用

回复 只看该作者 道具 举报

14#
发表于 2013-4-17 07:48:24
经查阅资料,简单来说段错误就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的,所以重启服务器肯定能解决此问题。

上述多次关闭启动监听,实际上没有成功关闭监听,见8楼关闭监听显示段错误的信息。 而且不影响客户端连接数据库,所以先不重启服务器,尝试删除监听,或用gdb逐步查找段错误,如有什么结果会再回帖。

回复 只看该作者 道具 举报

15#
发表于 2013-4-17 09:46:44
"简单来说段错误就是访问了不可访问的内存,这个内存区要么是不存在的" 楼主的这句话自相矛盾啊,这样不科学,我觉得,杀掉监听的进程,或者删除监听再重建就可以了。

回复 只看该作者 道具 举报

16#
发表于 2013-4-17 10:49:21
杀掉监听进程试过,就是kill掉那个监听进程,这个不管用。删除监听可以

谢谢ShineCQY ,但总的来说是访问了不可访问的内存,但具体的还是不清楚,呵呵

参考的资料:
访问的内存超出了系统给这个程序的内存空间,通常这个值是由gdtr来保存的,gdtr是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,中间13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。一旦一个程序发生了越界访问,cpu就会产生相应的异常保护,于是segmentation fault就出现了

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 12:47 , Processed in 0.057203 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569