Oracle® Solaris 11.2 カーネルのチューンアップ・リファレンスマニュアル

印刷ビューの終了

更新: 2014 年 12 月
 
 

Oracle データベース用の ZFS のチューニング

ZFS は単一インスタンスモードのすべての Oracle データベースバージョンについて推奨されます。ZFS は、Oracle RAC データベースが NFS 共有ファイルシステムとして使用可能な場合、これと一緒に使用できます。

ZFS を Oracle データベース用にチューニングすることについての次の推奨事項を検討してください:

  • 最新の Oracle Solaris リリースを実行中であることを確認します

    Oracle Solaris 10 9/10 リリースを最低限の開始点として、最新の Oracle Solaris 10 または Oracle Solaris 11 リリースを起動します。

  • 必要な場合、ZFS ストレージプール用の LUN を作成します

    使用しているストレージアレイ用ツールを使用して、ZFS ストレージプールに提供される LUN を作成します。または、ミラー化された ZFS ストレージプール用にディスク全体を使用することを検討します。詳細は、Oracle Solaris 11.2 での ZFS ファイルシステムの管理 の第 3 章Oracle Solaris ZFS ストレージプールの管理を参照してください。

  • 表、索引、取り消し、および一時データ用のデータファイルのストレージプールを作成します

    より高いレベルのデータ冗長性を提供するために、ミラー化されたストレージプールの作成を検討してください。例:

    # zpool status dbpool
    pool: dbpool
    state: ONLINE
    scan: none requested
    config:
    
    NAME                     STATE     READ WRITE CKSUM
    dbpool                   ONLINE       0     0     0
    mirror-0                 ONLINE       0     0     0
    c0t5000C500335F95E3d0    ONLINE       0     0     0
    c0t5000C500335F907Fd0    ONLINE       0     0     0
    mirror-1                 ONLINE       0     0     0
    c0t5000C500335BD117d0    ONLINE       0     0     0
    c0t5000C500335DC60Fd0    ONLINE       0     0     0
    
    errors: No known data errors

    多くのコミットを伴う一般的な OLTP データベースなど、再実行ログアクティビティーが多いデータベースの場合、別個のログデバイス用に別個の LUN を使用します。

  • archivelog 用のストレージプールを作成します

    使用可能な場合は、システムの内部ディスクがこのタイプの負荷を処理できます。archivelog ファイルシステムは dbpool 内のファイルシステムとすることもできます。

    # zpool create archivepool c0t5000C500335E106Bd0
  • ZFS ファイルシステムを作成し、次のガイドラインを使用して特定のファイルシステムプロパティーを設定します

    次のレコードサイズを使用して、データベースコンポーネントを redo、archive、undo、および temp するための別のファイルシステムを作成します。

    • Oracle Solaris 11 およびそれ以前のリリース - 128K

    • Oracle Solaris 11.1 およびそれ以降のリリース - 1M

    一般的な規則は、Oracle データファイルを含むファイルシステムについて、ファイルシステムの recordsize = db_block_size を設定します。表データおよび索引コンポーネントについては、8K バイトのレコードサイズを持つファイルシステムを作成します。また、primarycache プロパティーを使用して、データベースファイルシステムに対するメタデータキャッシュのヒントを提供することも検討してください。ZFS ファイルシステムプロパティーの詳細については、Oracle Solaris 11.2 での ZFS ファイルシステムの管理 のZFS のプロパティーの概要を参照してください。

    • 8K バイトの recordsize を使用して、表データファイルおよび索引データファイル用のファイルシステムを作成します。primarycache のデフォルト値を使用します。

      # zfs create -o recordsize=8k -o mountpoint=/my_db_path/index dbpool/index
      # zfs set logbias=throughput dbpool/index
      # zfs get primarycache,recordsize,logbias dbpool/index
      NAME            PROPERTY      VALUE         SOURCE
      dbpool/index    primarycache  all           default
      dbpool/index    recordsize    8K            local
      dbpool/index    logbias       throughput    local
      
    • 一時表スペースおよび undo 表スペース用のファイルシステムを作成します。

      Oracle Solaris 11 以前のリリースでは、recordsize および primarycache のデフォルト値を使用します。

      # zfs create -o mountpoint=/my_db_path/temp dbpool/temp
      # zfs set logbias=throughput dbpool/temp
      # zfs create -o mountpoint=/my_db_path/undo dbpool/undo
      # zfs set logbias=throughput dbpool/undo
      

      Oracle Solaris 11.1 以降のリリースでは、次の recordsize およびデフォルトの primarycache 値を使用します。

      # zfs create -o recordsize=1m -o mountpoint=/my_db_path/temp dbpool/temp
      # zfs set logbias=throughput dbpool/temp
      # zfs create -o recordsize=1m -o mountpoint=/my_db_path/undo dbpool/undo
      # zfs set logbias=throughput dbpool/undo
      
    • 別個のログデバイスを使用して、再実行ログ用のストレージプールを作成します。多くのコミットを伴う一般的な OLTP データベースなど、再実行ログアクティビティーが多いデータベースの場合、別個のログデバイス LUN を使用します。

      ディスクを 2 つのスライスにパーティション分割し、64M バイト から 150M バイトの範囲の小さいスライス s0 を、別個のログデバイス用にします。s1 スライスには、再実行ログ用の残りのディスク容量が入ります。

      # zpool create redopool c0t50015179594B6F11d0s1 log c0t50015179594B6F11d0s0
      # zpool status redopool
      pool: redopool
      state: ONLINE
      scan: none requested
      config:
      
      NAME                       STATE     READ WRITE CKSUM
      redopool                   ONLINE       0     0     0
      c0t50015179594B6F11d0s1    ONLINE       0     0     0
      logs
      c0t50015179594B6F11d0s0    ONLINE       0     0     0
      
      errors: No known data errors
    • 再実行プール内に再実行ログ用のファイルシステムを作成します。

      Oracle Solaris 11 以前のリリースでは、recordsize および primarycache のデフォルトのファイルシステム値を使用します。

      # zfs create -o mountpoint=/my_db_path/redo redopool/redo
      # zfs set logbias=latency redopool/redo

      Solaris 11.1 以降のリリースでは、recordsize およびデフォルトの primarycache 値を使用します。

      # zfs create -o recordsize=1m -o mountpoint=/my_db_path/redo redopool/redo
      # zfs set logbias=latency redopool/redo
      
    • アーカイブプール内にアーカイブログファイル用のファイルシステムを作成します。

      Oracle Solaris 11 以前のリリースでは、recordsize のデフォルト値を使用して圧縮を有効化し、primarycachemetadata に設定します。

      # zfs create -o compression=on -o primarycache=metadata -o mountpoint=
      /my_db_admin_path/archive archivepool/archive
      # zfs get primarycache,recordsize,compressratio,compression,available,
      used,quota archivepool/archive
      NAME                 PROPERTY       VALUE         SOURCE
      archivepool/archive  primarycache   metadata      local
      archivepool/archive  recordsize     128K          default
      archivepool/archive  compressratio  1.32x         -
      archivepool/archive  compression    on            local
      archivepool/archive  available      40.0G         -
      archivepool/archive  used           10.0G         -
      archivepool/archive  quota          50G           local

      Solaris 11.1 以降のリリースでは、圧縮を有効化し、primarycache を metadata に設定して、次の recordsize 値を使用します。

      # zfs create -o compression=on –o recordsize=1M \
              -o mountpoint=/my_db_admin_path/archive archivepool/archive
      # zfs get primarycache,recordsize,compressratio,compression,\
              available,used,quota archivepool/archive
      NAME                 PROPERTY       VALUE        SOURCE
      archivepool/archive  primarycache   all          local
      archivepool/archive  recordsize     1M           local
      archivepool/archive  compressratio  1.32x        -
      archivepool/archive  compression    on           local
      archivepool/archive  available      40.0G        -
      archivepool/archive  used           10.0G        - 
      archivepool/archive  quota          50G          local 
      
  • データベースファイルシステムが稼働するのに十分なディスク領域が確保されるように割り当て量を設定し、データベースファイルシステムのスナップショットをとることを検討します。また、ダミーファイルシステム上に予約領域を設定して、プールのパフォーマンスを維持するため 10 - 20% のプールスペースを予約します。

    # zfs set reservation=20gb dbpool/freespace
  • ストレージアレイとメモリーリソースのチューニングに関する追加の情報については、http://www.oracle.com/technetwork/server-storage/solaris/config-solaris-zfs-wp-167894.pdf にあるホワイトペーパーを参照してください。

  • 追加の Oracle データベース構成の推奨事項