5.20.2.2 管理ドメインとそのユーザー・ドメインのリカバリ(リリース12.2.1.1.0以降)

重大な障害が発生して管理ドメインが損傷した場合や、サーバー・ハードウェアを新しいハードウェアに交換した場合は、スナップショット・ベースのバックアップから管理ドメインをリカバリできます。

このリカバリ方法を使用する場合は、「スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップ」のステップを完了していることが前提になります。

  1. NFSサーバーを準備して、バックアップ・アーカイブmybackup.tar.bz2をホストします。

    IPアドレスを使用して、NFSサーバーにアクセスできる必要があります。たとえば、IPアドレスnfs_ipを使用するNFSサーバーで/exportディレクトリがNFSマウントからエクスポートされる場合は、/exportディレクトリにmybackup.tar.bz2ファイルを置きます

  2. diagnostics.isoファイルを使用して、リカバリ・ターゲット・システムを再起動します。
    Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。
  3. 診断シェルにrootユーザーとしてログインします。
    プロンプトが表示されたら、診断シェルに入ります。

    次に例を示します:

    Choose from following by typing letter in '()':
    (e)nter interactive diagnostics shell. Must use credentials 
    from Oracle support to login (reboot or power cycle to exit
    the shell),
    (r)estore system from NFS backup archive, 
    Type e to enter the diagnostics shell and log in as the root user.
    プロンプトが表示されたら、rootユーザーとしてシステムにログインします。rootユーザーのパスワードの入力を求められ、それが不明である場合は、Oracleサポート・サービスに連絡してください。
  4. 必要に応じて、/opt/MegaRAID/storcli/storcli64 (またはOracle Exadata System Software 19cより前のリリースの場合は/opt/MegaRAID/MegaCli/MegaCli64)を使用して、ディスク・コントローラを構成してディスクを設定します。
  5. 障害の発生後に論理ボリューム、ボリューム・グループおよび物理ボリュームが存在する場合は、それらを削除します。
    # lvm vgremove VGExaDb --force
    # lvm pvremove /dev/sda2 --force
  6. 既存のパーティションを削除し、ドライブをクリーン・アップします。
    # parted
    GNU Parted 2.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) rm 1 
    [12064.253824] sda: sda2
    (parted) rm 2 
    [12070.579094] sda: 
    (parted) q
    
    # dd if=/dev/zero of=/dev/sda bs=64M count=2
  7. 2つのパーティションを/dev/sdaに作成します。
    1. ディスク/dev/sdaの終了セクターを実行中のdom0から取得し、変数に保存します:
      # end_sector_logical=$(parted -s /dev/sda unit s print|perl -ne '/^Disk\s+\S+:\s+(\d+)s/ and print $1')
      # end_sector=$( expr $end_sector_logical - 34 )
      

      次のコマンドの開始および終了セクターの値は、既存の管理ドメインから取得されたものです。これらの値は時間とともに変化することがあるため、次のコマンドを使用して、これらの値を既存の管理ドメインから確認することをお薦めします:

      # parted -s /dev/sda unit S print
    2. ブート・パーティション/dev/sda1を作成します。
      # parted -s /dev/sda mklabel gpt mkpart primary 64s 1048639s set 1 boot on
    3. LVMを保持するパーティション/dev/sda2を作成します。
      # parted -s /dev/sda mkpart primary 1048640s 3509759966s set 2 lvm on
  8. /sbin/lvmコマンドを使用して論理ボリュームを再作成し、mkfsを使用してファイル・システムを作成します。
    1. 物理ボリュームおよびボリューム・グループを作成します。
      # lvm pvcreate /dev/sda2
      # lvm vgcreate VGExaDb /dev/sda2
      
    2. / (ルート)ディレクトリを含むファイル・システムの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSys3 -L30G VGExaDb
      # mkfs -t ext4 –b 4096 /dev/VGExaDb/LVDbSys3
      # e2label /dev/VGExaDb/LVDbSys3 DBSYSOVS
      
    3. スワップ・ディレクトリの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSwap1 -L24G VGExaDb
      # mkswap -L SWAP /dev/VGExaDb/LVDbSwap1
      
    4. バックアップ・パーティションの論理ボリュームを作成して、その上部にファイル・システムを構築します。
      # lvm lvcreate -n LVDbSys2 -L30G VGExaDb
      # mkfs -t ext4 –b 4096 /dev/VGExaDb/LVDbSys2
    5. 予約パーティション用の論理ボリュームを作成します。
      # lvm lvcreate -n LVDoNotRemoveOrUse –L1G VGExaDb

      ノート:

      この論理ボリュームにファイル・システムを作成しないでください。
    6. ゲスト記憶域リポジトリに論理ボリュームを作成します。
      # lvm lvcreate -l 100%FREE -n LVDbExaVMImages VGExaDb
      
    7. /dev/sda1パーティションにファイル・システムを作成し、ラベルを付けます。

      次のmkfs.ext3コマンドで、inodeサイズを128に設定するには-I 128オプションが必要です。

      # mkfs.ext3 -I 128 /dev/sda1
      # tune2fs -c 0 -i 0 /dev/sda1
      # e2label /dev/sda1 BOOT
      
  9. すべてのパーティションのマウント・ポイントを作成して、各パーティションをマウントします。

    たとえば、/mntが最上位ディレクトリとして使用されると、マウントされるパーティションのリストは次のようになります。

    • /dev/VGExaDb/LVDbSys3 (/mnt上)

    • /dev/sda1 (/mnt/boot上)

    次の例では、ルート・ファイル・システムをマウントし、2つのマウント・ポイントを作成します。

    # mount /dev/VGExaDb/LVDbSys3 /mnt -t ext4
    # mkdir /mnt/boot
    # mount /dev/sda1 /mnt/boot -t ext3
    
  10. eth0でネットワークを起動し、ホストのIPアドレスおよびネットマスクを割り当てます。
    # ifconfig eth0 ip_address_for_eth0 netmask netmask_for_eth0 up
    # route add -net 0.0.0.0 netmask 0.0.0.0 gw gateway_ip_address
    
  11. バックアップを保持するNFSサーバーをマウントします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  12. スナップショット・ベースのバックアップを使用した管理ドメインdom0のバックアップで作成したバックアップから、ルート・ディレクトリ(/)とブート・ファイル・システムをリストアします。
    # tar -pjxvf /root/mnt/backup-of-root-and-boot.tar -C /mnt
  13. リストアした/dev/sda1パーティションをアンマウントし、/bootに再マウントします。
    # umount /mnt/boot
    # mkdir -p /boot
    # mount /dev/sda1 /boot -t ext3
    
  14. 次のコマンドを使用して、grubブート・ローダーを設定します。
    # grub --device-map=/boot/grub/device.map << DOM0_GRUB_INSTALL
    root (hd0,0)
    setup (hd0)
    quit
    DOM0_GRUB_INSTALL
    
  15. /bootパーティションをアンマウントします。
    # umount /boot
  16. diagnostics.isoファイルを切り離します。

    ILOM Webインタフェースを使用して「Storage Devices」ダイアログに移動し、「Disconnect」をクリックします。

    「Storage Devices」ダイアログは、以前にdiagnostics.isoイメージを接続するために使用したインタフェースです。Oracle Exadata System Softwareユーザーズ・ガイド診断ISOファイルを使用したサーバーの起動を参照してください。

  17. リストアした/etc/fstabファイルを確認し、/EXAVMIMAGESへの参照をコメント・アウトします。
    # cd /mnt/etc

    /EXAVMIMAGESを参照する行をすべてコメント・アウトします。

  18. システムを再起動します。
    # shutdown -r now

    これで、管理ドメイン(dom0)のリストア手順は完了です。

  19. 必要であれば、エイス・ラックに変換します。

    Oracle Exadataエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。

  20. サーバーが再起動されたら、LVDbExaVMImages論理ボリュームにOCFS2ファイル・システムを構築します。
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/VGExaDb/LVDbExaVMImages --force
  21. OCFS2パーティションを/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/VGExaDb/LVDbExaVMImages /EXAVMIMAGES
  22. /etc/fstabで、前にコメント・アウトした/EXAVMIMAGESおよび/dev/mapper/VGExaDb-LVDbExaVMImagesへの参照を非コメント化します。
  23. 記憶域リポジトリ(/EXAVMIMAGES)バックアップを保持するバックアップNFSサーバーをマウントし、/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /root/mnt
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /root/mnt
    
  24. /EXAVMIMAGESファイル・システムをリストアします。

    すべてのユーザー・ドメインをリストアするには、次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES

    単一のユーザー・ドメインをバックアップからリストアするには、かわりに次のコマンドを使用します。

    # tar -Spxvf /root/mnt/backup-of-exavmimages.tar -C /EXAVMIMAGES EXAVMIMAGES/<user-domain-name-to-be-restored>
  25. 各ユーザー・ドメインを起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg

この時点で、すべてのユーザー・ドメインがOracle Grid InfrastructureOracle Databaseインスタンスとともに稼働します。