카테고리 없음
[Oracle] Setup Timezone - 시간대 맞추기
광82
2023. 9. 21. 17:13
반응형
Oracle
- Environment
- Ubuntu 16.04.1
- Oracle 11g
시간대 맞추기
1. SYSDATE, SYSTIMESTAMP 시간대 맞추기
SYSDATE SYSTIMESTAMP 는 OS System에 설정된 시간대의 시간을 출력한다.
- 시간설정 및 출력 확인
- 1) Linux OS의 시간대와 시간을 확인한다.
echo $TZ
date
- 2) Oracle Database에 출력되는 시간을 확인한다.
-- Check Time as System (이곳이 System의 시각과 동기화된다.) SELECT SYSDATE, SYSTIMESTAMP FROM DUAL ;
- OS와 DB의 시간대가 다르게 출력된다면 DB를 재가동해보자.
- 또는 시간대를 수정하려면 OS의 oracle계정의 시간대를 수정해야한다.
- 다음을 차례대로 해보자.
- 1) Linux OS의 시간대와 시간을 확인한다.
- Oracle 계정으로 접속한다.
su - oracle
- 시간대를 맞춘다. - TZ 환경변수의 값을 변경한다. (영구적으로 적용하려면 설정파일에 넣어두든 한다.)
export TZ=Asia/Seoul
- Oracle에 sqlplus로 접속하여 재가동한다.
sqlplus / as sysdba
SQL> shutdown immediate SQL> startup SQL> quit
- 확인
-- Check Time as System (System의 시각과 동일하게 출력된다.) SELECT SYSDATE, SYSTIMESTAMP FROM DUAL ; -- Check DB Timezone Setup select DBTIMEZONE, SESSIONTIMEZONE FROM DUAL ;
2. CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIMESTAMP 시간대 맞추기
DB에 설정된 시간대에 맞춰서 출력된다.
- 설정 및 출력 확인
-- Check DB Timezone Setup select DBTIMEZONE, SESSIONTIMEZONE FROM DUAL ; -- Check Time as DB SELECT CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL ;
- 시간대 설정 및 확인
- 접속중인 세션의 시간대를 임시로 변경한다.
-------------------------------------------------- -- Alter Session Timezone - Connection 접속동안 세션의 시간대(Timezone)를 설정 -------------------------------------------------- ALTER SESSION SET TIME_ZONE = 'Asia/Seoul' ;
- DataBase의 시간대를 변경한다.
마쳤다면 1에서 설정과 출력을 다시 확인해보자.-------------------------------------------------- -- Alter Database Timezone - Database의 시간대(Timezone)를 설정 -------------------------------------------------- ALTER DATABASE SET TIME_ZONE = '+09:00' -- Seoul이라면 9시간 빠르다 ; -- Restart DB SHUTDOWN IMMEDIATE; STARTUP
- 접속중인 세션의 시간대를 임시로 변경한다.
3. 스케쥴러를 변경하려면 다음과 같다.
- 해보지 않아서 모르겠지만 추후 참고될지 모르니 적어 놓는다.
-------------------------------------------------- -- Alter Scheduler Timezone -------------------------------------------------- -- Check @show_scheduler_attribute.sql default_timezone ; -- Setup BEGIN DBMS_SCHEDULER.set_scheduler_attribute ( attribute => 'default_timezone', value => 'US/Eastern'); END; / -- Check @show_scheduler_attribute.sql default_timezone
4. Reference - 참조
- Change Oracle timezone tips: http://www.dba-oracle.com/t_change_timezone.htm
- Oracle default_timezone & dbtimezone tips: http://dba-oracle.com/bk_oracle_timezone.htm
- What about database time zones – Oracle’s time zone processing: https://developpaper.com/what-about-database-time-zones-oracles-time-zone-processing/
반응형