백업 실패 해결

데이터베이스 백업은 여러 가지 이유로 실패할 수 있습니다. 일반적으로 데이터베이스 호스트가 객체 저장소에 액세스할 수 없거나 호스트 또는 데이터베이스 구성에 문제가 있기 때문에 백업이 실패합니다.

이 문서에는 실패 원인을 확인하고 문제를 해결하는 데 도움이 되는 정보가 포함되어 있습니다. 정보는 오류 조건에 따라 여러 섹션으로 구성됩니다.

원인을 이미 알고 있으면 제안된 솔루션을 사용하여 해당 항목으로 건너뛸 수 있습니다. 그렇지 않으면 실패 원인 식별 항목을 사용하여 시작합니다.

이 문서에서는 다음 항목을 다룹니다.

참고:

직렬 콘솔 연결을 만들어 단일 사용자 모드에서 시스템 문제를 해결할 수도 있습니다. OCI 콘솔에서 직렬 콘솔 접속 생성에 대한 자세한 내용은 DB 시스템에 대한 직렬 콘솔 접속 관리를 참조하십시오.

실패 원인 식별

OCI 콘솔에서 실패한 데이터베이스 백업은 실패 상태로 표시되거나 백업 진행 중 또는 생성 중 상태로 정지됩니다. 오류 메시지에 해결책을 가리키는 충분한 정보가 포함되어 있지 않은 경우 데이터베이스 CLI 및 로그 파일을 사용하여 더 많은 데이터를 수집할 수 있습니다. 그런 다음 이 항목의 해당 섹션에서 솔루션을 참조하십시오.

다음 항목을 다룹니다.

백업 실패의 근본 원인 식별

  1. root 유저로 호스트에 로그온하고 /opt/oracle/dcs/bin/로 이동합니다.

  2. 데이터베이스에서 수행되는 작업 순서를 결정합니다.

    dbcli list-jobs | grep -i <dbname>

    Success가 아닌 상태로 나열된 마지막 작업 ID를 확인합니다.

  3. 이전 단계에서 기록한 작업 ID를 사용하여 다음 명령을 사용하여 해당 작업의 세부 정보를 확인합니다.

    dbcli describe-job -i <job_ID> -j

    일반적으로 이 명령을 실행하면 실패의 근본 원인을 파악하기에 충분합니다.

  4. 자세한 내용은 /opt/oracle/dcs/log/dcs-agent.log 파일을 참조하십시오.

    2단계의 작업 보고서에서 반환된 시간 기록을 사용하여 이 파일에서 작업 ID를 찾을 수 있습니다.

  5. 문제 세부 정보에 RMAN 문제가 제안되면 다음 디렉토리에서 RMAN 로그를 검토하십시오.

    /opt/oracle/dcs/log/<hostname>/rman/bkup/<db_unique_name>/rman_backup/<yyyy-mm-dd>

주:

데이터베이스 Failure가 2노드 RAC 데이터베이스에 있는 경우 두 노드에서 3단계와 4단계를 수행합니다.

데이터베이스 서비스 에이전트 문제

OCI 데이터베이스는 에이전트 프레임워크를 사용하여 클라우드 플랫폼을 통해 데이터베이스를 관리할 수 있도록 합니다. 백업 실패를 해결하기 위해 dcsagent 프로그램이 stop/waiting 상태인 경우 가끔 다시 시작해야 할 수 있습니다.

데이터베이스 서비스 에이전트 재시작

주:

OL6를 사용할 때는 systemctl 대신 initctl를 사용합니다.
  1. 명령 프롬프트에서 에이전트의 상태를 확인합니다.

    systemctl status initdcsagent
  2. 에이전트가 stop/waiting 상태인 경우 에이전트를 다시 시작해 봅니다.

    systemctl start initdcsagent
  3. 에이전트의 상태를 다시 확인하여 start/running 상태가 있는지 확인합니다.

    systemctl status initdcsagent

Oracle Clusterware 문제

Oracle Clusterware를 사용하면 서버가 서로 통신하여 하나의 단위로 작동할 수 있습니다. 백업 실패를 해결하기 위해 Clusterware 프로그램을 다시 시작해야 하는 경우도 있습니다.

