it-swarm-eu.dev

Jak zobrazit seznam databází v Oracle?

Existuje ekvivalent MySQL SHOW DATABASES prohlášení?

Je možné najít databáze v klastru? tj. databáze přítomné v síti v jiném systému?

Mohu analyzovat soubory přítomné v instalaci Oracle, abych je našel?

Jak byste si udělali úplné přihlašovací údaje do systému Oracle, jak byste počítali všechny existující databáze?

38
Kshitiz Sharma

Existuje ekvivalent MySQL SHOW DATABASES prohlášení?

Nic takového neexistuje. Můžete posílat dotazy posluchačům na počítači (lsnrctl status) abyste viděli, jaké služby jsou zde registrovány, ale které nemapují jeden na jednoho do databáze (a na stejném stroji by mohlo být více posluchačů). V opačném případě se běžně používané nástroje připojují k jedné instanci databáze a instance patří do jediné databáze.

Pokud mluvíte o klastrech Oracle RAC, pak každá instance zná své vrstevníky (další instance, které obsluhují stejnou databázi) a další instance, které jsou pro tuto databázi aktuálně spuštěny, najdete pomocí gv$instance Pohled.
Pomocí nástroje crsctl můžete také zobrazit seznam služeb (včetně databází), které jsou zaregistrovány v klastru, a jejich stav.
Pokud mluvíte o klastrovacím softwaru jiného dodavatele, jsem si jistý, že všichni mají k dispozici tyto typy nástrojů pro správu zdrojů.

Pokud máte na mysli jen spoustu strojů, pak ne, neexistuje stoprocentně spolehlivý způsob výčtu všech databází v síti.

Chcete-li najít aktivní (tj. Spuštěné) databáze, vyhledejte *_pmon_* procesy v Unixu (jeden pro každou instanci databáze) a služby Oracle ve Windows.

Chcete-li najít instalace databázového softwaru Oracle, podívejte se na /etc/oratab na Unixu. To by mělo obsahovat všechny Oracle_HOMEs nainstalován. Můžete se podívat dovnitř každého z nich v $Oracle_HOME/dbs pro spfile<SID>.ora a/nebo init<SID>.ora soubory - pro každou databázi bude jeden.

(Věřím, že najdete ekvivalent informací v oratab v klíčích registru Windows níže HKEY_LOCAL_MACHINE\SOFTWARE\Oracle, ale neznám jeho strukturu.)

Nyní, samozřejmě, pokud jste celou svou databázi zaregistrovali na serveru OEM (Enterprise Manager), když jste je nainstalovali, najdete zde kompletní seznam - ale myslím, že pokud se ptáte, že tomu tak není.

23
Mat

Oracle nemá žádné databáze, ale schémata, s nimiž je můžete seznamovat

SELECT USERNAME FROM ALL_USERS ORDER BY USERNAME; 

nebo něco takového:

SELECT TABLESPACE_NAME FROM USER_TABLESPACES;
12
DevYudh

Jednoduše řečeno, neexistuje žádná přímá analogie pro „databáze“ MySQL nebo „klastr“ na Oracle: nejbližší shoda je „schéma“, ale to je stále velmi odlišné.

Toto je zjevně bude se měnit v 12c se zavedením databází, které lze připojit:

Čisté oddělení databázových operací od obsahu uživatele je hlavní transformací z tradičních databázových architektur. Oracle 11g a všichni jeho předchůdci mohli najednou provozovat pouze jednu databázi, řekl Kyte. Pokud by organizace chtěla provozovat více databází na jednom serveru, musela by spouštět více instancí Oracle 11g, jednu pro každou databázi. Jak název napovídá, připojitelné databáze umožňují spuštění více databází nájemců pod jednou kopií Oracle 12c.

Myslím, že odpověď pro budoucí prohlížeče na * nix by mohla být:

kočka/etc/oratab

6
rlblyler

Pokud máte v systému Oracle 12 Pluggable Databases (doporučeno), můžete postupovat takto:

SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;
3
Peter

Stačí se připojit k ASM a zkontrolovat databázového klienta.

set pages 999 lines 120
col SOFTWARE_VERSION for A15
col INSTANCE_NAME for A20
col DB_NAME for A20 trunc
select INSTANCE_NAME, DB_NAME, STATUS, SOFTWARE_VERSION as "version"
from  V$ASM_CLIENT;
3
t.menard

Pro samostatnou databázi získáte seznam databází, které jsou spuštěny automaticky po restartování hostitele:

cat /etc/oratab | grep -i ":y" | grep -v "^#"

nebo jen získat seznam všech databází:

cat /etc/oratab | grep -v "^#"

Pro databáze RAC může být užitečná následující metoda:

crsctl stat res -t | grep "\.db"

Jak již bylo zmíněno, databáze v MySQL není stejná jako databáze v Oracle. V systému Oracle je to blíže schématu - tedy kontejneru pro objekty uživatele. Chcete-li získat seznam schémat, můžete použít následující příkaz SQL:

select username from dba_users order by 1;

nebo získat seznam nesouvisející se systémovými schématy (k dispozici v Oracle RDBMS od verze 12c):

select username from dba_users where Oracle_MAINTAINED='N' order by 1;
0
Prokhozhii