이 명령의 도움으로 MySQL의show databases;
데이터베이스를 볼 수 있습니다 .
Oracle 에서 사용 가능한 데이터베이스를 표시하는 방법은 무엇입니까?
답변:
MySQL "데이터베이스"는 Oracle에서 스키마 / 사용자로 생각할 수 있습니다. 권한이있는 경우 DBA_USERS
뷰를 쿼리하여 스키마 목록을 볼 수 있습니다 .
SELECT * FROM DBA_USERS;
SELECT * FROM DBA_USERS;
SELECT NAME FROM v$database;
오라클의 데이터베이스 이름을 보여줍니다
XE
, 즉 인스턴스 / 데이터베이스를 고유하게 식별하는 고유 한 이름 (SID라고 함)이 인쇄됩니다. 반면에 MySQL의 show databases
명령은 MySQL이 데이터베이스 일명 스키마 (대략 SELECT USERNAME FROM DBA_USERS
Oracle에서 얻는 것)라고 부르는 것을 인쇄합니다 .
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 개의 데이터베이스 ( dbtest
및 dbtest_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 개 있습니다 ... 명령이 성공적으로 완료되었습니다.