5.20.2.3 管理ドメインとそのユーザー・ドメインのリカバリ(リリース18.1およびX7以降)

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

  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/sda3 --force
  6. 既存のパーティションを削除し、すべてのパーティションが削除されたことを確認します。
    # parted
    GNU Parted 2.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print 
    Model: AVAGO MR9361-16i (scsi)
    Disk /dev/sda: 4193GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name     Flags
     1      32.8kB  537MB   537MB   ext4         primary  boot
     2      537MB   805MB   268MB   fat32        primary  boot
     3      805MB   4193GB  4192GB               primary  lvm
    
    (parted) rm 1
    [ 1730.498593]  sda: sda2 sda3 
    (parted) rm 2 
    [ 1736.203794]  sda: sda3
    
    (parted) rm 3 
    [ 1738.546845]  sda:
    (parted) print
     Model: AVAGO MR9361-16i (scsi)
    Disk /dev/sda: 4193GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start  End  Size  File system  Name  Flags
    
    (parted) q 
    Information: You may need to update /etc/fstab.
  7. 3つのパーティションを/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 )
      # echo $end_sector

      次のコマンドの開始および終了セクターの値は、既存の管理ドメインから取得されたものです。これらの値は時間とともに変化することがあるため、これらの値を既存のdom0から確認することをお薦めします。たとえば、8台のハード・ディスク・ドライブを持つOracle Exadata X7-2データベース・サーバーの場合は、次のように表示される場合があります:

      # parted -s /dev/sda unit s print
      Model: AVAGO MR9361-16i (scsi)
      Disk /dev/sda: 8189440000s
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      
      Number  Start     End          Size         File system  Name     Flags
       1      64s       1048639s     1048576s     ext4         primary  boot
       2      1048640s  1572927s     524288s      fat32        primary  boot
       3      1572928s  8189439966s  8187867039s               primary  lvm
      

      ノート:

      次のサブステップのs (セクター)値は、8個のハード・ディスク・ドライブを持つシステムに基づいています。4つのハード・ディスク・ドライブがある場合は、実行中のノードの管理ドメインからパーティション表を表示し、それに応じてセクター値を調整する必要があります。
    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 fat32 1048640s 1572927s set 2 boot on
    4. LVMを保持するパーティション/dev/sda3を作成します。
      # parted -s /dev/sda mkpart primary 1572928s 8189439966s set 3 lvm on
  8. /sbin/lvmコマンドを使用して論理ボリュームを再作成し、mkfsを使用してファイル・システムを作成します。
    1. 物理ボリュームおよびボリューム・グループを作成します。
      # lvm pvcreate /dev/sda3
      # lvm vgcreate VGExaDb /dev/sda3
      
    2. / (ルート)ディレクトリを含むファイル・システムの論理ボリュームを作成して、ラベルを付けます。
      # lvm lvcreate -n LVDbSys3 -L30G VGExaDb
      # mkfs -t ext4 /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 /dev/VGExaDb/LVDbSys2
    5. スナップショットの作成に必要な予約パーティション用の論理ボリュームを作成します。
      # lvm lvcreate -n LVDoNotRemoveOrUse –L 1G VGExaDb

      ノート:

      この論理ボリュームにファイル・システムを作成しないでください。
    6. ゲスト記憶域リポジトリに論理ボリュームを作成します。
      # lvm lvcreate -l 100%FREE -n LVDbExaVMImages VGExaDb
      
    7. /dev/sda1パーティションにファイル・システムを作成し、ラベルを付けます。
      # mkfs.ext4 /dev/sda1
      # e2label /dev/sda1 BOOT
      # tune2fs -l /dev/sda1
    8. /dev/sda2パーティションにファイル・システムを作成し、ラベルを付けます。
      # mkfs.vfat -v -c -F 32 -s 2 /dev/sda2
      # dosfslabel /dev/sda2 ESP
  9. すべてのパーティションのマウント・ポイントを作成して、各パーティションをマウントします。

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

    • /dev/VGExaDb/LVDbSys3 (/mnt上)
    • /dev/sda1 (/mnt/boot上)
    • /dev/sda2 (/mnt/boot/efi上)

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

    # mount /dev/VGExaDb/LVDbSys3 /mnt -t ext4
    # mkdir /mnt/boot
    # mount /dev/sda1 /mnt/boot -t ext4
    # mkdir /mnt/boot/efi
    # mount /dev/sda2 /mnt/boot/efi -t vfat
    
  10. eth0でネットワークを起動し、(DHCPを使用していない場合は)ホストのIPアドレスおよびネットマスクを割り当てます。

    DHCPを使用している場合、ホストのIPアドレスを手動で構成する必要はありません。

    # ip address add ip_address_for_eth0/netmask_for_eth0 dev eth0
    # ip link set up eth0
    # ip route add default via gateway_ip_address dev eth0
  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. efibootmgrコマンドを使用して、起動デバイスを設定します。
    1. Oracle Linuxの起動デバイスを無効にして削除します。エントリExadataLinux_1が表示された場合は、このエントリを削除して再作成します。

      次に例を示します:

      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 000F,0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000D,000E
      Boot0000* ExadataLinux_1
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000D* Oracle Linux
      Boot000E* UEFI OS
      Boot000F* USB:SUN
      

      この例では、Oracle Linux (Boot00D)およびExadataLinux_1 (Boot000)を無効にして削除します。次のようなコマンドを使用して、起動デバイスを無効にして削除します。

      「Oracle Linux」の無効化:
      # efibootmgr -b 000D -A
      「Oracle Linux」の削除:
      # efibootmgr -b 000D -B
      古い「ExadataLinux_1」の無効化:
      # efibootmgr -b 0000 -A
      古い「ExadataLinux_1」の削除:
      # efibootmgr -b 0000 -B

    2. ExadataLinux_1の起動エントリを再作成してから、起動順序エントリを表示します。
      # efibootmgr -c -d /dev/sda -p 2 -l '\EFI\XEN\XEN.EFI' -L 
      'ExadataLinux_1'
      
      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000E* UEFI OS
      Boot000F* USB:SUN
      Boot0000* ExadataLinux_1

      efibootmgrコマンドの出力で、ExadataLinux_1の起動順序番号をノートにとって、次のコマンドでその値を使用します。

      # efibootmgr -b (entry number) -A
      # efibootmgr -b (entry number) -a

      たとえば、ステップ13.aで示した前の出力では、ExadataLinux_1(Boot000)として表示されました。したがって、次のコマンドを使用します。

      # efibootmgr -b 0000 -A
      # efibootmgr -b 0000 -a
    3. 正しい起動順序を設定します。
      最初の起動デバイスとしてExadataLinux_1を設定します。残りのデバイスは、最後である必要があるUSB:SUNを除き、同じ起動順序のままである必要があります。
      # efibootmgr -o
      0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      

      起動順序は次のようになります。

      # efibootmgr
      BootCurrent: 000F
      Timeout: 1 seconds
      BootOrder: 0000,0001,0002,0003,0004,0005,0007,0008,0009,000A,000E,000F
      Boot0000* ExadataLinux_1
      Boot0001* NET0:PXE IP4 Intel(R) I210 Gigabit  Network Connection
      Boot0002* NET1:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0003* NET2:PXE IP4 Oracle Dual Port 10GBase-T Ethernet Controller
      Boot0004* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0005* PCIE1:PXE IP4 Oracle Dual Port 25Gb Ethernet Adapter
      Boot0007* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0008* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot0009* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000A* PCIE3:PXE IP4 Oracle Quad Port 10GBase-T Adapter
      Boot000E* UEFI OS
      Boot000F* USB:SUN
    4. ubiosconfigコマンドを使用して、起動順序を確認します。
      # ubiosconfig export all -x /tmp/ubiosconfig.xml
      ExadataLinux_1のエントリがboot_orderの最初の子要素であることを確認します。
       <boot_order>
          <boot_device>
            <description>ExadataLinux_1</description>  
            <instance>1</instance>
          </boot_device>
          <boot_device>
            <description>NET0:PXE IP4 Intel(R) I210 Gigabit  Network
      Connection</description>
            <instance>1</instance>
          </boot_device>
      ...
  14. リストアした/etc/fstabファイルを確認し、/EXAVMIMAGESへの参照をコメント・アウトします。
    # cd /mnt/etc

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

  15. diagnostics.isoファイルを切り離します。

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

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

  16. リストアされた/dev/sda1パーティションをアンマウントし、/dev/sda1/bootに再マウントできるようにします。
    # umount /mnt/boot/efi
    # umount /mnt/boot
    # umount /mnt
    # umount /root/mnt
  17. システムを再起動します。
    # shutdown -r now

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

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

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

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

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