데이터베이스 호스트에서 다음 조건 중 하나 이상으로 인해 백업이 실패할 수 있습니다.

Oracle Clusterware 재시작

  1. 명령 프롬프트에서 Oracle Clusterware의 상태를 확인합니다.

    crsctl check crs
    crsctl stat res -t
  2. Oracle Clusterware가 온라인 상태가 아니면 프로그램을 재시작해 보십시오.

    crsctl start crs
  3. Oracle Clusterware의 상태를 검사하여 온라인 상태인지 확인합니다.

    crsctl check crs

객체 저장소 접속 문제

데이터베이스를 OCI Object Storage에 백업하려면 호스트가 해당 Swift 엔드포인트에 연결할 수 있어야 합니다. Swift 사용자를 사용하여 이 연결을 테스트할 수 있습니다.

데이터베이스 호스트가 객체 저장소에 접속할 수 있는지 확인

  1. 테넌시에 Swift 사용자를 생성합니다. 자세한 내용은 사용자 자격 증명 관리인증 토큰 작업을 참조하십시오.
  2. 이전 단계에서 생성한 유저와 함께 다음 명령을 사용하여 호스트가 객체 저장소에 액세스할 수 있는지 확인합니다.

    curl -v -X HEAD -u <user_ID>:'<auth_token>' https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>
  3. 객체 저장소에 연결할 수 없는 경우 객체 저장소 연결을 구성하는 방법은 콘솔을 사용하여 데이터베이스 백업을 참조하십시오.

호스트 문제

데이터베이스 호스트에서 다음 조건 중 하나 이상으로 인해 백업이 실패할 수 있습니다.

Oracle 프로파일의 대화식 명령

oraenv과 같은 대화식 명령 또는 오류 또는 경고 메시지를 반환할 수 있는 명령이 그리드 oracle 사용자에 대해 .bash_profile 파일에 추가된 경우 자동 백업과 같은 데이터베이스 서비스 작업이 중단되고 완료되지 않을 수 있습니다. .bash_profile 파일에서 이러한 명령을 확인하고 제거합니다.

파일 시스템이 가득 참

백업 작업을 수행하려면 호스트 파일 시스템의 /u01 디렉토리에 공간이 있어야 합니다. 호스트에서 df -h 명령을 사용하여 백업에 사용할 수 있는 공간을 확인합니다. 파일 시스템에 공간이 부족하면 이전 로그 또는 추적 파일을 제거하여 공간을 확보할 수 있습니다.

잘못된 버전의 Oracle Database Cloud Backup 모듈

시스템에 백업 모듈의 필수 버전(opc_installer.jar)이 없을 수 있습니다. 이 알려진 문제는 DB 시스템에서 관리되는 백업을 사용할 수 없음을 참조하십시오. 문제를 해결하려면 해당 섹션의 절차를 따르거나 최신 번들 업데이트로 DB 시스템 및 데이터베이스를 업데이트하면 됩니다.

사이트 프로파일 파일의 변경 사항(glogin.sql)

사이트 프로파일 파일($ORACLE_HOME/sqlplus/admin/glogin.sql)을 사용자정의하면 OCI에서 관리되는 백업이 실패할 수 있습니다. SQL*Plus Configuration을 참조하십시오. 특히 대화식 명령을 사용하면 백업 실패가 발생할 수 있습니다. Oracle은 OCI에 호스트된 데이터베이스에 대해서는 이 파일을 수정하지 않을 것을 권장합니다.

데이터베이스 문제

부적절한 데이터베이스 상태 또는 구성으로 인해 백업이 실패할 수 있습니다.

백업 중 데이터베이스가 실행 중이 아님

백업이 진행 중인 동안 데이터베이스는 활성 상태여야 하며 모든 노드에서 이상적으로 실행 중이어야 합니다.

데이터베이스가 활성 상태이고 실행 중인지 확인

다음 명령을 사용하여 데이터베이스의 상태를 확인하고 데이터베이스가 부적절한 상태로 전환될 수 있는 문제가 해결되었는지 확인합니다.

