내용으로 건너뛰기

Amazon RDS for Oracle DB 인스턴스의 시간대 옵션 관련 문제를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon Relational Database Service(Amazon RDS) for Oracle DB 인스턴스와 함께 시간대 옵션을 사용하려고 합니다. 또는 DB 인스턴스에서 시간대 옵션을 사용할 때 발생하는 문제를 해결하려고 합니다.

간략한 설명

표준 시간대 옵션을 사용하면 RDS for Oracle DB 인스턴스에서 사용하는 시스템 표준 시간대를 변경할 수 있습니다. 예를 들어 온프레미스 환경이나 레거시 애플리케이션과 호환되도록 DB 인스턴스의 표준 시간대를 변경할 수 있습니다.

표준 시간대 옵션은 호스트 수준에서 시간대를 변경합니다. 인스턴스의 표준 시간대를 변경하면 해당 옵션이 모든 날짜 열과 값에 영향을 줍니다. 여기에는SYSDATESYSTIMESTAMP가 포함됩니다.

해결 방법

고려 사항 및 제한 사항

표준 시간대 옵션을 사용하기 전에 다음을 검토하여 옵션의 제한 사항을 알아보십시오.

  • RDS for Oracle DB 인스턴스를 생성하면 데이터베이스가 자동으로 데이터베이스 표준 시간대를 설정합니다. 데이터베이스 시간대는 일광 절약 시간제(DST) 표준 시간대라고도 합니다. 데이터베이스 표준 시간대는 시스템 표준 시간대와 다릅니다.
  • Oracle Database 릴리스 간에는 패치 세트 또는 개별 패치에 새 DST 버전이 포함되는 경우가 많습니다. 이러한 패치는 다양한 표준 시간대 리전의 전환 규칙 변경 사항을 반영합니다. DST 규칙을 변경하면 TIMESTAMP WITH TIME ZONE 데이터 유형의 기존 데이터에 영향을 줄 수 있습니다.
  • RDS for Oracle DB 인스턴스를 업그레이드하는 경우 Amazon RDS는 데이터베이스 표준 시간대 파일을 자동으로 업그레이드하지 않습니다. 표준 시간대 파일을 자동으로 업그레이드하려면 엔진 버전 업그레이드 도중 또는 이후에 인스턴스의 옵션 그룹에 TIMEZONE_FILE_AUTOUPGRADE 옵션을 포함합니다.

DB 인스턴스를 이전 표준 시간대 설정으로 복구

참고: 표준 시간대 옵션은 영구적이고 지속적인 옵션입니다. 따라서 옵션을 추가한 후에는 옵션 그룹에서 해당 옵션을 제거할 수 없습니다. 마찬가지로 옵션을 추가한 후에는 인스턴스에서 옵션 그룹을 제거할 수 없습니다. 또한 옵션의 표준 시간대 설정을 다른 시간대로 수정할 수도 없습니다. 자세한 내용은 지속적 및 영구적 옵션을 참조하십시오.

표준 시간대를 잘못 설정한 경우 DB 인스턴스를 이전 표준 시간대 설정으로 복구해야 합니다.

DB 인스턴스가 기본 옵션 그룹을 사용하는 경우 다음 단계를 따르십시오.

  1. DB 인스턴스의 스냅샷을 생성합니다. 자세한 내용은 단일 AZ DB 인스턴스의 DB 스냅샷 생성을 참조하십시오.
  2. 표준 시간대 옵션을 DB 인스턴스에 추가합니다.

DB 인스턴스가 현재 기본이 아닌 옵션 그룹을 사용하는 경우 다음 단계를 따르십시오.

  1. DB 인스턴스의 스냅샷을 생성합니다.
  2. 표준 시간대 옵션을 사용하여 새 옵션 그룹을 생성합니다.
  3. 옵션 그룹을 DB 인스턴스에 추가합니다.

참고: 표준 시간대 옵션을 추가하면 시스템 날짜를 사용하여 날짜 또는 시간을 추가하는 테이블에 문제가 발생할 수 있습니다. 표준 시간대 옵션을 프로덕션 DB 인스턴스에 추가하기 전에 테스트 DB 인스턴스에서 테스트하는 것이 좋습니다. 데이터와 애플리케이션을 분석하여 표준 시간대 변경의 영향을 평가하십시오.

표준 시간대 옵션을 DB 인스턴스에 추가

