Oracle® Database 19c는 데이터베이스 관리자(DBA)에게 유용한 수많은 신규 기능과 개선 사항을 도입했습니다.
소개
Oracle 19c는 장기 지원(Long-Term Support)이 제공되는 Oracle Database 12c Release 2 제품군의 마지막 버전입니다. Linux®, Windows®, Solaris®, HP/UX®, AIX® 플랫폼은 물론 Oracle Cloud에서도 사용할 수 있습니다. Oracle 19c는 모든 운영(OLTP) 및 분석 워크로드에 대해 최상의 성능, 확장성, 안정성, 보안 기능을 고객에게 제공합니다.
주요 신기능 한눈에 보기
다음은 데이터베이스 관리자(DBA)의 업무를 한층 수월하게 만들어 주는 새로운 기능들입니다.
- DBCA 사일런트(silent) 모드 개선 — 사일런트 모드에서 다음 작업을 수행할 수 있습니다.
- 원격 PDB 복제
- PDB를 다른 컨테이너 데이터베이스(CDB)로 재배치
- Oracle Database 복제본 생성
- Oracle Clusterware 업그레이드 드라이런(dry-run) 검증
- Data Guard에서의 Flashback 지원
- Data Guard의 DML 모드
- 네트워크 파일 보존 기간 및 크기 제한
- 자동 인덱싱(Automatic Indexing) 기능
- 이미지 기반 Oracle 클라이언트 설치
- Oracle 데이터베이스 AutoUpgrade
이어서 각 기능을 좀 더 자세히 살펴보겠습니다.
DBCA 사일런트 모드
DBCA 사일런트 모드를 사용하면 PDB, CDB 또는 non-CDB 데이터베이스를 손쉽게 복제하거나 재배치할 수 있습니다. 아래 예시를 참고하세요.
-
사일런트 모드의 DBCA로 원격 PDB를 복제해 새 PDB를 생성하는 구문:
dbca -createPluggableDatabase -createFromRemotePDB -remotePDBName <REMOTE_PDB_NAME> -remoteDBConnString <REMOTE_DB_CONN_STRING> -sysDBAUserName <SYSDBUSERNAME> -sysDBAPassword <SYSDBAPASSOWRD> -dbLinkUsername <DBLINK_COMMON_USER_NAME> -dbLinkUserPassword <DBLINK_COMMON_USERNAME_PWD> -sourceDB <Local_CDB> -pdbName <PDBTOBECREATED> -
PDB를 다른 CDB로 재배치하는 구문:
dbca -silent -relocatePDB -remotePDBName <REMOTE_PDB_NAME> -remoteDBConnString <REMOTE_DB_CONN_STRING> -sysDBAUserName <SYSDBUSERNAME> -sysDBAPassword <SYSDBAPASSOWRD> -dbLinkUsername <DBLINK_COMMON_USERNAME> -dbLinkUserPassword <DBLINK_COMMON_USERNAME_PWD> -sourceDB <DBNAME_PDB_TOBERELOCATED> -pdbName <PDBTOBERECREATED -
non-CDB 또는 Real Application Clusters(RAC) 데이터베이스의 복제본을 생성하는 구문:
dbca -silent -createDuplicateDB -gdbName test -primaryDBConnectionString <Hostname>:1521/orcl.us.rackspace.com -sid test -databaseConfigType SINGLE -initParams db_unique_name=test -sysPassword XXXXX
Grid 업그레이드 드라이런(Dry-Run) 검증
이 기능은 실제 업그레이드 작업 시 DBA가 사용하는 것과 유사한 입력과 출력을 제공하여, 자동화 및 사전 점검(precheck) 작업을 최대한 실제 상황에 가깝게 재현해 줍니다. 이 기능은 RAC 전용이며, 아직 Oracle Restart에는 지원되지 않습니다. 드라이런 Grid 업그레이드에서 수행되는 점검 항목은 다음과 같습니다.
- 사전 점검 입력값과 결과 확인
- 구성 도구(configuration tools)는 실행하지 않음
- 업그레이드를 위한 시스템 준비 상태 점검
- 스토리지 및 네트워크 구성 점검
- 소프트웨어 및 하드웨어 요구 사항 점검
- 패치 요구 사항 확인 및 필요 시 패치 적용
실행 구문: $ORACLE_HOME/runinstaller dryRunForUpgrade
참고: 드라이런 실행 후 실제 업그레이드를 진행하려면 첫 번째 노드에서 ORACLE_HOME을 반드시 분리(detach)해야 합니다. 이 작업은 다음 구문으로 수행합니다.
runInstaller -silent –waitforcompletion -detachHome ORACLE_HOME=<> -local
Data Guard에서의 Flashback
이제 기본(primary) 데이터베이스와 대기(standby) 데이터베이스가 동일한 최신 상태를 유지할 수 있습니다. flashback 기능으로 기본 데이터베이스를 되돌리더라도 대기 데이터베이스는 기본 데이터베이스와 계속 동기화됩니다. 19c 이전 릴리스에서는 대기 데이터베이스를 기본 데이터베이스와 같은 상태로 동기화하기 위해 번거로운 수작업 과정을 거쳐야 했습니다.
DML 및 PL/SQL을 지원하는 Oracle Active Data Guard
이제 대기(standby) 모드에서도 DML과 PL/SQL을 사용할 수 있습니다. Oracle Active Data Guard 사용자는 데이터베이스 수준에서 DML 문이나 PL/SQL 코드를 실행할 수 있으며, 데이터베이스 수준에서 설정하지 않은 경우 필요에 따라 세션 수준에서도 실행할 수 있습니다. 다음 설정과 명령어를 사용하세요.
-
모든 세션에서 DML 활동을 허용하려면 대기 데이터베이스에서 파라미터를 설정합니다:
ADG_REDIRECT_DML=TRUE -
모든 세션에서 PL/SQL 활동을 허용하려면 대기 데이터베이스에서 파라미터를 설정합니다:
ADL_REDIRECT_PLSQL=TRUE -
현재 세션에만 적용하려면 다음을 사용합니다:
ALTER SESSION ENABLE ADG_REDIRECT_DML ; ALTER SESSION ENABLE ADL_REDIRECT_PLSQL ;
네트워크 트레이스 및 로그 파일 자동 정리
Oracle은 로그 및 트레이스 파일의 보존 기간을 제어하기 위해 ADR(Automatic Diagnostic Repository) 및 non-ADR 리스너 파라미터를 도입했습니다. 아래 파라미터들이 크기 제한을 담당합니다. 기본적으로 이 값들은 설정되어 있지 않으며, 0으로 설정하면 제한 없이 동작합니다. 다음과 같이 0이 아닌 값을 지정할 수 있습니다.
- LOG_FILE_NUM_listener_name: 로그 파일 세그먼트 수를 지정합니다(기본값: 미설정).
- LOG_FILE_SIZE_listener_name: 리스너 로그 파일의 최대 크기를 MB 단위로 지정합니다(기본값: 300MB).
- TRACE_FILEAGE_listener_name: 리스너 트레이스 파일의 최대 보존 기간을 분 단위로 지정합니다(기본값: 무제한).
- TRACE_FILELEN_listener: 리스너 트레이스 파일의 최대 크기를 KB 단위로 지정합니다(기본값: 무제한).
자동 인덱스(Automatic Index) 기능
새로 도입된 패키지를 통해 SQL Access Advisor를 활용해 인덱스 생성, 재구축(rebuild), 분석 작업을 자동으로 구성할 수 있습니다. 이와 함께 사용되는 패키지는 다음과 같습니다.
- dbms_auto_index.configure
- dbms_auto_index.report_activity
DBA_INDEXES 뷰의 AUTO 컬럼을 확인하면 자동 인덱스 구성에 의해 인덱스가 생성되었는지 검증할 수 있습니다.
이미지 기반 Oracle 클라이언트 설치
관리자 클라이언트(admin clients)는 이제 Oracle Database 소프트웨어 바이너리와 마찬가지로 이미지 기반(image-based) Oracle 클라이언트 설치를 수행할 수 있습니다.
AutoUpgrade
AutoUpgrade 기능을 사용하면 Oracle Database를 자동으로 업그레이드할 수 있습니다. 이 기능의 핵심은 구성 파일(config file)입니다. 구성 파일을 활용하면 AutoUpgrade 프로세스를 안내하고 다양한 Oracle Database 업그레이드 옵션을 제어할 수 있습니다.
AutoUpgrade 유틸리티 위치: oracle_home/rdbms/admin/autoupgrade.jar
로그/구성 파일 위치: 아래 경로에서 파일을 찾을 수 있습니다.
- Unix 및 Linux® 시스템: /tmp/autoupgrade
- Microsoft® Windows®: C:\Users\name\AppData\Local\Temp\autoupgrade
기본 구성 파일 이름: autoupgrade <YYYYMMMMMHHMMSS>.cfg (YYYY는 연도, MMMM은 월, HH는 시, MM은 분, SS는 초를 의미)
AutoUpgrade 사전 요구 사항
- JDK 8 (12.1 릴리스부터 바이너리에 포함됨)
- 수동 업그레이드에 적용되는 규칙이 호환성 검증에도 동일하게 적용됩니다.
- 대상 CDB로 업그레이드하려면 대상 CDB가 먼저 존재해야 합니다.
- 11.2.0.4 이상 버전은 직접 업그레이드가 가능하며, non-CDB를 CDB로 변환할 수 있습니다.
- AutoUpgrade를 실행하기 전에 대상 OracleHome이 사용 가능한 상태인지, 최신 RU/RUR로 패치되었는지 확인하세요.
- 아카이브로그(Archivelog) 모드 ON
- 다음 버전들을 자동으로 업그레이드하려면 AutoUpgrade 유틸리티를 다운로드하여 사용하세요:
AutoUpgrade로 업그레이드 가능/불가한 항목
다음 목록은 AutoUpgrade로 업그레이드할 수 있는 항목과 피해야 할 항목을 보여줍니다.
- 하나 이상의 Oracle 데이터베이스 업그레이드 가능
- Non-CDB와 CDB 모두 지원하며, 업그레이드와 함께 Non-CDB에서 CDB로 직접 변환 가능
- SE2 및 Enterprise Edition 데이터베이스 지원
- 모든 운영체제에서 동작
- RAC 데이터베이스 업그레이드 가능
- Grid Infrastructure 업그레이드와는 호환되지 않음
AutoUpgrade를 설정하고 사용하려면 다음 단계를 수행하세요.
설정:
-
Oracle은 현재 버전을 확인한 후, 업그레이드를 위해 MOS 문서 2485457.1에서 최신 버전을 다운로드할 것을 권장합니다.
-
명령줄에서 다음 구문을 사용해 구성 파일 파라미터를 설정합니다:
java –jar autoupgrade.jar –config /dir/myconfig.cfg –config_values “source_home=/srcdir, target_home=/trgdir, sid=sales” –mode deploy
또는 다음과 같이 환경 변수와 비워 둔 config 파라미터를 사용할 수도 있습니다.
ORACLE_HOME = /u01/app/oracle/product/12.1.0.2ORACLE_TARGET_HOME = /u01/app/oracle/product/19.0.3ORACLE_SID= mydbORACLE_TARGET_VERSION = 18.3
위 명령들은 기본 이름으로 구성 파일을 생성하며, 이 파일을 자신의 환경에 맞게 수정한 후 다음 단계를 진행할 수 있습니다.
전역 변수(Global variables)와 지역 변수(Local variables)를 정의할 수도 있습니다. 아래 이미지와 같이 지역 변수 선언이 전역 변수보다 우선 적용됩니다.
셸 스크립트, PowerShell® 스크립트 또는 배치 파일을 사용해 배치 처리 명령을 자동으로 실행할 수도 있습니다. 아래 이미지를 참고하세요.
동일한 서버에서 소스와 대상 업그레이드:
같은 서버에서 소스와 대상 Oracle Database를 업그레이드하려면 Oracle이 권장하는 다음 순서를 따르세요.
java –jar autoupgrade.jar -config_values "" -mode analyzejava –jar autoupgrade.jar -config_values "" -mode fixjava –jar autoupgrade.jar -config_values "" -mode deploy
서로 다른 서버에서 소스와 대상 업그레이드:
소스와 대상이 다른 Oracle 제품 업그레이드의 경우, 앞 단계의 analyze 및 fix 명령은 소스에서 실행하고, 대상에서는 다음 upgrade 명령을 사용합니다.
java –jar autoupgrade.jar -config_values "" -mode upgrade
업그레이드 모니터링:
콘솔, 로그 위치의 HTML 파일, 그리고 다음 위치의 로그 파일들을 통해 AutoUpgrade를 검증하고 모니터링할 수 있습니다.
- /cfgtoollogs
- ./upgrade/auto/status <- 상태 로그
- /database_1
- ./job_number
- ./prechecks
- ./preupgrade <- 사전 업그레이드 로그
- ./prefixups
- ./drain
- ./dbupgrade <- 업그레이드 로그
- ./postupgrade
- ./temp
- /database_2
AutoUpgrade 사용 시 주의 사항:
중요: AutoUpgrade 콘솔에서 명령어를 사용할 때 유의할 팁은 다음과 같습니다.
- 프롬프트에서 Control + C, Control + V, Control + D 또는 exit를 절대 사용하지 마세요. 업그레이드가 중단됩니다.
- 숙련된 사용자라면
-noconsole옵션을 사용하는 것이 좋습니다.
다음 AutoUpgrade 작업 상태 명령어로 작업을 시작하고 중지할 수 있습니다.
- 작업 목록 조회:
lsj - 작업 재개:
resume -job <number> - 작업 상태 표시:
status [-job <number>] - GRP로부터 데이터베이스 복원:
restore -job <number> - 지정한 작업 중단(재개 가능):
abort -job <number>
결론
이 글에서 소개한 새로운 기능들을 활용하면 DBA는 데이터베이스 소프트웨어 설치와 업그레이드를 손쉽게 관리할 수 있고, 인덱스 부족이나 인덱스 성능 저하로 인해 성능이 떨어진 SQL 쿼리를 효과적으로 튜닝할 수 있습니다. 프로덕션 환경에 적용하기 전에 반드시 테스트 환경에서 Oracle 19c 신기능의 사용 여부와 동작을 먼저 검증하는 것을 잊지 마세요.
데이터베이스 서비스에 대해 더 자세히 알아보세요.
피드백 탭을 이용해 의견을 남기거나 질문을 보내실 수 있으며, 언제든지 저희와 대화를 시작하실 수 있습니다.