Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

TR-4983:『Simplified、Automated Oracle Deployment on NetApp ASA with iSCSI』

共同作成者

ネットアップ、Niyaz Mohamed、Allen Cao氏

この解決策では、プライマリデータベースストレージとしてNetApp ASAアレイにOracleの導入と保護を自動化するための概要と詳細を説明します。プライマリデータベースストレージはiSCSIプロトコルで、Oracleデータベースはスタンドアロンの再起動で設定されます。ASMはボリュームマネージャとして使用します。

目的

NetApp ASAシステムは、SANインフラに最新のソリューションを提供します。大規模環境を簡易化し、データベースなどのビジネスクリティカルなアプリケーションを高速化し、データの可用性を常に維持(99.9999%のアップタイム)し、TCOと二酸化炭素排出量を削減できます。NetApp ASAシステムには、パフォーマンス要件がきわめて高いアプリケーション向けに設計されたAシリーズモデルと、対費用効果の高い大容量環境向けに最適化されたCシリーズモデルがあります。ASA AシリーズとCシリーズのシステムを組み合わせることで、卓越したパフォーマンスが実現し、カスタマーエクスペリエンスの向上と成果達成までの時間の短縮、ビジネスクリティカルなデータの可用性、保護、セキュリティの維持、あらゆるワークロードの実効容量の増加を実現できます。これには、業界で最も効果的な保証が付随しています。

このドキュメントでは、ASAシステムで構築されたSAN環境に、Ansibleによる自動化を使用してOracleデータベースを簡単に導入する方法について説明します。Oracleデータベースは、データアクセス用にiSCSIプロトコルを使用し、ASAストレージアレイでのデータベースディスク管理用にOracle ASMを使用して、スタンドアロンの再起動構成で導入されます。また、NetApp SnapCenter UIツールを使用したOracleデータベースのバックアップ、リストア、およびクローニングに関する情報も提供し、NetApp ASAシステムでのストレージ効率に優れたデータベース処理を実現します。

この解決策 は、次のユースケースに対応します。

  • プライマリデータベースストレージとしてのNetApp ASAシステムへのOracleデータベース導入の自動化

  • NetApp SnapCenterツールを使用したNetApp ASAシステムでのOracleデータベースのバックアップとリストア

  • NetApp SnapCenterツールを使用したNetApp ASAシステムでの開発/テストなどのユースケース向けのOracleデータベースのクローン

対象者

この解決策 は、次のユーザーを対象としています。

  • NetApp ASAシステムにOracleを導入したいと考えているデータベース管理者。

  • データベース解決策アーキテクト。NetApp ASAシステムでOracleワークロードをテストしたいと考えています。

  • NetApp ASAシステムにOracleデータベースを導入して管理したいストレージ管理者。

  • NetApp ASAシステムでOracleデータベースを構築するアプリケーション所有者。

解決策 のテストおよび検証環境

この解決策のテストと検証は、最終的な導入環境とは一致しない可能性があるラボ環境で実行しました。を参照してください 導入にあたって考慮すべき主な要因 を参照してください。

アーキテクチャ

このイメージは、iSCSIおよびASMを使用したNetApp ASAシステムでのOracle導入構成の詳細を示しています。

ハードウェアおよびソフトウェアコンポーネント

* ハードウェア *

NetApp ASA A400

バージョン9.13.1P1

NS224シェルフ×2、NVMe AFFドライブ×48、合計容量69.3TiB

UCSB-B2004-M4

Intel(R)Xeon(R)CPU E5-2690 v4(2.60GHz)

4ノードのVMware ESXiクラスタ

ソフトウェア

Red Hat Linux

RHEL-8.6、4.18.0-372.9.1.el8.x86_64カーネル

テスト用にRedHatサブスクリプションを導入

Windows Serverの場合

2022 Standard、10.0.20348ビルド20348

SnapCenterサアハノホスト

Oracle Grid Infrastructureの略

バージョン19.18

RUパッチp34762026_190000_Linux-x86-64.zipを適用しました

Oracle データベース

