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. root としてデータベース サーバーにログインします。サーバーで、ディレクトリを次のように変更します。

    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