srvctl status database -d <db_unique_name> -verbose

시스템은 데이터베이스의 Instance 상태를 포함하는 메시지를 반환합니다. 백업이 성공하려면 인스턴스 상태가 열기여야 합니다. 데이터베이스가 실행되고 있지 않으면 다음 명령을 사용하여 데이터베이스를 시작합니다.

srvctl start database -d <db_unique_name> -o open

데이터베이스가 마운트되었지만 Open 상태가 아닌 경우 다음 명령을 사용하여 SQL*Plus 명령 프롬프트에 액세스하고 상태를 Open으로 설정합니다.

sqlplus / as sysdba
alter database open;

아카이브 모드가 NOARCHIVELOG로 설정됨

새 데이터베이스를 프로비저닝할 때 아카이빙 모드는 기본적으로 ARCHIVELOG로 설정됩니다. 백업 작업에 필요한 아카이브 모드입니다. 데이터베이스의 아카이브 모드 설정을 확인하고 해당하는 경우 ARCHIVELOG로 변경합니다.

아카이브 모드 확인 및 설정

SQL*Plus 명령 프롬프트를 열고 다음 명령을 입력합니다.

select log_mode from v$database;

아카이브 모드를 ARCHIVELOG로 설정해야 하는 경우 데이터베이스를 Mount 상태로 시작하고(Open 상태가 아님) SQL*Plus 명령 프롬프트에서 다음 명령을 사용합니다.

alter database archivelog;

db_recovery_file_dest 매개변수가 +RECO를 가리키고 log_archive_dest_1 매개변수가 USE_DB_RECOVERY_FILE_DEST로 설정되어 있는지 확인합니다.

RAC 데이터베이스의 경우 아카이브 로그 모드를 사용으로 설정할 때는 하나의 인스턴스가 Mount 상태를 가져야 합니다. RAC 데이터베이스에 대해 아카이브 로그 모드를 활성화하려면 다음 단계를 수행합니다.

  1. 모든 데이터베이스 인스턴스를 종료합니다.

    srvctl stop database -d
  2. 마운트 상태의 데이터베이스 인스턴스 중 하나를 시작합니다.

    srvctl start instance -d <db_unique_name> -i <instance_name> -o mount
  3. SQL*Plus 명령 프롬프트에 액세스합니다.

    sqlplus / as sysdba
  4. 아카이브 로그 모드를 사용으로 설정하고 종료합니다.

    alter database archivelog;
    exit;
  5. 데이터베이스 정지

    srvctl stop instance -d <db_unique_name> -i <instance_name>
  6. 모든 데이터베이스 Instance를 재시작합니다.

    srvctl start database -d <db_unqiue_name>
  7. SQL*Plus 명령 프롬프트에서 아카이브 모드가 ARCHIVELOG로 설정되어 있는지 확인합니다.

    select log_mode from v$database;

중단된 데이터베이스 아카이버 프로세스 및 백업 실패

데이터베이스 Instance의 아카이버 프로세스가 정지된 경우 백업이 실패할 수 있습니다. 예를 들어, FRA(Flash Recovery Area)가 가득 차면 이러한 상황이 발생할 수 있습니다. 다음 명령을 사용하여 이 조건을 확인할 수 있습니다.

srvctl status database -db <db_unique_name> -v

이 명령이 다음 출력을 반환할 경우 중단된 아카이버 프로세스 문제를 해결해야 백업이 성공할 수 있습니다.

Instance <instance_identifier> is running on node *<node_identifier>. Instance status: Stuck Archiver

중단된 아카이버 프로세스 해결에 대한 자세한 내용은 ORA-00257:Archiver Error (Doc ID 2014425.1)를 참조하십시오.

중단된 프로세스를 해결한 후 명령은 다음 출력을 반환해야 합니다.

Instance <instance_identifier> is running on node *<node_identifier>. Instance status: Open

