Apakah ada yang setara dengan SHOW DATABASES
pernyataan MySQL ?
Tidak ada hal seperti itu. Anda dapat meminta pendengar pada mesin ( lsnrctl status
) untuk melihat layanan apa yang terdaftar di sana, tetapi itu tidak memetakan satu-ke-satu ke basis data (dan mungkin ada beberapa pendengar pada mesin yang sama). Kalau tidak, alat yang biasa digunakan terhubung ke satu contoh database, dan sebuah instance milik satu database.
Jika Anda berbicara tentang klaster Oracle RAC, maka setiap instance tahu tentang rekan-rekannya (contoh lain yang melayani database yang sama) dan Anda dapat menemukan contoh lain yang saat ini dimulai untuk database tersebut menggunakan gv$instance
tampilan.
Anda juga dapat menggunakan crsctl
utilitas untuk membuat daftar layanan (termasuk basis data) yang terdaftar di cluster, dan statusnya.
Jika Anda berbicara tentang perangkat lunak pengelompokan vendor lain, saya cukup yakin mereka semua memiliki jenis utilitas manajemen sumber daya ini untuk di-query.
Jika Anda hanya berbicara tentang sekelompok mesin, maka tidak, tidak ada cara yang dapat diandalkan 100% untuk menghitung semua database di jaringan.
Untuk menemukan database aktif (mis. Dimulai), cari *_pmon_*
proses pada Unix (ada satu per database contoh), dan layanan Oracle pada Windows.
Untuk mencari instalasi perangkat lunak database Oracle, lihat di /etc/oratab
Unix. Ini harus berisi semua yang ORACLE_HOME
diinstal. Anda dapat melihat ke dalam masing-masing di $ORACLE_HOME/dbs
bagi spfile<SID>.ora
dan / atau init<SID>.ora
file - akan ada satu untuk setiap database.
(Saya percaya Anda dapat menemukan informasi yang setara di oratab
dalam kunci registri Windows di bawah ini HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
, tetapi saya tidak tahu strukturnya.)
Sekarang, tentu saja, jika Anda telah mendaftarkan semua basis data Anda dengan server OEM (Enterprise Manager) ketika Anda menginstalnya, Anda dapat menemukan daftar lengkapnya di sana - tetapi saya kira jika Anda bertanya bukan itu masalahnya.