2014-07-21 21 views
5

Tôi đã cài đặt Cơ sở dữ liệu Oracle 11gR2 cũng như Cơ sở hạ tầng lưới Oracle trên một hộp Linux, sau đó tôi đã tạo cơ sở dữ liệu orcl.Trình nghe không hỗ trợ dịch vụ

Tôi luôn có thể kết nối với cơ sở dữ liệu của mình bằng SQL * Plus hoặc OEM. Nhưng gần đây, tôi đang đối mặt với một vấn đề khi gõ lệnh lsnrctl status, và vì vậy tôi không thể kết nối với cơ sở dữ liệu.

listener.ora tập tin của tôi:

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora 
# Generated by Oracle configuration tools. 
LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521)) 
    ) 
) 
ADR_BASE_LISTENER = /u01/app/oracle 

tập tin tnsnames.ora của tôi:

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora 
# Generated by Oracle configuration tools. 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.example.com) 
    ) 
) 

Khi gõ lsnrctl status, tôi nhận được như sau:

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-JUL-2014 03:35:48 

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

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for Linux: Version 11.2.0.1.0 - Production 
Start Date    21-JUL-2014 03:25:58 
Uptime     0 days 0 hr. 9 min. 50 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Listener Log File   /u01/app/oracle/diag/tnslsnr/pc151/listener/alert/log.xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pc.company.com)(PORT=1521))) 
The listener supports no services 
The command completed successfully 

Whe n gõ sqlplus/as sysdba sau đó startup, tôi có được điều này:

ORA-01078: failure in processing system parameters 
ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora' 
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora 
ORA-29701: unable to connect to Cluster Synchronization Service 

Và lệnh srvctl start database thất bại trong việc khởi động cơ sở dữ liệu lên quá.

tập tin oratab của tôi là như sau:

#Backup file is /u01/app/oracle/product/11.2.0/dbhome_1/srvm/admin/oratab.bak.pc150 line added by Agent 
# 

# This file is used by ORACLE utilities. It is created by root.sh 
# and updated by the Database Configuration Assistant when creating 
# a database. 

# A colon, ':', is used as the field terminator. A new line terminates 
# the entry. Lines beginning with a pound sign, '#', are comments. 
# 
# Entries are of the form: 
# $ORACLE_SID:$ORACLE_HOME:<N|Y>: 
# 
# The first and second fields are the system identifier and home 
# directory of the database respectively. The third filed indicates 
# to the dbstart utility that the database should , "Y", or should not, 
# "N", be brought up at system boot time. 
# 
# Multiple entries with the same $ORACLE_SID are not allowed. 
# 
# 
+ASM:/u01/app/oracle/product/11.2.0/grid:N 
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N   # line added by Agent 
+0

Cơ sở dữ liệu của bạn có thực sự chạy không? Nó sẽ không xuất hiện trong danh sách dịch vụ cho đến khi nó đăng ký, nó sẽ khởi động nếu nó có thể, và nó tiếp tục cố gắng nếu nó không thể. Nếu nó đang hoạt động - bạn có thể kết nối cục bộ với SQL * Plus - bạn có tập tham số init 'local_listener'; và 'pc.company.com' có giải quyết được địa chỉ IP thực tế của máy tính của bạn (tức là bạn không sử dụng DHCP) không? –

+0

Cơ sở dữ liệu của tôi không chạy không may, và tôi không sử dụng dhcp. Tôi có một địa chỉ IP tĩnh. – Simo03

Trả lời

15

Cơ sở dữ liệu đăng ký tên dịch vụ của nó (s) với người nghe khi nó khởi động. Nếu nó không thể làm như vậy thì nó sẽ thử lại định kỳ - vì vậy nếu người nghe bắt đầu sau khi cơ sở dữ liệu thì có thể có sự chậm trễ trước khi dịch vụ được nhận ra.

Nếu cơ sở dữ liệu không chạy, mặc dù không có gì sẽ đăng ký dịch vụ, vì vậy bạn không nên mong đợi người nghe biết về nó - lsnrctl status hoặc lsnrctl services sẽ không báo cáo dịch vụ chưa được đăng ký.

Bạn có thể khởi động cơ sở dữ liệu mà không cần người nghe; từ tài khoản Oracle và với bạn ORACLE_HOME, ORACLE_SIDPATH bộ bạn có thể làm:

sqlplus /nolog 

Sau đó từ SQL * Plus nhắc:

connect/as sysdba 
startup 

Hoặc thông qua cơ sở hạ tầng lưới điện, từ tài khoản lưới, sử dụng số srvctl start database command:

srvctl start database -d db_unique_name [-o start_options] [-n node_name] 

Bạn có thể muốn xem liệu cơ sở dữ liệu có được đặt tự động khởi động hay không tệp oratab của bạn và tùy thuộc vào những gì bạn đang sử dụng cho dù tệp có bắt đầu tự động hay không. Nếu bạn đang mong đợi nó chạy và nó không phải là, hoặc bạn cố gắng để bắt đầu nó và nó sẽ không đi lên, thì đó là một kịch bản hoàn toàn khác - bạn cần phải nhìn vào các thông báo lỗi, nhật ký cảnh báo, có thể dấu vết các tập tin vv để xem chính xác lý do tại sao nó sẽ không bắt đầu, và nếu bạn không thể tìm ra nó, có thể hỏi về quản trị viên cơ sở dữ liệu hơn là trên Stack tràn.


Nếu cơ sở dữ liệu không thể xem +DATA thì ASM có thể không chạy; bạn có thể see how to start that here; hoặc sử dụng srvctl start asm.Như tài liệu nói, hãy chắc chắn rằng bạn làm điều đó từ nhà lưới, không phải là nhà cơ sở dữ liệu.

+0

Nó không thành công để bắt đầu asm bằng cách ban hành asm srvctl bắt đầu! File listener.ora của tôi nằm ở nhà lưới và không phải là nhà cơ sở dữ liệu, điều đó có bình thường không? – Simo03

+1

Vâng, điều đó là bình thường. Vui lòng thêm lỗi bạn nhận được từ ASM bắt đầu cho câu hỏi. Bạn bắt đầu ASM từ nhà lưới, phải không? Có thể đáng xem xét trạng thái ASM và tình trạng đĩa, tùy thuộc vào lỗi là gì. –

0

bạn cần phải định cấu hình lại tnsnames.ora để nó có thể trỏ đến tên máy chủ của bạn sau khi người nghe đó có thể chọn tên máy chủ mới. sau đó kiểm tra trạng thái của trạng thái người nghe lsnrctl của bạn và bắt đầu nghe lsnrctl bắt đầu sau đó đăng ký người nghe của bạn. Thay đổi hệ thống đăng ký

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