장치 또는 리소스가 가득 차거나 사용할 수 없는 상태에서 근본적인 문제를 해결한 후 인스턴스 상태가 변경되지 않으면 다음 임시해결책 중 하나를 시도해 보십시오.

  • srvctl 명령을 사용하여 데이터베이스를 재시작하여 클러스터웨어의 데이터베이스 상태 갱신
  • 데이터베이스를 최신 패치 세트 레벨로 업그레이드

임시 테이블스페이스 오류

데이터베이스에서 고정 테이블 통계가 최신 상태가 아닌 경우 dcs-agent.log 파일에 있는 임시 테이블스페이스를 참조하는 중 오류가 발생하여 백업이 실패할 수 있습니다. 예:

select status from v$rman_status where COMMAND_ID=<backup_id>

출력:

ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

이 문제를 해결하려면 다음과 같이 고정 테이블 통계를 수집하십시오.

conn / as sysdba
exec dbms_stats.gather_fixed_objects_stats();

RMAN 구성 및 백업 Failure

특정 RMAN 구성 매개변수를 편집하면 OCI에서 백업 실패가 발생할 수 있습니다. RMAN 구성을 확인하려면 RMAN 명령행 프롬프트에서 show all 명령을 사용합니다.

OCI의 데이터베이스에 대해 변경해서는 안 되는 구성 설정을 RMAN에 대한 자세한 내용은 다음 매개변수 목록을 참조하십시오.

변경되지 않아야 하는 RMAN 구성 설정

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 5 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT   '%d_%I_%U_%T_%t' PARMS  
    'SBT_LIBRARY=/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs/libopc.so 
    ENV=(OPC_PFILE=/opt/oracle/dcs/commonstore/objectstore/opc_pfile/1578318329/opc_tiger_iad3c8.ora)';
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE ENCRYPTION FOR DATABASE ON;

RMAN Retention 정책 및 백업 Failure

RMAN 보존 정책 구성은 백업 실패의 원인일 수 있습니다. RECOVERY WINDOW 정책 대신 REDUNDANCY 보존 정책 구성을 사용하면 백업 실패가 발생할 수 있습니다. RECOVERY WINDOW OF 30 DAYS 구성을 사용해야 합니다.

RMAN 보존 정책 설정 구성

  1. 다음 명령을 사용하여 데이터베이스 ID를 찾습니다.

    dbcli list-databases
  2. 다음 명령을 사용하여 데이터베이스의 BackupConfigId 값을 찾습니다.

    dbcli describe-database -i <database_id>
  3. 보존 정책 구성을 RECOVERY WINDOW OF 30 DAYS로 업데이트합니다.

    dbcli update-backupconfig -i <backup_config_id> --recoverywindow 30

객체 저장소 전자 지갑 파일 및 백업 실패 손실

RMAN 백업은 객체 저장소 전자 지갑 파일이 손실된 경우 실패합니다. 객체 저장소에 대한 접속을 사용으로 설정하려면 전자 지갑 파일이 필요합니다.

