IBM Db2, SAP ASE, SAP IQ, SAP MaxDB 데이터베이스를 새 타겟으로 복구

다음 섹션에는 전체+증분 백업 이미지에서 새 대상에 IBM Db2, SAP ASE, SAP IQ, SAP MaxDB 데이터베이스를 복구하는 방법에 관한 정보가 포함되어 있습니다.

절차

파일 기반 백업 이미지를 새 대상에 복원하려면 다음 안내를 따르세요.

  1. App Manager Applications 목록에서 보호된 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 Access를 선택합니다.

  2. 복구할 최신 스냅샷을 선택하고 마운트를 클릭합니다.

  3. 마운트 위치 아래에 마운트 지점(예: /mymountpoint)을 제공합니다.

    데이터베이스 백업은 /mymountpoint 아래에 마운트되고 로그 백업은 /mymountpoint_archivelog 아래에 마운트됩니다.

  4. 다음 명령어를 실행하여 /var/act/log/UDSAgent.log에서 마운트의 JobID를 가져옵니다.

    grep "mount -t " /var/act/log/UDSAgent.log | grep -w "(mountPoint provided in step 3)"|tail -1
    

    예를 들면 다음과 같습니다.

    # grep "mount -t " /var/act/log/UDSAgent.log| grep -w "/db2mnp" |tail -1
    2019-11-18 23:59:19.740 GEN-INFO 22488 Job_0404207 Spawning cmd: mount -t ext4 /dev/act403764_DBDump_1574101677612/act_staging_vol /db2mnp 2>&1
    
  5. ARCHIVELOG_MNT는 _archivelog와 같습니다. 3단계를 참고하세요.

  6. 루트로 데이터베이스 서버에 로그인합니다. 서버에서 디렉터리를 다음으로 변경합니다.

    cd /act/custom_apps/(database type)/dump
    
  7. 명령줄에서 루트로 스크립트를 실행합니다.

  8. 마운트된 덤프 스냅샷 이미지의 마운트를 해제합니다.

필수 스크립트

데이터베이스를 새 타겟에 마운트하려면 먼저 스크립트를 준비해야 합니다.

IBM Db2

  /act/custom_apps/db2/dump/ACT_DB2_dumprestore_newTarget.sh \
  SOURCE_INSTANCE=SOURCE_INSTANCE_edited_value \
  TARGET_MNT=TARGET_MNT_edited_value \
  DB_LIST=DB_LIS_edited_value \
  ARCHIVELOG_MNT=ARCHIVELOG_MNT_edited_value \
  SOURCE_LOGARCHMETH1=SOURCE_LOGARCHMETH1_edited_value \
  UNTIL_TIME=UNTIL_TIME_edited_value \
  ACT_JOBNAME=ACT_JOBNAME_edited_value

다음을 바꿉니다.

  • SOURCE_INSTANCE: Db2 인스턴스의 이름입니다.
  • TARGET_MNT: 마운트 작업 중에 제공된 마운트 지점입니다.
  • DB_LIST: 복원할 데이터베이스를 쉼표로 구분한 목록
  • ARCHIVELOG_MNT: 보관처리 로그 백업 마운트 지점 이름
  • SOURCE_LOGARCHMETH1: Db2 소스 데이터베이스 보관 로그 위치(로컬 디스크여야 함)
  • UNTIL_TIME: YYYY-MM-DD-HH.MI.SS 형식의 복구 시간입니다.
  • ACT_JOBNAME: 표준 마운트 작업의 작업 이름입니다.
  • Db2 인스턴스에 연결하여 데이터베이스가 복구되고 온라인 상태인지 확인합니다.

      db2 connect to <dbname>
      db2 select db_status FROM SYSIBMADM.SNAPDB
    

    SAP ASE

      /act/custom_apps/sybase/dump/ACT_SYBASE_dumprestore_newTarget.sh
      SYBOSUSER
      SRC_SYBASE_SQLD
      TARGET_DB_USER
      TARGET_DBUSER_PASSWD
      ACT_NAME
      TARGET_MNT_PNT
      SRC_DBNAME
      UNTIL_TIME
      BEGIN_TIME
      LOG_BKP_MNTPT
      SRC_PAGE_SIZE
    

    SAP ASE 인스턴스에 연결하고 데이터베이스가 복구되어 온라인 상태인지 확인합니다.

        isql -U<username> -P<password> -S<SAP ASE server name>
        sp_helpdb
        go
    

    SAP IQ

      /act/custom_apps/sybase/dump/ACT_SYBASE_dumprestore_newTarget.sh
      OSUSER
      TARGET_MNT
      SRC_DB_DBA_USER
      SRC_DB_DBA_PWD
      SYBIQ_HOME
      VERSION
      ACT_NAME
      CATALOG_DB_FILE
      LOG_BKP_MNTPT
    

    IQ 데이터베이스에 연결하고 데이터베이스가 복구되고 온라인 상태인지 확인합니다.

        dbisql -c "uid=<username>;pwd=<password>;eng=<engine name>;dbn=<database name>;" -nogui
    

    SAP MaxDB

      /act/custom_apps/maxdb/dump/ACT_Maxdb_dumpRestore_newTarget.conf
      OSUSER
      SRC_DBSID
      TARGET_DB_USER
      TARGET_DBUSER_PASSWD
      TARGET_SERVER_NAME
      DUMPBKPLOC
      DBADMIN_PWD
      UNTIL_TIME
      LOG_MNT_PNT
      DATA_MNT_PNT
      JobID
      MANIFEST_FILE_LOC
      LOG_BKP_MNTPT
      BEGIN_TIME
      SRC_DB_VERSION
    

    다음 명령어를 실행하여 이러한 값을 가져올 수 있습니다.

    • DUMPBKPLOC:

      df -h | grep <DUMPBKPLOC> | awk '{print $NF}'
      cat /var/act/log/UDSAgent.log | grep -w <DUMPBKPLOC> | tail -1 | cut -d']' -f2 | cut -d' ' -f2
      
    • JobID:

      cat /var/act/log/UDSAgent.log | grep <JOBID> | awk -F"disk at " '{print $2}'
      
    • MANIFEST_FILE_LOC:

      cat /var/act/log/UDSAgent.log | grep -i "Manifest_File_" | awk -F"disk at " '{print $2}'
      
    • LOG_BKP_MNTPT:

      df -h | grep "_archivelog" | awk '{print $NF}'
      
    • BEGIN_TIME:

      cat /var/act/log/UDSAgent.log | grep "BEGIN_TIME" | awk -F"BEGIN_TIME=" '{ print $2 }' | cut -d' ' -f1-2 | cut -d'"' -f2
      
    • SRC_DB_VERSION:

      dbmcli -d <SRC_DBSID> dbm_version | grep "VERSION" | awk -F"= " '{print $2}'
      

    MaxDB 인스턴스에 연결하고 데이터베이스가 복구되어 온라인 상태인지 확인합니다.

        dbmcli -d <TARGET_SERVER_NAME> -u
        <TARGET_DB_USER>,<TARGET_DBUSER_PASSWD>
        db_state