バージョン19.18

RUパッチp34765931_190000_Linux-x86-64.zipを適用しました

Oracle OPatchの略

バージョン12.2.0.1.36

最新のパッチp6880880_190000_Linux-x86-64.zip

SnapCenter サーバ

バージョン4.9P1

ワークグループの導入

VMware vSphere ハイパーバイザー

バージョン6.5.0.20000

VMware Tools、バージョン:11365-Linux、12352-Windows

JDKを開く

バージョンjava-1.8.0-openjdk.x86_64

DB VMでのSnapCenterプラグインの要件

ラボ環境でのOracleデータベースの構成

* サーバ *

* データベース *

* DBストレージ*

ORA_01

NTAP1(NTAP1_PDB1、NTAP1_PDB2、NTAP1_PDB3)

ASA A400のiSCSI LUN

ORA_02

NTAP2(NTAP2_PDB1、NTAP2_PDB2、NTAP2_PDB3)

ASA A400のiSCSI LUN

導入にあたって考慮すべき主な要因

  • * Oracleデータベースのストレージレイアウト。*このOracleの自動導入では、デフォルトで4つのデータベースボリュームをプロビジョニングして、Oracleのバイナリ、データ、ログをホストします。次に、データLUNとログLUNから2つのASMディスクグループを作成します。+data ASMディスクグループ内で、各ASA A400クラスタノードの1つのボリュームに2つのデータLUNをプロビジョニングしました。+logs ASMディスクグループ内で、1つのASA A400ノードのログボリュームに2つのLUNを作成します。ONTAPボリューム内に複数のLUNをレイアウトすると、一般的にパフォーマンスが向上します。

  • *複数のDBサーバの導入。*自動化解決策では、1回のAnsibleプレイブック実行でOracleコンテナデータベースを複数のDBサーバに導入できます。DBサーバの数に関係なく、プレイブックの実行は変わりません。複数のDBサーバを導入する場合は、データベースLUNをASA A400のデュアルコントローラに最適に配置するアルゴリズムを使用してPlaybookを構築します。バイナリと奇数のDBサーバのLUNは、コントローラ1のサーバホストインデックスプレースに記録されます。バイナリと偶数のDBサーバのLUNは、コントローラ2のサーバホストインデックスプレースに記録されます。DBデータLUNは2台のコントローラに均等に分散されます。Oracle ASMは、2台のコントローラ上のデータLUNを1つのASMディスクグループに統合して、両方のコントローラの処理能力を最大限に活用します。

  • * iSCSI構成。*データベースVMは、ストレージアクセス用にiSCSIプロトコルを使用してASAストレージに接続します。冗長性を確保するために各コントローラノードでデュアルパスを設定し、マルチパスストレージアクセス用にDBサーバでiSCSIマルチパスを設定する必要があります。パフォーマンスとスループットを最大化するには、ストレージネットワークでジャンボフレームを有効にします。

  • 作成する各Oracle ASMディスクグループに使用するOracle ASM冗長性レベル。 ASA A400では、クラスタディスクレベルでデータ保護のためにRAID DPでストレージが構成されるため、次を使用する必要があります。 `External Redundancy`これは、このオプションでは、Oracle ASMがディスクグループの内容をミラーリングすることを許可しないことを意味します。

  • データベースのバックアップ。 NetAppは、データベースのバックアップ、リストア、クローニングを実行するためのSnapCenterソフトウェアスイートで、使いやすいUIインターフェイスを備えています。NetAppでは、このような管理ツールを実装して、高速(1分未満)のSnapshotバックアップ、高速(数分)のデータベースリストア、データベースクローンを実現することを推奨しています。

解決策 の導入

以降のセクションでは、直接マウントされたデータベースLUNを使用するNetApp ASA A400で、単一ノードのiSCSI経由でDB VMに直接マウントされたOracle 19Cの導入と保護を自動化するための手順を段階的に説明します。Oracle ASMをデータベースボリュームマネージャとして使用して構成を再起動します。

導入の前提条件

Details

