source

Oracle 데이터베이스의 서버 이름 찾기

ittop 2023. 3. 28. 22:34
반응형

Oracle 데이터베이스의 서버 이름 찾기

Oracle 데이터베이스가 호스트되는 서버의 이름을 찾을 수 있는 방법이 있습니까?

Quassnoi에서 제안하는 v$ 뷰에 액세스할 수 없는 경우 두 가지 방법이 있습니다.

select utl_inaddr.get_host_name from dual

그리고.

select sys_context('USERENV','SERVER_HOST') from dual

개인적으로는 마지막을 선호합니다.그것은 어떠한 권한이나 특권이 필요하지 않기 때문에 스토어드 프로시저에서 쉽게 접근할 수 있기 때문입니다.

SELECT  host_name
FROM    v$instance

아래 쿼리는 패키지 사용법과 얻을 수 있는 정보의 일부를 보여줍니다.

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
sys_context ( 'USERENV', 'SERVER_HOST' ) db_host,
sys_context ( 'USERENV', 'HOST' ) user_host
from dual

메모: 파라미터 'SERVER_'HOST'는 10G에서만 사용할 수 있습니다.

데이터베이스에 연결할 수 있는 모든 Oracle 사용자는 "듀얼"에 대한 쿼리를 실행할 수 있습니다.특별한 권한은 필요하지 않으며 SYS_CONTEXT는 "sys"보다 더 광범위한 응용 프로그램 고유 정보를 제공합니다.v$140"을 클릭합니다.

이 쿼리를 사용하여 Oracle 데이터베이스의 서버 이름을 가져옵니다.

SELECT program FROM v$session WHERE program LIKE '%(PMON)%';

여러 환경에서 동일한 쿼리를 사용하고 이것이 Prod vs.를 표시하기 위해 이 질문을 했습니까?UAT와개발 환경?많은 기업이 환경을 나타내는 표준 접미사 또는 접두사를 가지고 있습니다.위의 답변을 바탕으로 환경을 반환하는 쿼리를 나타냅니다.마지막 글자 'p' - Prod | 'a' - UAT | 'd' - Dev로 가정합니다.

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,   /* Use this for determining Environment, where the last letter is p/a/d for Prod/uAt/Dev. */
       case substr ( sys_context ( 'USERENV', 'DB_NAME' ), -1 ) 
         when 'p' then 'PROD' 
         when 'u' then 'UAT' 
         when 'd' then 'Development' 
         else 'Unknown'
       end Environment
  from dual

언급URL : https://stackoverflow.com/questions/2366962/find-the-server-name-for-an-oracle-database

반응형