표준 시간대 옵션은 호스트 수준에서 표준 시간대를 변경하며 SYSDATE와 같은 모든 날짜 열과 값에 영향을 줍니다. 다음 단계를 사용하여 표준 시간대 옵션을 DB 인스턴스에 추가하십시오.

  1. 새 옵션 그룹을 생성하거나, 기존 옵션 그룹을 복사 또는 수정합니다.
  2. 표준 시간대 옵션을 옵션 그룹에 추가합니다.
  3. 옵션 그룹을 DB 인스턴스와 연결합니다.

참고: 표준 시간대 옵션을 추가하면 DB 인스턴스가 자동으로 다시 시작되므로 잠시 중단이 발생합니다.

예시:

TIMEZONE 옵션 수정 전과 후의 열 값을 확인하려면 다음과 유사한 명령을 실행합니다.

SYS.ORCL> select sysdate,systimestamp from dual;

DB(데이터베이스) 표준 시간대 옵션 사용

특정 데이터 유형의 표준 시간대를 변경하려면 alter_db_time_zone 프로시저를 사용합니다. 이 옵션은 SYSDATE를 변경하지 않습니다. alter_db_time_zone을 실행한 후 DB 인스턴스를 재부팅하여 변경 사항을 적용하십시오.

다음 예에서는 표준 시간대를 UTC+10시간으로 변경합니다.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+10:00');

다음 예에서는 표준 시간대를 호주/시드니 표준 시간대로 변경합니다.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Australia/Sydney');

다음 예제는 인스턴스 재부팅이 완료된 후 DB TIMEZONE 설정을 확인합니다.

select (select name from v$database) dbname,dbtimezone from dual;

표준 시간대 및 표준 시간대 업그레이드 파일 변경과 관련된 문제 해결

표준 시간대 설정을 다른 시간대로 수정한 후 API 호출 오류 발생

새 옵션 그룹에서 요청한 표준 시간대 옵션은 기존 옵션 그룹의 표준 시간대 옵션과 다릅니다. DB 인스턴스의 표준 시간대를 설정한 후에는 다른 표준 시간대로 변경할 수 없습니다.

이 문제를 해결하려면 원하는 표준 시간대로 새 인스턴스를 생성합니다. 그런 다음, 기본 Oracle 내보내기/가져오기 유틸리티를 사용하여 기존 인스턴스에서 새 인스턴스로 데이터를 마이그레이션합니다.

서로 다른 버전의 표준 시간대 파일을 사용하는 데이터베이스 간에 데이터를 전송한 후 문제 발생

서로 다른 표준 시간대 파일 버전을 사용하는 데이터베이스 간에 데이터를 전송하려고 하면 다음과 유사한 오류가 발생합니다.

"ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 41 into a target database with TSTZ version 39."

이 문제를 해결하려면 SQL 클라이언트를 사용하여 Oracle 데이터베이스에 연결하고 사용 중인 현재 표준 시간대 파일 버전을 확인합니다. 다음과 유사한 명령을 실행하십시오.

SELECT * FROM V$TIMEZONE_FILE;

DB 인스턴스에서 사용할 수 있는 최신 표준 시간대 파일 버전을 확인합니다. 이 단계는 Oracle Database 12c 릴리스 2(12.2) 이상을 사용하는 경우에만 적용됩니다. 다음과 유사한 명령을 실행하십시오.

SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;

DB 엔진을 업그레이드하고 표준 시간대 파일을 독립적으로 업데이트할 수 있습니다. 업그레이드 전략은 데이터베이스와 표준 시간대 파일을 동시에 업그레이드하는지 또는 한 번에 하나씩 업그레이드하는지 여부에 따라 다릅니다.

  • 아직 TIMEZONE_FILE_AUTOUPGRADE를 DB 인스턴스에서 사용하는 옵션 그룹에 추가하지 않았습니다.
  • DB 인스턴스 버전 19.0.0.0.ru-2022-10.rur-2022-10.r1은 데이터베이스 표준 시간대 파일 DSTv39를 사용합니다.
  • 릴리스 업데이트 19.0.0.0.ru-2023-01.rur-2023-01.r2에는 DSTv41이 포함되어 있습니다.

표준 시간대 파일을 업데이트하려면 다음 전략 중 하나를 사용하십시오.

관련 정보

데이터베이스 표준 시간대 설정

표준 시간대 파일 자동 업그레이드 옵션 추가