[oracle] SQL * Plus를 사용하여 Oracle 11g에서 데이터베이스를 표시하는 방법

이 명령의 도움으로 MySQL의show databases; 데이터베이스를 볼 수 있습니다 .

Oracle 에서 사용 가능한 데이터베이스를 표시하는 방법은 무엇입니까?



답변

MySQL “데이터베이스”는 Oracle에서 스키마 / 사용자로 생각할 수 있습니다. 권한이있는 경우 DBA_USERS뷰를 쿼리하여 스키마 목록을 볼 수 있습니다 .

SELECT * FROM DBA_USERS;


답변

SELECT NAME FROM v$database; 오라클의 데이터베이스 이름을 보여줍니다


답변

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


답변

이보기를 사용할 수 있지만 확실하지 않습니다.

select * from v$database;

하지만 현재 DB에 대한 정보 만 표시 할 것이라고 생각합니다.

다른 옵션, db가 Linux에서 실행되는 경우 … whould는 다음과 같습니다.

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


답변

나는 그것에 대해 명확하지 않지만 일반적으로 하나의 서버에는 하나의 데이터베이스 (많은 사용자 포함)가 있습니다. 많은 데이터베이스를 생성하면 많은 인스턴스, 리스너 등을 생성한다는 의미입니다. 그래서 당신은 LISTENER그것을 식별 하기 위해 확인할 수 있습니다.

내 테스트에서 2 개의 데이터베이스 ( dbtestdbtest_1)를 만들었 으므로 LISTENER 상태를 확인하면 다음과 같이 나타납니다.

lsnrctl status

….

리스너의 상태

…..

(설명 = (ADDRESS = (프로토콜 = tcp) (HOST = 10.10.20.20) (포트 = 1521)))

서비스 요약 …

서비스 “dbtest”에는 1 개의 인스턴스가 있습니다.

인스턴스 “dbtest”, 상태 READY,이 서비스에 대한 핸들러가 1 개 있습니다 …

서비스 “dbtest1XDB”에는 1 개의 인스턴스가 있습니다.

인스턴스 “dbtest1”, 상태 READY,이 서비스에 대한 핸들러가 1 개 있습니다 …

서비스 “dbtest_1″에는 1 개의 인스턴스가 있습니다.

인스턴스 “dbtest1”, 상태 READY에이 서비스에 대한 핸들러가 1 개 있습니다 … 명령이 성공적으로 완료되었습니다.


답변