객체 저장소 전자 지갑 파일이 존재하고 올바른 권한이 있는지 확인하십시오.

  1. 다음 명령을 사용하여 데이터베이스 ID를 찾습니다.

    dbcli list-databases
  2. 다음 명령을 사용하여 데이터베이스의 BackupConfigId 값을 찾습니다.

    dbcli describe-database -i <database_id>
  3. 다음 명령을 사용하여 데이터베이스의 BackupLocation 값을 찾습니다.

    dbcli describe-backupconfig <backup_config_id>
  4. 다음 명령을 사용하여 백업 구성 매개변수 파일(opc_<backup_location_value>_BC.ora)의 파일 경로를 찾습니다.

    locate opc_<backup_location_value>_BC.ora

    예:

    locate opc_b9naijWMAXzi9example_BC.ora

    출력:

    /opt/oracle/dcs/commonstore/objectstore/opc_pfile/13aef284-9d6b-4eb6-8751-2988a9example/opc_b9naijWMAXzi9example_BC.ora
  5. OPC_WALLET 파라미터에 저장된 값을 검사하여 백업 구성 파라미터 파일에서 전자 지갑 파일의 파일 경로를 찾습니다. 이렇게 하려면 백업 구성 매개변수 파일이 포함된 디렉토리로 이동하고 다음 cat 명령을 사용합니다.

    cat <backup_config_parameter_file>

    예:

    cat opc_b9naijWMAXzi9example_BC.ora

    출력:

    OPC_HOST=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dbbackupiad
    OPC_WALLET='LOCATION=file:/opt/oracle/dcs/commonstore/objectstore/wallets/13aef284-9d6b-4eb6-8751-2988aexample CREDENTIAL_ALIAS=alias_opc'
    OPC_CONTAINER=b9naijWMAXzi9example
  6. cwallet.sso 파일이 OPC_WALLET 매개변수에 지정된 디렉토리에 존재하는지 확인하고 파일에 올바른 권한이 있는지 확인하십시오. 파일 사용 권한의 8진수 값은 "600"(-rw-------)이어야 합니다. 다음 명령을 사용하십시오.

    ls -ltr /opt/oracle/dcs/commonstore/objectstore/wallets/<backup_config_id>

    예:

    ls -ltr /opt/oracle/dcs/commonstore/objectstore/wallets/13aef284-9d6b-4eb6-8751-2988aexample

    출력:

    total 4
    -rw------- 1 oracle oinstall    0 Apr 20 06:45 cwallet.sso.lck
    -rw------- 1 oracle oinstall 1941 Apr 20 06:45 cwallet.sso

TDE 전자 지갑 문제

잘못된 TDE 전자 지갑 위치 사양

백업 작업을 수행하려면 $ORACLE_HOME/network/admin/sqlnet.ora 파일에 다음과 같이 정확히 형식이 지정된 ENCRYPTION_WALLET_LOCATION 매개변수가 포함되어야 합니다.

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

주:

이 전자 지갑 위치 항목에서 $ORACLE_UNQNAME는 환경 변수이므로 실제 값으로 바꿔서는 안됩니다.

TDE 전자 지갑 위치 사양 확인

cat 명령을 사용하여 TDE 전자 지갑 위치 지정을 확인합니다. 예:

cat $ORACLE_HOME/network/admin/sqlnet.ora

출력:

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

데이터베이스가 SQL*Plus를 사용하여 시작된 경우 ORACLE_UNQNAME 환경 변수가 설정되지 않음

데이터베이스가 SQL*Plus를 사용하여 시작되었고 ORACLE_UNQNAME 환경 변수가 설정되지 않은 경우 전자 지갑이 올바르게 열리지 않습니다.

문제를 해결하려면 srvctl 유틸리티를 사용하여 데이터베이스를 시작합니다.

srvctl start database -d <db_unique_name>

플러그인할 수 있는 데이터베이스가 잘못 구성된 마스터 암호화 키로 추가됨

PDB 레벨 키 저장소를 지원하는 Oracle Database 버전용 다중 테넌트 환경에서 각 PDB에는 고유의 마스터 암호화 키가 있습니다. 이 암호화 키는 모든 컨테이너에서 사용하는 단일 키 저장소에 저장됩니다. 새 PDB를 생성하거나 플러그인한 후 해당 PDB에 대한 마스터 암호화 키를 생성하고 활성화해야 합니다. 그렇지 않으면 v$encryption_wallet 뷰의 STATUS 열에 OPEN_NO_MASTER_KEY 값이 표시됩니다.

