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データベースを構築するアプリケーション所有者。
解決策 のテストおよび検証環境
この解決策のテストと検証は、最終的な導入環境とは一致しない可能性があるラボ環境で実行しました。を参照してください 導入にあたって考慮すべき主な要因 を参照してください。
アーキテクチャ
ハードウェアおよびソフトウェアコンポーネント
* ハードウェア * |
||
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
導入には、次の前提条件が必要です。
-
ここでは、NetApp ASAストレージアレイが設置および設定されていることを前提としています。これには、iSCSIブロードキャストドメイン、両方のコントローラノード上のLACPインターフェイスグループa0a、両方のコントローラノード上のiSCSI VLANポート(a0a-<iscsi-a-vlan-id>、a0a-<iscsi-b-vlan-id>)が含まれます。ヘルプが必要な場合の詳細な手順については、次のリンクを参照してください。 "詳細ガイド- ASA A400"
-
最新バージョンの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
。 -
iSCSI用のNetApp Oracle Deployment Automation Toolkitのコピーをクローニングします。
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_deploy_iscsi.git
-
NetApp SnapCenter UIツールを最新バージョンで実行するようにWindowsサーバをプロビジョニングします。詳細については、次のリンクを参照してください。 "SnapCenter サーバをインストールします"
-
ベアメタルまたは仮想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インストールファイルをステージングするための十分なスペースが確保されていることを確認してください。 -
次のビデオをご覧ください。
iSCSIを使用したNetApp ASAへのOracle導入の簡易化と自動化
自動化パラメータファイル
Details
Ansible Playbookは、事前定義されたパラメータを使用してデータベースのインストールと設定のタスクを実行します。このOracle自動化解決策では、プレイブックを実行する前にユーザ入力が必要な3つのユーザ定義パラメータファイルがあります。
-
Hosts -自動化プレイブックの実行対象となるターゲットを定義します。
-
vars/vars.yml -すべてのターゲットに適用される変数を定義するグローバル変数ファイル。
-
host_vars/host_name.yml -ローカルターゲットにのみ適用される変数を定義するローカル変数ファイル。今回のユースケースでは、これらがOracle DBサーバです。
これらのユーザー定義変数ファイルに加えて、必要でない限り変更を必要としないデフォルトパラメータを含むデフォルトの変数ファイルがいくつかあります。次のセクションでは、ユーザー定義の変数ファイルの設定方法について説明します。
パラメータファイルの設定
Details
-
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
-
グローバル
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
-
ローカル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回の組み合わせで実行します。
ansible-playbook -i hosts 0-all_playbook.yml -u admin -e @vars/vars.yml
-
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
-
タグを指定して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
-
環境を元に戻す
ansible-playbook -i hosts 5-destroy.yml -u admin -e @vars/vars.yml
実行後の検証
Details
Playbookの実行後、Oracle DBサーバにOracleユーザとしてログインし、Oracleグリッドインフラとデータベースが正常に作成されたことを確認します。次に、ホストora_01でのOracleデータベース検証の例を示します。
-
作成したグリッドインフラとリソースを検証します。
[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
州内の詳細。これは、リスナーとの手動および動的なデータベース登録の競合が原因で発生するため、無視しても問題ありません。 -
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>
-
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.
SnapCenterによるOracleのバックアップ、リストア、クローニング
Details
TR-4979を参照 "ゲストマウント型FSx ONTAPにより、VMware Cloud on AWS上のシンプルで自己管理型のOracleを実現" セクション。 Oracle backup, restore, and clone with SnapCenter
SnapCenterのセットアップと、データベースのバックアップ、リストア、クローニングのワークフローの実行の詳細については、を参照してください。
追加情報の参照先
このドキュメントに記載されている情報の詳細については、以下のドキュメントや Web サイトを参照してください。
-
NetApp ASA:オールフラッシュSANアレイ
-
新規データベースをインストールしたスタンドアロンサーバー用のOracle Grid Infrastructureのインストール
-
応答ファイルを使用したOracleデータベースのインストールと設定
-
ONTAPでRed Hat Enterprise Linux 8.2を使用する