DB/오라클

맥북m1 DBeaver에서 현재 시간(sysdate)이 제대로 안나올때 해결방법

hubaek 2023. 4. 12. 11:49

현재 맥북에어 m1을 사용중.

이 글을 읽으시는 분은 homebrew , colima , docker로 오라클 DB를 사용하고 계신분이 겪고있는 사람 일 것 이다.

오라클DB를 사용하기 위한 모든 세팅을 마친 후 DBeaver로 SQL문을 실습하는 중 문제를 발견.

SELECT SYSDATE FROM DUAL;

SYSDATE 함수를 실행했더니 현재시간 기준 -9시간 (미국시간) 으로 나오는 것이 아니겠는가..

인터넷 검색으로 

ALTER DATABASE SET TIME_ZONE = 'Asia/Seoul';

ALTER SESSION SET TIME_ZONE = 'Asia/Seoul';

다 해봤지만 변경되지 않았음..

 

이 문제의 해결방법은 docker에 있었다.

m1칩은 docker를 이용해서 오라클DB에 접속하기 때문에 docker의 타임존을 변경을 해주어야 한다.

1. 터미널 실행

2. docker exec -it {컨테이너 ID} /bin/bash

( 참고 : {}은 적지마세요,  컨테이너ID 확인은 터미널에서  docker ps 명령문 실행)

3번째 줄의 "9e2a545f7137" 가 컨테이너 ID

(컨테이너 ID는 개인마다 다르니 참고용으로만 보세요.)

 

bash로 들어왔으면

3. echo $TZ

4. date

(현재 시간 확인 -- DBeaver에서 SYSDATE로 확인한 시간이 나올것임)

5. export TZ=Asia/Seoul

6. sqlplus system/pass (system계정, system패스워드 - 개인마다 다를 수 있음)

sqlplus를 실행하고 system 계정으로 접속

7. select to_char(sysdate, 'yy-mm-dd hh:mi:ss') from dual;

(SYSDATE 변경된 것 확인)

8. exit (bash로 나옴)

9. sqlplus / as sysdba

10. shutdown immediate

11. startup (시간이 조금 걸림)

마지막까지 해야 재시작하고 SYSDATE가 적용 됩니다.

'DB > 오라클' 카테고리의 다른 글

TRANSACTION(트랜잭션)  (0) 2023.04.14
CONSTRAINT(제약조건)  (0) 2023.04.14