마스터 암호화 키 상태를 확인하고 마스터 키를 만들려면 다음을 수행합니다.

  1. 다음 예와 같이 v$encryption_wallet 뷰에서 STATUS 열을 검토합니다.

    alter session set container=pdb2;
    select WRL_TYPE,WRL_PARAMETER,STATUS,WALLET_TYPE from v$encryption_wallet;

    출력:

    WRL_TYPE  WRL_PARAMETER                                           STATUS             WALLET_TYPE
    --------- ------------------------------------------------------- ------------------ -----------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/ OPEN_NO_MASTER_KEY AUTOLOGIN
  2. 다음 예제에 나와 있는 것처럼 PDB가 READ WRITE 열기 모드이고 제한되지 않았는지 확인합니다.

    show pdbs

    출력:

    CON_ID CON_NAME   OPEN MODE   RESTRICTED
    ------ ---------- ----------- -----------
    2      PDB$SEED   READ ONLY   NO
    3      PDB1       READ WRITE  NO
    4      PDB2       READ WRITE  NO

    PDB를 제한 모드로 열 수 없습니다(RESTRICTED 열에 NO이 표시되어야 함). PDB가 현재 제한 모드인 경우 계속하기 전에 PDB_PLUG_IN_VIOLATIONS 뷰의 정보를 검토하고 문제를 해결하십시오. PDB_PLUG_IN_VIOLATIONS 뷰 및 제한된 상태에 대한 자세한 내용은 Oracle Database 버전에 대한 플러거블 데이터베이스의 설명서를 검토하십시오.

  3. 다음 DBCLI 명령을 실행하여 상태를 OPEN로 변경합니다.

    sudo su –
    dbcli list-database
    dbcli update-tdekey -i <database_ID> -n <PDB_name> -p

    표시된 update-tdekey 명령은 관리자 암호를 묻는 메시지를 표시합니다.

  4. 1단계에 표시된 것처럼 v$encryption_wallet 뷰를 query하여 전자 지갑의 상태가 OPEN_NO_MASTER_KEY에서 OPEN으로 변경되었는지 확인합니다.

TDE 전자 지갑과 관련된 구성 확인

TDE 전자 지갑과 관련된 여러 구성 매개변수로 인해 백업이 실패할 수 있습니다.

  1. 다음 명령을 사용하여 환경의 데이터베이스 고유 이름 매개변수(ORACLE_UNQNAME)가 올바르게 설정되었는지 확인합니다.

    srvctl getenv database -d <db_unique_name>

    예:

    srvctl getenv database -d orclbkp_iadxyz

    출력:

    orclbkp_iadxyz:
    ORACLE_UNQNAME=orclbkp_iadxyz
    TZ=UTC
  2. sqlnet.ora 설정을 확인하여 파일에 올바른 DIRECTORY 값을 가진 ENCRYPTION_WALLET_LOCATION 파라미터가 있는지 확인합니다. 다음 명령을 사용하십시오.

    cat $ORACLE_HOME/network/admin/sqlnet.ora

    예:

    cat $ORACLE_HOME/network/admin/sqlnet.ora

    출력:

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  3. v$encryption_wallet 뷰를 확인하여 전자 지갑 상태가 open이고 전자 지갑 유형이 자동 로그인인지 확인합니다. 예:

    select status, wrl_parameter,wallet_type from v$encryption_wallet;

    출력:

    STATUS  WRL_PARAMETER                                            WALLET_TYPE
    ------- -------------------------------------------------------- ------------
    OPEN    /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/  AUTOLOGIN

    PDB(플러거블 데이터베이스)의 경우 v$encryption_wallet 뷰를 질의하기 전에 적합한 컨테이너로 전환해야 합니다. 예:

    sqlplus / as sysdba
    alter session set container=pdb1;
    select WRL_TYPE,WRL_PARAMETER,STATUS,WALLET_TYPE from v$encryption_wallet;

    출력:

    WRL_TYPE  WRL_PARAMETER                                          STATUS  WALLET_TYPE
    --------- ------------------------------------------------------ ------- ------------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/tiger_iad3c8/  OPEN    AUTOLOGIN

TDE 전자 지갑 파일 누락

TDE 전자 지갑 파일(ewallet.p12)이 누락되었거나 파일 시스템 권한 또는 소유권이 호환되지 않는 경우 백업이 실패할 수 있습니다. 다음 예제와 같이 파일을 검사합니다.

ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME/ewallet.p12

출력:

-rwx------ 1 oracle oinstall 5680 Apr 18 13:09 /opt/oracle/dcs/commonstore/wallets/tde/orclbkp_iadxzy/ewallet.p12

TDE 전자 지갑 파일은 8진수 값이 "700"(-rwx------)인 파일 권한을 가져야 하며, 이 파일의 소유자는 oinstall 운영체제 그룹의 일부여야 합니다.

자동 로그인 Wallet 파일 누락

