본문 바로가기
DBMS/ORACLE

[oracle] 리스너 timezone 설정

by 드바 2024. 2. 20.

 


OS: linux 7.5
DBMS: oracle 19.3

 

[목차여기]

 

- 리스너에 time zone을 설정하면 해당 리스너로 접속하는 세션은 설정한 시간대로 적용
- 리스너별 시간대를 다르게 설정하는것도 가능(리스너 여러개 사용)
- sysdate, systimestamp 값을 통해 확인 가능

 
참고: oracle alert.log 시간대(time zone) 기준은 무엇인가
참고: oracle 오브젝트 생성시간은 어떤 시간대(time zone)

리스너 TZ 설정

listener.ora 파일에 (ENVS='TZ=UTC') 구문 추가하여
해당 리스너를 통해 접속하는 세션들은 UTC 타임존을 사용하도록 설정합니다

[ora19ent@svr ~]$ cat /ora19ent/product/network/admin/listener.ora
# listener.ora Network Configuration File: /ora19ent/product/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = svr)(PORT = 1522)))
)

SID_LIST_LISTENER =
  (SID_LIST =
        (SID_DESC =
          (ORACLE_HOME = /ora19ent/product)
          (SID_NAME = ent19)
          (ENVS='TZ=UTC')
   )
  )

 

리스너 재기동 후 설정확인

ENVS='TZ=UTC,ORACLE_HOME=/ora19ent/product,ORACLE_SID=ent19')
이 부분을 통해 잘 적용된 것을 확인가능합니다

[ora19ent@svr ~]$ lsnrctl
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 16-FEB-2024 16:23:22
Copyright (c) 1991, 2019, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> set displaymode verbose
Service display mode is VERBOSE
LSNRCTL> services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=svr)(PORT=1522)))
Services Summary...
Service "ent19" has 1 instance(s).
  Instance "ent19", status UNKNOWN, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:4 refused:0
             LOCAL SERVER
         (ADDRESS=(PROTOCOL=beq)(PROGRAM=/ora19ent/product/bin/oracle)(ENVS='TZ=UTC,ORACLE_HOME=/ora19ent/product,ORACLE_SID=ent19')(ARGV0=oracleent19)(ARGS='(LOCAL=NO)'))
The command completed successfully
LSNRCTL> exit

 

리스너 통하여 접속

세션 시간대는 KST이지만 sysdate 값은 UTC로 보이는 것 확인됩니다

[ora19ent@svr ~]$ sqlplus system/oracle@ent19
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SELECT dbtimezone, sessiontimezone, sysdate, current_date  FROM dual ;

DBTIME SESSIONTIMEZONE                               SYSDATE                   CURRENT_DATE
------ ----------------------------------- ------------------- -------------------
+00:00 +09:00                                       2024/02/16 07:16:36 2024/02/16 16:16:36

 
 

리스너 통하지 않고 local 접속

리스너를 통하지 않고 접속 시 OS의 기본값인 KST 시간대로 적용된것을 확인 할 수 있습니다

[ora19ent@svr ~]$ ss
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SELECT dbtimezone, sessiontimezone, sysdate, current_date  FROM dual ;

DBTIME SESSIONTIMEZONE                               SYSDATE                   CURRENT_DATE
------ ----------------------------------- ------------------- -------------------
+00:00 +09:00                                       2024/02/16 16:10:37 2024/02/16 16:10:37

 

댓글