Có một SHOW DATABASES
tuyên bố tương đương với MySQL ?
Không có những điều như vậy. Bạn có thể truy vấn người nghe trên một máy ( lsnrctl status
) để xem những dịch vụ nào được đăng ký ở đó, nhưng điều đó không ánh xạ một đến một cơ sở dữ liệu (và có thể có nhiều người nghe trên cùng một máy). Mặt khác, các công cụ thường được sử dụng kết nối với một thể hiện cơ sở dữ liệu và một thể hiện thuộc về một cơ sở dữ liệu.
Nếu bạn đang nói về các cụm RAC của Oracle, thì mỗi trường hợp sẽ biết về các đồng nghiệp của nó (các phiên bản khác phục vụ cùng một cơ sở dữ liệu) và bạn có thể tìm thấy các phiên bản khác hiện đang bắt đầu cho cơ sở dữ liệu đó bằng cách sử dụng gv$instance
chế độ xem.
Bạn cũng có thể sử dụng crsctl
tiện ích để liệt kê các dịch vụ (bao gồm cả cơ sở dữ liệu) đã được đăng ký trong cụm và trạng thái của chúng.
Nếu bạn đang nói về phần mềm phân cụm của nhà cung cấp khác, tôi khá chắc chắn rằng tất cả họ đều có các loại tiện ích quản lý tài nguyên này để truy vấn.
Nếu bạn đang nói về một loạt các máy móc thì không, không có cách nào đáng tin cậy 100% để liệt kê tất cả các cơ sở dữ liệu trên mạng.
Để tìm cơ sở dữ liệu đang hoạt động (tức là đã bắt đầu), hãy tìm các *_pmon_*
quy trình trên Unix (có một cơ sở dữ liệu trên mỗi phiên bản cơ sở dữ liệu) và các dịch vụ Oracle trên Windows.
Để xác định vị trí cài đặt phần mềm cơ sở dữ liệu Oracle, hãy xem /etc/oratab
trên Unix. Điều này sẽ chứa tất cả các ORACLE_HOME
cài đặt. Bạn có thể nhìn vào bên trong mỗi người trong số những người $ORACLE_HOME/dbs
cho spfile<SID>.ora
và / hoặc init<SID>.ora
file - sẽ có một cho mỗi cơ sở dữ liệu.
(Tôi tin rằng bạn có thể tìm thấy thông tin tương đương oratab
trong các khóa đăng ký Windows bên dưới HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
, nhưng tôi không biết cấu trúc của nó.)
Tất nhiên, bây giờ, nếu bạn đã đăng ký tất cả cơ sở dữ liệu của mình với máy chủ OEM (Enterprise Manager) khi bạn cài đặt chúng, bạn có thể tìm thấy danh sách đầy đủ ở đó - nhưng tôi đoán nếu bạn hỏi đó không phải là trường hợp.