Câu hỏi về Borderline ServerFault, nhưng tôi đã thử nghiệm ở đây trước tiên vì tôi đã có may mắn với các câu hỏi của Oracle trong quá khứ.TNS: người nghe trong ngữ cảnh của Oracle là gì?
Tôi đang cố gắng kết nối với cơ sở dữ liệu oracle từ PHP và tôi nhận được lỗi sau.
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
Đây là lỗi mà PHP báo cáo và lỗi xuất hiện trong listener.log của Oracle.
Vấn đề trước mắt của tôi là khắc phục lỗi này. Câu hỏi lớn hơn tôi muốn trả lời là mô hình kết nối Oracle hoạt động như thế nào?
Đây là môi trường phát triển đang chạy trên máy cửa sổ cục bộ của tôi và đã hoạt động cho đến bây giờ. Thật không may, môi trường đã được trao cho tôi (tôi đã không thiết lập nó) và những người đã thiết lập nó không có sẵn để giúp tôi gỡ lỗi nó.
Nếu tôi gặp lỗi tương tự với MySQL hoặc PostgreSQL (hai hệ thống quen thuộc hơn), tôi sẽ kiểm tra để đảm bảo rằng quy trình cơ sở dữ liệu đang chạy và sau đó cố kết nối thủ công với cơ sở dữ liệu bằng chuỗi tên người dùng/mật khẩu/kết nối. Thật không may, tôi không quen thuộc với các công cụ Oracle trên windows (ngoài SQL Developer) và tôi không biết TNS: listener hoặc SID là gì trong ngữ cảnh của Oracle (tôi có ý tưởng mơ hồ, nhưng ý tưởng mơ hồ hiếm khi giúp ích khi bạn đang gỡ lỗi một cái gì đó như thế này)
Bất kỳ lời khuyên chung nào sẽ được đánh giá cao.
cập nhật mỗi Bình luận:
Có một số entires trong file tnsnames.ora của tôi, mục liên quan là
OBS2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OBS2)
)
)
này không được phản ánh trong danh sách các trường hợp khi tôi chạy
LSNRCTL> services
Vì vậy, tôi nghĩ câu hỏi tiếp theo của tôi là, làm thế nào để tôi cố gắng khởi động bản sao OBS2 theo cách thủ công?
Mục nhập TNS là một phần của chuỗi kết nối với Oracle. –