자동 로그인 전자 지갑 파일(cwallet.sso)이 누락되었거나 파일 시스템 권한 또는 소유권이 호환되지 않는 경우 백업이 실패할 수 있습니다. 다음 예제와 같이 파일을 검사합니다.

ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME/cwallet.sso

출력:

-rwx------ 1 oracle oinstall 5725 Apr 18 13:09 /opt/oracle/dcs/commonstore/wallets/tde/orclbkp_iadxyz/cwallet.sso

자동 로그인 전자 지갑 파일에는 8진수 값이 "700"(-rwx------)인 파일 권한이 있어야 하며, 이 파일의 소유자는 oinstall 운영체제 그룹의 일부여야 합니다.

백업 실패의 다른 원인

마운트 해제된 Commonstore 마운트 위치

마운트 지점 /opt/oracle/dcs/commonstore를 마운트해야 합니다. 그렇지 않으면 백업이 실패합니다.

Commonstore 마운트 지점 확인

다음 예와 같이 마운트 지점 /opt/oracle/dcs/commonstore가 마운트되었는지 확인합니다.

srvctl config filesystem -volume commonstore -diskgroup data

출력:

Volume device: /dev/asm/commonstore-5
Diskgroup name: data
Volume name: commonstore
Canonical volume device: /dev/asm/commonstore-5
Accelerator volume devices:
Mountpoint path: /opt/oracle/dcs/commonstore
Mount point owner: oracle
Mount users:
Type: ACFS

ora.data.commonstore.acfs가 온라인 상태인지 확인

  1. ora.data.commonstore.acfs의 상태는 온라인 상태여야 합니다. 그렇지 않으면 백업이 실패합니다. 다음 예와 같이 확인합니다.

    crsctl stat resource ora.data.commonstore.acfs -v

    출력:

    NAME=ora.data.commonstore.acfs
    TYPE=ora.acfs.type
    LAST_SERVER=orcl
    STATE=OFFLINE
    TARGET=OFFLINE
    ...
    STATE_DETAILS=admin unmounted /opt/oracle/dcs/commonstore
    ...
  2. commonstore 디렉토리의 내용을 나열하여 디렉토리가 마운트되었는지 확인합니다.

    ls -ltr /opt/oracle/dcs/commonstore
  3. STATE_DETAILS 값이 unmounted인 경우 다음 예와 같이 파일 시스템을 마운트합니다.

    srvctl start filesystem -volume commonstore -diskgroup data
  4. 다음 예제와 같이 성공적으로 변경되었는지 확인합니다.

    crsctl stat resource ora.data.commonstore.acfs -v

    출력:

    NAME=ora.data.commonstore.acfs
    TYPE=ora.acfs.type
    LAST_SERVER=orcl
    STATE=ONLINE on orcl
    TARGET=ONLINE
    CARDINALITY_ID=ONLINE
    ...
    STATE_DETAILS=mounted on /opt/oracle/dcs/commonstore
  5. 다음 예와 같이 commonstore 디렉토리의 내용을 나열하여 디렉토리가 마운트되었는지 확인합니다.

    ls -ltr /opt/oracle/dcs/commonstore

    출력:

    total 220
    drwx------ 2 root   root     65536 Apr 18 10:50 lost+found
    drwx------ 3 oracle oinstall 20480 Apr 18 11:02 wallets
    drwxr-xr-x 3 root   root     20480 Apr 20 06:41 pkgrepos
    drwxr-xr-x 4 oracle oinstall 20480 Apr 20 06:41 objectstore

데이터베이스가 제대로 등록되지 않음

데이터베이스가 dcs-agent에 등록되지 않은 경우 데이터베이스 백업이 실패합니다. 이 시나리오는 데이터베이스를 OCI로 수동으로 이전하고 dbcli register-database 명령을 실행하지 않은 경우 발생할 수 있습니다.

데이터베이스가 제대로 등록되었는지 확인하려면 srvctl config database 명령 및 dbcli list-databases 명령을 실행하여 반환된 정보를 검토합니다. 두 명령 중 하나가 데이터베이스 레코드를 반환하지 않으면 Oracle Support Services에 문의하십시오.