導入には、次の前提条件が必要です。

  1. ここでは、NetApp ASAストレージアレイが設置および設定されていることを前提としています。これには、iSCSIブロードキャストドメイン、両方のコントローラノード上のLACPインターフェイスグループa0a、両方のコントローラノード上のiSCSI VLANポート(a0a-<iscsi-a-vlan-id>、a0a-<iscsi-b-vlan-id>)が含まれます。ヘルプが必要な場合の詳細な手順については、次のリンクを参照してください。 "詳細ガイド- ASA A400"

  2. 最新バージョンのAnsibleとGitがインストールされたAnsibleコントローラノードとしてLinux VMをプロビジョニングします。詳細については、次のリンクを参照してください。 "NetApp解決策 自動化の導入" セクション- Setup the Ansible Control Node for CLI deployments on RHEL / CentOS または Setup the Ansible Control Node for CLI deployments on Ubuntu / Debian

  3. iSCSI用のNetApp Oracle Deployment Automation Toolkitのコピーをクローニングします。

    git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_deploy_iscsi.git
  4. NetApp SnapCenter UIツールを最新バージョンで実行するようにWindowsサーバをプロビジョニングします。詳細については、次のリンクを参照してください。 "SnapCenter サーバをインストールします"

  5. ベアメタルまたは仮想VMのRHEL Oracle DBサーバを2台構築します。パスワード権限なしでsudoを使用してDBサーバに管理者ユーザを作成し、AnsibleホストとOracle DBサーバホストの間でSSHの秘密鍵/公開鍵認証を有効にします。Oracle 19CインストールファイルをDBサーバ/tmp/archiveディレクトリにステージングします。

    installer_archives:
      - "LINUX.X64_193000_grid_home.zip"
      - "p34762026_190000_Linux-x86-64.zip"
      - "LINUX.X64_193000_db_home.zip"
      - "p34765931_190000_Linux-x86-64.zip"
      - "p6880880_190000_Linux-x86-64.zip"
    メモ Oracle VMのルートボリュームに少なくとも50Gが割り当てられており、Oracleインストールファイルをステージングするための十分なスペースが確保されていることを確認してください。
  6. 次のビデオをご覧ください。

    iSCSIを使用したNetApp ASAへのOracle導入の簡易化と自動化

自動化パラメータファイル

Details

Ansible Playbookは、事前定義されたパラメータを使用してデータベースのインストールと設定のタスクを実行します。このOracle自動化解決策では、プレイブックを実行する前にユーザ入力が必要な3つのユーザ定義パラメータファイルがあります。

  • Hosts -自動化プレイブックの実行対象となるターゲットを定義します。

  • vars/vars.yml -すべてのターゲットに適用される変数を定義するグローバル変数ファイル。

  • host_vars/host_name.yml -ローカルターゲットにのみ適用される変数を定義するローカル変数ファイル。今回のユースケースでは、これらがOracle DBサーバです。

これらのユーザー定義変数ファイルに加えて、必要でない限り変更を必要としないデフォルトパラメータを含むデフォルトの変数ファイルがいくつかあります。次のセクションでは、ユーザー定義の変数ファイルの設定方法について説明します。

パラメータファイルの設定

