2013-04-04 34 views
6

tôi phải đối mặt với vấn đề khi bắt đầu TNS Listener cho Oracle XE DB của tôi trên hộp Linux của tôi sử dụng vỏ bash:Set biến LD_BIND_NOW để giải quyết TNS Linux Lỗi: 29: bất hợp pháp tìm kiếm lỗi

LSNRCTL> start 
Starting /oracle/product/11.2.0/xe/bin/tnslsnr: please wait... 

TNS-12537: TNS:connection closed 
TNS-12560: TNS:protocol adapter error 
    TNS-00507: Connection closed 
    Linux Error: 29: Illegal seek 
LSNRCTL> exit 

tôi đã cố gắng rất nhiều với nhau các giải pháp được đưa ra trong internet và cuối cùng là vấn đề đã được giải quyết sau khi tham khảo bài - https://dba.stackexchange.com/questions/23308/linux-error-29-illegal-seek-in-lsnrctl-for-linux-version-11-2

giải pháp cho trường hợp của tôi là:

export LD_BIND_NOW=1 

tôi đã cài đặt Oracle X E DB trong nhiều hộp Linux nhưng tôi phải đối mặt với vấn đề này chỉ với 1 hộp. Biến này là gì và cách giải quyết vấn đề tìm kiếm bất hợp pháp?

My Linux chi tiết hộp là:

bash-4.1$ uname -a 
Linux <hostname> 2.6.39-100.5.1.el6uek.x86_64 #1 SMP Tue Mar 6 20:26:00 EST 2012 x86_64 x86_64 x86_64 GNU/Linux 
+0

Tất cả các hộp Linux đó có cùng phiên bản hạt nhân và phần cứng? –

+0

Vâng, điều này cũng phù hợp với tôi! –

Trả lời

0

Controlling the operation of the dynamic loader

There are a range of environment variables that the dynamic loader will respond to. Most of these are more use to ldd than they are to the average user, and can most conveniently be set by running ldd with various switches. They include

LD_BIND_NOW --- normally, functions are not `looked up' in libraries until they are called. Setting this flag causes all the lookups to happen when the library is loaded, giving a slower startup time. It's useful when you want to test a program to make sure that everything is linked.

Trong thuật ngữ đơn giản - Nếu biến LD_BIND_NOW được thiết lập để 1, trong C, C++ nó gây ra tải lười biếng, các thư viện (tức là thư viện tải khi có yêu cầu) hoặc khi được sử dụng - thay vì tải trong khi khởi động

Nếu phần mềm hoạt động ở chế độ hỗn hợp, điều này cũng được đặt.

Có thể trong trường hợp của bạn, sự cố khởi động và thư viện này chưa bao giờ được sử dụng ...!

0

Include in /etc/hosts tập tin dòng sau:

127.0.0.1 localhost.localdomain localhost 
1

Hôm nay tôi đã trải qua cùng một vấn đề. Vấn đề dường như là một lỗi bên trong tệp thực thi nhị phân tnslsnr.

Các giải pháp tôi đã có được để thay đổi tên máy thành địa chỉ IP trong listener.ora nằm ở /oracle/product/11.2.0/xe/network/admin/listener.ora

# listener.ora Network Configuration File: 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /oracle/product/11.2.0/xe) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

Tinh chỉnh file /etc/hosts và trọng tuyên bố localhost, như được mô tả trong câu trả lời khác, không công việc.

Tôi không biết liệu việc sử dụng địa chỉ IP thay vì tên máy chủ có được khuyên dùng hay không, nhưng đối với tôi, đó là mẹo.

Các vấn đề liên quan