데이터베이스 등록 방법에 대한 지침은 다음 항목을 참조하십시오.

추가 도움말 가져오기

이 항목의 정보를 사용하여 문제를 해결할 수 없는 경우 아래 절차에 따라 관련 데이터베이스 및 진단 정보를 수집하십시오. 이 정보를 수집했으면 Oracle Support에 문의하십시오.

문제 보고서에 사용할 데이터베이스 정보 수집

다음 명령을 사용하여 데이터베이스에 대한 세부 정보를 수집합니다. 참조를 위해 각 명령의 출력을 기록합니다.

dbcli list-databases
dbcli describe-database -i <database_id>
dbcli describe-component

실패한 작업에 대한 진단 정보 수집

  1. root 유저로 호스트에 로그온하여 /opt/oracle/dcs/bin/ 디렉토리로 이동합니다.

  2. 다음 두 개의 명령을 실행하여 실패한 작업에 대한 정보를 생성합니다.

    dbcli list-jobs
    dbcli describe-job -i <job_ID> -j

    두번째 명령의 <job_ID>은 첫번째 명령에서 보고된 최근 실패한 작업의 ID여야 합니다.

  3. 진단 수집기 스크립트를 실행하여 Oracle Support Services에 대한 진단 정보가 포함된 zip 파일을 생성합니다.

    diagcollector.py

    이 명령은 /tmp 디렉토리에 diagLogs -<timestamp>.zip라는 파일을 생성합니다.

DCS 에이전트 로그 파일 수집

DCS 에이전트 로그 파일을 수집하려면 다음을 수행합니다.

  1. opc 유저로 로그인합니다.
  2. 다음 명령을 실행합니다.

    sudo /opt/oracle/dcs/bin/diagcollector.py

    시스템은 에이전트 로그를 지정된 디렉토리의 zip 파일로 사용할 수 있음을 나타내는 메시지를 반환합니다. 예:

    Logs are being collected to: /tmp/dcsdiag/diagLogs-1234567890.zip

TDE 구성 세부정보 수집

  1. srvctl getenv database -d <db_unique_name> 명령을 실행하고 참조용으로 출력을 기록합니다.
  2. v$encryption_wallet 뷰의 출력을 기록합니다. 예:

    select status, wrl_parameter,wallet_type from v$encryption_wallet;

    출력:

    STATUS   WRL_PARAMETER                                           WALLET_TYPE
    -------- ------------------------------------------------------- ---------
    OPEN     /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/ AUTOLOGIN
  3. ls -ltr <wrl_parameter> command.For 예제의 출력 결과를 기록합니다.

    ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/

    출력:

    total 28
    -rw----- 1 oracle asmadmin 2400 May  2 09:42 ewallet_2018050209420381_defaultTag.p12
    -rw----- 1 oracle asmadmin 5680 May  2 09:42 ewallet.p12
    -rw----- 1 oracle asmadmin 5723 May  2 09:42 cwallet.sso

RMAN 백업 보고서 파일 수집

다음 명령을 사용하여 RMAN 백업 보고서 파일 생성

dbcli create-rmanbackupreport -i <db_id> -w detailed -rn <report_name>

예:

dbcli create-rmanbackupreport -i 57fvwxyz-9dc4-45d3-876b-5f850example -w detailed -rn bkpreport1

dbcli describe-rmanbackupreport -in <report_name> 명령을 사용하여 보고서 파일을 찾습니다. 보고서의 위치가 출력에 제공됩니다. 예:

dbcli describe-rmanbackupreport -in bkpreport1

출력:

Backup Report details                                           
----------------------------------------------------------------
ID: b55vwxyz-c49f-4af3-a956-acccdexample
Report Type: detailed
Location: Node patchtst: /opt/oracle/dcs/log/patchtst/rman/bkup/example_iadxyz/rman_list_backup_detail
    /2018-05-02/rman_list_backup_detail_2018-05-02_11-46-51.0359.log
Database ID: 57fvwxyz-9dc4-45d3-876b-5f850example
CreatedTime: May 2, 2018 11:46:38 AM UTC