Details
  1. Ansibleターゲット hosts ファイル構成:

    # Enter NetApp ASA controller management IP address
    [ontap]
    172.16.9.32
    
    # Enter Oracle servers names to be deployed one by one, follow by each Oracle server public IP address, and ssh private key of admin user for the server.
    [oracle]
    ora_01 ansible_host=10.61.180.21 ansible_ssh_private_key_file=ora_01.pem
    ora_02 ansible_host=10.61.180.23 ansible_ssh_private_key_file=ora_02.pem
  2. グローバル vars/vars.yml ファイル構成

    #############################################################################################################
    ######                 Oracle 19c deployment global user configurable variables                        ######
    ######                 Consolidate all variables from ONTAP, linux and oracle                          ######
    #############################################################################################################
    
    #############################################################################################################
    ######                 ONTAP env specific config variables                                             ######
    #############################################################################################################
    
    # Enter the supported ONTAP platform: on-prem, aws-fsx.
    ontap_platform: on-prem
    
    # Enter ONTAP cluster management user credentials
    username: "xxxxxxxx"
    password: "xxxxxxxx"
    
    
    ###### on-prem platform specific user defined variables ######
    
    # Enter Oracle SVM iSCSI lif addresses. Each controller configures with dual paths iscsi_a, iscsi_b for redundancy
    ora_iscsi_lif_mgmt:
      - {name: '{{ svm_name }}_mgmt', address: 172.21.253.220, netmask: 255.255.255.0, vlan_name: ora_mgmt, vlan_id: 3509}
    
    ora_iscsi_lifs_node1:
      - {name: '{{ svm_name }}_lif_1a', address: 172.21.234.221, netmask: 255.255.255.0, vlan_name: ora_iscsi_a, vlan_id: 3490}
      - {name: '{{ svm_name }}_lif_1b', address: 172.21.235.221, netmask: 255.255.255.0, vlan_name: ora_iscsi_b, vlan_id: 3491}
    ora_iscsi_lifs_node2:
      - {name: '{{ svm_name }}_lif_2a', address: 172.21.234.223, netmask: 255.255.255.0, vlan_name: ora_iscsi_a, vlan_id: 3490}
      - {name: '{{ svm_name }}_lif_2b', address: 172.21.235.223, netmask: 255.255.255.0, vlan_name: ora_iscsi_b, vlan_id: 3491}
    
    
    #############################################################################################################
    ###                   Linux env specific config variables                                                 ###
    #############################################################################################################
    
    # Enter RHEL subscription to enable repo
    redhat_sub_username: xxxxxxxx
    redhat_sub_password: "xxxxxxxx"
    
    
    #############################################################################################################
    ###                   Oracle DB env specific config variables                                             ###
    #############################################################################################################
    
    # Enter Database domain name
    db_domain: solutions.netapp.com
    
    # Enter initial password for all required Oracle passwords. Change them after installation.
    initial_pwd_all: xxxxxxxx
  3. ローカルDBサーバ host_vars/host_name.yml 構成

    # User configurable Oracle host specific parameters
    
    # Enter container database SID. By default, a container DB is created with 3 PDBs within the CDB
    oracle_sid: NTAP1
    
    # Enter database shared memory size or SGA. CDB is created with SGA at 75% of memory_limit, MB. The grand total of SGA should not exceed 75% available RAM on node.
    memory_limit: 8192

Playbookの実施

Details

自動化ツールキットには、合計6つのプレイブックが用意されています。それぞれが異なるタスクブロックを実行し、さまざまな目的に対応します。

0-all_playbook.yml - execute playbooks from 1-4 in one playbook run.
1-ansible_requirements.yml - set up Ansible controller with required libs and collections.
2-linux_config.yml - execute Linux kernel configuration on Oracle DB servers.
3-ontap_config.yml - configure ONTAP svm/volumes/luns for Oracle database and grant DB server access to luns.
4-oracle_config.yml - install and configure Oracle on DB servers for grid infrastructure and create a container database.
5-destroy.yml - optional to undo the environment to dismantle all.

次のコマンドを使用してプレイブックを実行する方法は3つあります。

  1. すべての導入プレイブックを1回の組み合わせで実行します。

    ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml
  2. 1~4の番号順でプレイブックを1つずつ実行します。

    ansible-playbook -i hosts 1-ansible_requirements.yml -u admin -e @vars/vars.yml
    ansible-playbook -i hosts 2-linux_config.yml -u admin -e @vars/vars.yml
    ansible-playbook -i hosts 3-ontap_config.yml -u admin -e @vars/vars.yml
    ansible-playbook -i hosts 4-oracle_config.yml -u admin -e @vars/vars.yml
  3. タグを指定して0-all_playbook.ymlを実行します。

    ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml -t ansible_requirements
    ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml -t linux_config
    ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml -t ontap_config
    ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml -t oracle_config
  4. 環境を元に戻す

    ansible-playbook -i hosts 5-destroy.yml -u admin -e @vars/vars.yml

