Linux Error: 29: Illegal seek

Diy_os發表於2015-08-05
SQL> !cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m




SQL> select * from v$version where rownum<2;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production



今天開啟監聽程式時,報以下錯誤:
TNS-12560: TNS:protocol adapter error
  TNS-00507: Connection closed
       Linux Error: 29: Illegal seek
開始認為是Linux本身內部錯誤,檢查hosts檔案: 
[oracle@localhost ~]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
沒有什麼問題。


檢查listener.ora:
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
  )


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =       
      (GLOBAL_DBNAME = jing)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl3939)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = tai)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl3939)
    )
  )




SID_LIST_WEN =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (PROGRAM = extproc)
    )
  )
WEN =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )




檢查tnsnames.ora:

diy =
(DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS=(PROTOCOL=TCP)(HOST = localhost.localdomain)(PORT = 1522))
    )
)

SQL> show parameter local_listener;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      DIY
SQL> show parameter service_names;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      a,b,c,d,diy
SQL> show parameter instance_name;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl3939


以上檢查沒有異樣。
然後重啟os後,竟然可以啟動監聽程式:
[oracle@localhost ~]$ lsnrctl start listener


LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-8月 -2015 22:01:27


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


啟動/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 請稍候...


 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
寫入/u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml的日誌資訊
寫入/u01/app/oracle/diag/tnslsnr/localhost/listener/trace/ora_5336_3086415552.trc的跟蹤資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))


正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      listener
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期                  05-8月 -2015 22:01:27
正常執行時間              0 天 0 小時 0 分 0 秒
跟蹤級別                  support
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
監聽程式日誌檔案          /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
監聽程式跟蹤檔案          /u01/app/oracle/diag/tnslsnr/localhost/listener/trace/ora_5336_3086415552.trc
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
服務摘要..
服務 "jing" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
服務 "tai" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
[oracle@localhost ~]$  lsnrctl start wen


LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-8月 -2015 22:01:36


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


啟動/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 請稍候...


TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
寫入/u01/app/oracle/diag/tnslsnr/localhost/wen/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))


正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名                      wen
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期                  05-8月 -2015 22:01:38
正常執行時間              0 天 0 小時 0 分 0 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
監聽程式日誌檔案          /u01/app/oracle/diag/tnslsnr/localhost/wen/alert/log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例項。
  例項 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功

以上原因不清楚是OS還是oracle造成的。網上有朋友遇到同樣錯誤解決的方法blog.chinaunix.net/uid-20048945-id-471098.html,尚不明白我重啟後可以使用。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1763124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章