Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

데이터베이스 관리자를 위한 Oracle 19c 신기능 완벽 가이드

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 유틸리티를 다운로드하여 사용하세요:
데이터베이스 관리자를 위한 Oracle 19c 신기능 완벽 가이드

AutoUpgrade로 업그레이드 가능/불가한 항목

다음 목록은 AutoUpgrade로 업그레이드할 수 있는 항목과 피해야 할 항목을 보여줍니다.

  • 하나 이상의 Oracle 데이터베이스 업그레이드 가능
  • Non-CDB와 CDB 모두 지원하며, 업그레이드와 함께 Non-CDB에서 CDB로 직접 변환 가능
  • SE2 및 Enterprise Edition 데이터베이스 지원
  • 모든 운영체제에서 동작
  • RAC 데이터베이스 업그레이드 가능
  • Grid Infrastructure 업그레이드와는 호환되지 않음

AutoUpgrade를 설정하고 사용하려면 다음 단계를 수행하세요.

설정:

  1. Oracle은 현재 버전을 확인한 후, 업그레이드를 위해 MOS 문서 2485457.1에서 최신 버전을 다운로드할 것을 권장합니다.

  2. 명령줄에서 다음 구문을 사용해 구성 파일 파라미터를 설정합니다:

     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.2
  • ORACLE_TARGET_HOME = /u01/app/oracle/product/19.0.3
  • ORACLE_SID= mydb
  • ORACLE_TARGET_VERSION = 18.3

위 명령들은 기본 이름으로 구성 파일을 생성하며, 이 파일을 자신의 환경에 맞게 수정한 후 다음 단계를 진행할 수 있습니다.

데이터베이스 관리자를 위한 Oracle 19c 신기능 완벽 가이드

전역 변수(Global variables)와 지역 변수(Local variables)를 정의할 수도 있습니다. 아래 이미지와 같이 지역 변수 선언이 전역 변수보다 우선 적용됩니다.

데이터베이스 관리자를 위한 Oracle 19c 신기능 완벽 가이드

셸 스크립트, PowerShell® 스크립트 또는 배치 파일을 사용해 배치 처리 명령을 자동으로 실행할 수도 있습니다. 아래 이미지를 참고하세요.

데이터베이스 관리자를 위한 Oracle 19c 신기능 완벽 가이드

동일한 서버에서 소스와 대상 업그레이드:

같은 서버에서 소스와 대상 Oracle Database를 업그레이드하려면 Oracle이 권장하는 다음 순서를 따르세요.

  1. java –jar autoupgrade.jar -config_values "" -mode analyze
  2. java –jar autoupgrade.jar -config_values "" -mode fix
  3. java –jar autoupgrade.jar -config_values "" -mode deploy

서로 다른 서버에서 소스와 대상 업그레이드:

소스와 대상이 다른 Oracle 제품 업그레이드의 경우, 앞 단계의 analyzefix 명령은 소스에서 실행하고, 대상에서는 다음 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 신기능의 사용 여부와 동작을 먼저 검증하는 것을 잊지 마세요.

데이터베이스 서비스에 대해 더 자세히 알아보세요.

피드백 탭을 이용해 의견을 남기거나 질문을 보내실 수 있으며, 언제든지 저희와 대화를 시작하실 수 있습니다.