実行後の検証

Details

Playbookの実行後、Oracle DBサーバにOracleユーザとしてログインし、Oracleグリッドインフラとデータベースが正常に作成されたことを確認します。次に、ホストora_01でのOracleデータベース検証の例を示します。

  1. 作成したグリッドインフラとリソースを検証します。

    [oracle@ora_01 ~]$ df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    devtmpfs                      7.7G   40K  7.7G   1% /dev
    tmpfs                         7.8G  1.1G  6.7G  15% /dev/shm
    tmpfs                         7.8G  312M  7.5G   4% /run
    tmpfs                         7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/mapper/rhel-root          44G   38G  6.8G  85% /
    /dev/sda1                    1014M  258M  757M  26% /boot
    tmpfs                         1.6G   12K  1.6G   1% /run/user/42
    tmpfs                         1.6G  4.0K  1.6G   1% /run/user/1000
    /dev/mapper/ora_01_biny_01p1   40G   21G   20G  52% /u01
    [oracle@ora_01 ~]$ asm
    [oracle@ora_01 ~]$ crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_01                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_01                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_01                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_01                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_01                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       ora_01                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_01                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_01                   STABLE
    ora.ntap1.db
          1        ONLINE  ONLINE       ora_01                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /NTAP1,STABLE
    --------------------------------------------------------------------------------
    [oracle@ora_01 ~]$
    メモ 無視する Not All Endpoints Registered 州内の詳細。これは、リスナーとの手動および動的なデータベース登録の競合が原因で発生するため、無視しても問題ありません。
  2. ASMフィルタドライバが正常に動作していることを確認します。

    [oracle@ora_01 ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304    327680   318644                0          318644              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304     81920    78880                0           78880              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    AFD:ORA_01_DAT1_01
    AFD:ORA_01_DAT1_03
    AFD:ORA_01_DAT1_05
    AFD:ORA_01_DAT1_07
    AFD:ORA_01_DAT2_02
    AFD:ORA_01_DAT2_04
    AFD:ORA_01_DAT2_06
    AFD:ORA_01_DAT2_08
    AFD:ORA_01_LOGS_01
    AFD:ORA_01_LOGS_02
    ASMCMD> afd_state
    ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ora_01'
    ASMCMD>
  3. Oracle Enterprise Manager Expressにログインして、データベースを検証します。

    このイメージは、Oracle Enterprise Manager Expressのログイン画面を示しています。 このイメージは、Oracle Enterprise Manager Expressのコンテナデータベースビューを提供します。

    Enable additional port from sqlplus for login to individual container database or PDBs.
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 NTAP1_PDB1                     READ WRITE NO
             4 NTAP1_PDB2                     READ WRITE NO
             5 NTAP1_PDB3                     READ WRITE NO
    SQL> alter session set container=NTAP1_PDB1;
    
    Session altered.
    
    SQL> select dbms_xdb_config.gethttpsport() from dual;
    
    DBMS_XDB_CONFIG.GETHTTPSPORT()
    ------------------------------
                                 0
    
    SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5501);
    
    PL/SQL procedure successfully completed.
    
    SQL> select dbms_xdb_config.gethttpsport() from dual;
    
    DBMS_XDB_CONFIG.GETHTTPSPORT()
    ------------------------------
                              5501
    
    login to NTAP1_PDB1 from port 5501.

    この画像は、Oracle Enterprise Manager ExpressのPDBデータベースビューを提供します。

SnapCenterによるOracleのバックアップ、リストア、クローニング

Details

TR-4979を参照 "ゲストマウント型FSx ONTAPにより、VMware Cloud on AWS上のシンプルで自己管理型のOracleを実現" セクション。 Oracle backup, restore, and clone with SnapCenter SnapCenterのセットアップと、データベースのバックアップ、リストア、クローニングのワークフローの実行の詳細については、を参照してください。

追加情報の参照先

このドキュメントに記載されている情報の詳細については、以下のドキュメントや Web サイトを参照してください。