web-dev-qa-db-ja.com

SQL * Plusを使用してOracle 11gでデータベースを表示する方法

このコマンドの助けを借りてshow databases;私はMySQL

Oracleで利用可能なデータベースを表示する方法は?

66
Nubkadiya

MySQLの「データベース」は、Oracleのスキーマ/ユーザーと考えることができます。特権がある場合は、DBA_USERSビューを照会して、スキーマのリストを表示できます。

46
dpbradley

SELECT NAME FROM v$database;はOracleのデータベース名を示します

72
Shan

Oracleには、MySQLやMS SQL Serverのような単純なデータベースモデルはありません。最も近いのは、テーブルスペースとその中の対応するユーザーにクエリを実行することです。

たとえば、DEV_DBテーブルスペースには、実際の「データベース」がすべて含まれています。

SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES;

その結果:

SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE
DEV_DB

すべての表領域のユーザーにクエリを実行することもできます。

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS;

または、特定のテーブルスペース内(例としてDEV_DBテーブルスペースを使用):

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS where DEFAULT_TABLESPACE = 'DEV_DB';

ROLES DEV_DB
DATAWARE DEV_DB
DATAMART DEV_DB
STAGING DEV_DB
19
Thomas Bratt

このビューを使用できるかもしれませんが、よくわかりません。

select * from v$database;

しかし、現在のデータベースに関する情報のみを表示すると思います。

他のオプション、dbがLinuxで実行されている場合... whouldは次のようになります:

SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc
13
Jonathan

私はそれについて明確ではありませんが、通常、1つのサーバーに1つのデータベース(多くのユーザー)があります。多くのデータベースを作成すると、多くのインスタンス、リスナーなども作成されます。したがって、LISTENERを確認して特定できます。

私のテストでは、2つのデータベース(dbtestおよびdbtest_1)を作成したため、LISTENERステータスを確認すると、次のように表示されました。

lsnrctl status

....

リスナーのステータス

.....

(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = 10.10.20.20)(PORT = 1521)))

サービスの概要...

サービス「dbtest」には1つのインスタンスがあります。

インスタンス「dbtest」、ステータスREADYには、このサービスの1つのハンドラーがあります...

サービス「dbtest1XDB」には1つのインスタンスがあります。

インスタンス「dbtest1」、ステータスREADYには、このサービスの1つのハンドラーがあります...

サービス「dbtest_1」には1つのインスタンスがあります。

インスタンス "dbtest1"、ステータスREADYには、このサービスの1つのハンドラーがあります...コマンドは正常に完了しました

1
BongSey