TR-4965:『Oracle Database Deployment and Protection in AWS FSX/EC2 with iSCSI/ASM』
ネットアップ、Niyaz Mohamed、Allen Cao氏
この解決策では、AWS FSx ONTAPストレージおよびEC2コンピューティングインスタンスでのOracleデータベースの導入と保護について、iSCSIプロトコルを使用したOracleデータベースと、ボリュームマネージャとしてASMを使用してスタンドアロンでの再起動で設定されたOracleデータベースの概要と詳細について説明します。
目的
ASM(Automatic Storage Management)は、多くのOracle環境で採用されている一般的なOracleストレージボリュームマネージャです。また、Oracleが推奨するストレージ管理解決策 でもあります。これは'従来のボリューム・マネージャやファイル・システムに代わるものですOracleバージョン11g以降、ASMはデータベースではなくグリッドインフラにパッケージ化されました。そのため、RACを使用しないストレージ管理にOracle ASMを使用するには、Oracleグリッドインフラをスタンドアロンサーバにインストールする必要があります(Oracle Restartとも呼ばれます)。これにより、Oracleデータベースの導入がさらに複雑になります。ただし、名前が示すように、Oracleが再起動モードで導入されている場合、障害が発生したOracleサービスは、グリッドインフラによって、またはホストのリブート後にユーザの介入なしで自動的に再開されます。これにより、ある程度の高可用性またはHA機能が提供されます。
このドキュメントでは、EC2コンピューティングインスタンスを使用するAmazon FSx ONTAPストレージ環境にiSCSIプロトコルとOracle ASMを使用してOracleデータベースを導入する方法を説明します。また、NetApp BlueXPコンソールを通じてNetApp SnapCenter サービスを使用してOracleデータベースをバックアップ、リストア、クローニングし、開発とテストに使用する方法や、AWSパブリッククラウドでストレージ効率に優れたデータベース運用を実現するその他のユースケースについて説明します。
この解決策 は、次のユースケースに対応します。
-
iSCSI / ASMを使用したAmazon FSx ONTAPストレージおよびEC2コンピューティングインスタンスへのOracleデータベース導入
-
iSCSI / ASMを使用して、パブリックAWSクラウドでOracleワークロードをテストおよび検証します
-
AWSに導入されたOracleデータベースの再起動機能のテストと検証
対象読者
この解決策 は、次のユーザーを対象としています。
-
iSCSI / ASMを使用してAWSパブリッククラウドにOracleを導入したいと考えているDBA。
-
AWSパブリッククラウドでOracleワークロードをテストしたいと考えているデータベース解決策 アーキテクト。
-
AWS FSxストレージに導入されたOracleデータベースの導入と管理を希望するストレージ管理者。
-
AWS FSX/EC2でOracleデータベースを立ち上げるアプリケーション所有者。
解決策 のテストおよび検証環境
この解決策 のテストと検証は、最終的な導入環境と一致しないAWS FSXおよびEC2環境で実行しました。詳細については、を参照してください 導入にあたって考慮すべき主な要因。
アーキテクチャ
ハードウェアおよびソフトウェアコンポーネント
* ハードウェア * |
||
FSX ONTAP ストレージ |
AWSで提供されている最新バージョン |
同じVPCとアベイラビリティゾーンに1つのFSx HAクラスタを配置します |
コンピューティングのEC2インスタンス |
t2.xlarge / 4vCPU / 16G |
2つのEC2 T2 xlarge EC2インスタンス(1つはプライマリDBサーバ、もう1つはクローンDBサーバ) |
ソフトウェア |
||
Red Hat Linux |
RHEL-8.6.0_HVM-20220503-x86_64-2- Hourly2-gp2の場合 |
テスト用にRedHatサブスクリプションを導入 |
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 サービス |
バージョン |
V2.3.1.2324 |
導入にあたって考慮すべき主な要因
-
* EC2コンピューティングインスタンス*今回のテストと検証では、OracleデータベースのコンピューティングインスタンスにAWS EC2 T2.xlargeインスタンスタイプを使用しました。本番環境では、データベースワークロード向けに最適化されているため、OracleのコンピューティングインスタンスとしてM5タイプのEC2インスタンスを使用することを推奨します。実際のワークロード要件に基づいて、vCPUの数とRAMの容量に合わせてEC2インスタンスのサイズを適切に設定する必要があります。
-
* FSxストレージHAクラスタのシングルゾーンまたはマルチゾーン導入*今回のテストと検証では、1つのAWSアベイラビリティゾーンにFSx HAクラスタを導入しました。本番環境では、FSX HAペアを2つの異なるアベイラビリティゾーンに導入することを推奨します。FSX HAクラスタは、アクティブ/パッシブファイルシステムのペアで同期ミラーされるHAペアで、ストレージレベルの冗長性を提供するために割り当てられます。マルチゾーン導入により、単一のAWSゾーンで障害が発生した場合の高可用性がさらに向上します。
-
* FSxストレージクラスタのサイジング*Amazon FSx ONTAPストレージファイルシステムは、SSDの最大16万IOPS、最大4GBpsのスループット、最大192TiBの容量を提供します。ただし、プロビジョニングされたIOPS、スループット、およびストレージ制限(最小1、024GiB)については、導入時の実際の要件に基づいてクラスタのサイジングを行うことができます。アプリケーションの可用性に影響を与えることなく、容量をオンザフライで動的に調整できます。
-
* Oracleデータとログのレイアウト*テストと検証では、データ用とログ用にそれぞれ2つのASMディスクグループを導入しました。+DATA ASMディスクグループ内で、データボリュームに4つのLUNをプロビジョニングしました。+logs ASMディスクグループ内で、logsボリュームに2つのLUNをプロビジョニングしました。一般に、Amazon FSx ONTAPボリューム内に複数のLUNをレイアウトすると、パフォーマンスが向上します。
-
* iSCSI構成*EC2インスタンスデータベースサーバは、iSCSIプロトコルを使用してFSxストレージに接続します。EC2インスタンスは通常、単一のネットワークインターフェイスまたはENIを使用して導入されます。単一のNICインターフェイスがiSCSIトラフィックとアプリケーショントラフィックの両方を伝送します。アプリケーションとiSCSIの両方のトラフィックスループット要件を満たす適切なEC2コンピューティングインスタンスを選択するには、Oracle AWRレポートを慎重に分析して、OracleデータベースのI/Oピークスループット要件を測定することが重要です。また、マルチパスが適切に設定されている両方のFSx iSCSIエンドポイントに4つのiSCSI接続を割り当てることを推奨します。
-
*作成する各Oracle ASMディスクグループに使用するOracle ASM冗長性レベル*FSxはすでにFSxクラスタレベルでストレージをミラーリングしているため、External Redundancy(外部冗長性)を使用する必要があります。つまり、このオプションでは、Oracle ASMがディスクグループの内容をミラーリングすることを許可しません。
-
*データベースのバックアップ。*NetAppは、NetApp BlueXP コンソールのUIから使用できる、クラウドでのデータベースのバックアップ、リストア、クローニングを行うためのSaaSバージョンのSnapCenterソフトウェアサービスを提供します。このようなサービスを実装して、高速(1分未満)のスナップショットバックアップ、高速(数分)のデータベースリストア、データベースクローニングを実現することを推奨します。
解決策 の導入
次のセクションでは、導入手順を段階的に説明します。
導入の前提条件
Details
導入には、次の前提条件が必要です。
-
AWSアカウントが設定され、必要なVPCとネットワークセグメントがAWSアカウント内に作成されている。
-
AWS EC2コンソールから、2つのEC2 Linuxインスタンスを導入する必要があります。1つはプライマリOracle DBサーバとして、もう1つはオプションのクローンターゲットDBサーバとして使用します。環境セットアップの詳細については、前のセクションのアーキテクチャ図を参照してください。詳細については、も参照して"Linuxインスタンスのユーザーガイド"ください。
-
AWS EC2コンソールから、Amazon FSx ONTAPストレージHAクラスタを導入してOracleデータベースボリュームをホストします。FSxストレージの導入に慣れていない場合は、ステップバイステップの手順についてドキュメントを参照してください"FSx ONTAPファイルシステムの作成"。
-
手順2と3は、次のTerraform自動化ツールキットを使用して実行できます。このツールキットでは、というEC2インスタンスとという名前のFSxファイルシステム `fsx_01`が作成され `ora_01`ます。実行する前に、指示をよく確認し、環境に合わせて変数を変更してください。
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
|
Oracleインストールファイルをステージングするための十分なスペースを確保するために、EC2インスタンスのルートボリュームに少なくとも50Gが割り当てられていることを確認してください。 |
EC2インスタンスのカーネル設定
Details
前提条件をプロビジョニングした状態で、ec2-userとしてec2インスタンスにログインし、rootユーザにsudoを実行して、Oracleインストール用のLinuxカーネルを設定します。
-
ステージングディレクトリフォルダを作成し
/tmp/archive
、権限を設定し `777`ます。mkdir /tmp/archive chmod 777 /tmp/archive
-
Oracleバイナリインストールファイルおよびその他の必要なrpmファイルをダウンロードして、ディレクトリにステージングし `/tmp/archive`ます。
EC2インスタンスのに記載される次のインストールファイルのリストを参照してください
/tmp/archive
。[ec2-user@ip-172-30-15-58 ~]$ ls -l /tmp/archive total 10537316 -rw-rw-r--. 1 ec2-user ec2-user 19112 Mar 21 15:57 compat-libcap1-1.10-7.el7.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 3059705302 Mar 21 22:01 LINUX.X64_193000_db_home.zip -rw-rw-r-- 1 ec2-user ec2-user 2889184573 Mar 21 21:09 LINUX.X64_193000_grid_home.zip -rw-rw-r--. 1 ec2-user ec2-user 589145 Mar 21 15:56 netapp_linux_unified_host_utilities-7-1.x86_64.rpm -rw-rw-r--. 1 ec2-user ec2-user 31828 Mar 21 15:55 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 2872741741 Mar 21 22:31 p34762026_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 1843577895 Mar 21 22:32 p34765931_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 124347218 Mar 21 22:33 p6880880_190000_Linux-x86-64.zip -rw-r--r-- 1 ec2-user ec2-user 257136 Mar 22 16:25 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
Oracle 19CプレインストールRPMをインストールします。これにより、ほとんどのカーネル設定要件を満たすことができます。
yum install /tmp/archive/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
-
Linux 8で不足しているをダウンロードしてインストールし `compat-libcap1`ます。
yum install /tmp/archive/compat-libcap1-1.10-7.el7.x86_64.rpm
-
ネットアップから、NetApp Host Utilitiesをダウンロードしてインストールします。
yum install /tmp/archive/netapp_linux_unified_host_utilities-7-1.x86_64.rpm
-
をインストールし `policycoreutils-python-utils`ます。EC2インスタンスでは使用できません。
yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
Open JDKバージョン1.8をインストールします。
yum install java-1.8.0-openjdk.x86_64
-
iSCSIイニシエータユーティリティをインストールします。
yum install iscsi-initiator-utils
-
をインストールし `sg3_utils`ます。
yum install sg3_utils
-
をインストールし `device-mapper-multipath`ます。
yum install device-mapper-multipath
-
現在のシステムで透過的なHugepageを無効にします。
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
リブート後に無効にするには、 `transparent_hugepage`に次の行を追加し `/etc/rc.local`ます。
# Disable transparent hugepages if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
-
に
SELINUX=disabled`変更してSELinuxを無効にします `SELINUX=enforcing
。変更を有効にするには、ホストをリブートする必要があります。vi /etc/sysconfig/selinux
-
次の行をに追加し `limit.conf`て、ファイル記述子の制限と、引用符なしのスタックサイズを設定し `" "`ます。
vi /etc/security/limits.conf "* hard nofile 65536" "* soft stack 10240"
-
次の命令に従って、EC2インスタンスにスワップスペースを追加します。追加する正確な容量は、最大16GのRAMのサイズによって異なります。"スワップファイルを使用して、Amazon EC2インスタンスのスワップスペースとして機能するようにメモリを割り当てるにはどうすればよいですか。"
-
`iscsi.conf`設定ファイルを120秒から5秒に変更し `node.session.timeo.replacement_timeout`ます。
vi /etc/iscsi/iscsid.conf
-
EC2インスタンスでiSCSIサービスを有効にして開始します。
systemctl enable iscsid systemctl start iscsid
-
データベースLUNマッピングに使用するiSCSIイニシエータアドレスを取得します。
cat /etc/iscsi/initiatorname.iscsi
-
ASM SYSASMグループに使用するASMグループを追加します。
groupadd asm
-
ASMをセカンダリグループとして追加するようにOracleユーザを変更します(Oracleユーザは、OracleプリインストールRPMインストール後に作成されている必要があります)。
usermod -a -G asm oracle
-
Linuxファイアウォールがアクティブな場合は、停止して無効にします。
systemctl stop firewalld systemctl disable firewalld
-
EC2インスタンスをリブートします。
データベースボリュームとLUNをプロビジョニングし、EC2インスタンスホストにマッピングします
Details
コマンドラインから3つのボリュームをプロビジョニングします。fsxadminユーザとしてssh経由でFSxクラスタにログインし、FSxクラスタ管理IPを使用してOracleデータベースのバイナリファイル、データファイル、ログファイルをホストします。
-
SSHを使用してfsxadminユーザとしてFSxクラスタにログインします。
ssh fsxadmin@172.30.15.53
-
次のコマンドを実行して、Oracleバイナリ用のボリュームを作成します。
vol create -volume ora_01_biny -aggregate aggr1 -size 50G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
次のコマンドを実行してOracleデータ用のボリュームを作成します。
vol create -volume ora_01_data -aggregate aggr1 -size 100G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
次のコマンドを実行して、Oracleログ用のボリュームを作成します。
vol create -volume ora_01_logs -aggregate aggr1 -size 100G -state online -type RW -snapshot-policy none -tiering-policy snapshot-only
-
データベースバイナリボリューム内にバイナリLUNを作成します。
lun create -path /vol/ora_01_biny/ora_01_biny_01 -size 40G -ostype linux
-
データベースデータボリューム内にデータLUNを作成します。
lun create -path /vol/ora_01_data/ora_01_data_01 -size 20G -ostype linux lun create -path /vol/ora_01_data/ora_01_data_02 -size 20G -ostype linux lun create -path /vol/ora_01_data/ora_01_data_03 -size 20G -ostype linux lun create -path /vol/ora_01_data/ora_01_data_04 -size 20G -ostype linux
-
データベースログボリューム内にログLUNを作成します。
lun create -path /vol/ora_01_logs/ora_01_logs_01 -size 40G -ostype linux lun create -path /vol/ora_01_logs/ora_01_logs_02 -size 40G -ostype linux
-
上記のEC2カーネル設定の手順14で取得したイニシエータを使用して、EC2インスタンスのigroupを作成します。
igroup create -igroup ora_01 -protocol iscsi -ostype linux -initiator iqn.1994-05.com.redhat:f65fed7641c2
-
上記で作成したigroupにLUNをマッピングします。ボリューム内のLUNを追加するたびに、LUN IDをシーケンシャルに増やします。
lun map -path /vol/ora_01_biny/ora_01_biny_01 -igroup ora_01 -vserver svm_ora -lun-id 0 lun map -path /vol/ora_01_data/ora_01_data_01 -igroup ora_01 -vserver svm_ora -lun-id 1 lun map -path /vol/ora_01_data/ora_01_data_02 -igroup ora_01 -vserver svm_ora -lun-id 2 lun map -path /vol/ora_01_data/ora_01_data_03 -igroup ora_01 -vserver svm_ora -lun-id 3 lun map -path /vol/ora_01_data/ora_01_data_04 -igroup ora_01 -vserver svm_ora -lun-id 4 lun map -path /vol/ora_01_logs/ora_01_logs_01 -igroup ora_01 -vserver svm_ora -lun-id 5 lun map -path /vol/ora_01_logs/ora_01_logs_02 -igroup ora_01 -vserver svm_ora -lun-id 6
-
LUNマッピングを検証します。
mapping show
次のような結果が返されます。
FsxId02ad7bf3476b741df::> mapping show (lun mapping show) Vserver Path Igroup LUN ID Protocol ---------- ---------------------------------------- ------- ------ -------- svm_ora /vol/ora_01_biny/ora_01_biny_01 ora_01 0 iscsi svm_ora /vol/ora_01_data/ora_01_data_01 ora_01 1 iscsi svm_ora /vol/ora_01_data/ora_01_data_02 ora_01 2 iscsi svm_ora /vol/ora_01_data/ora_01_data_03 ora_01 3 iscsi svm_ora /vol/ora_01_data/ora_01_data_04 ora_01 4 iscsi svm_ora /vol/ora_01_logs/ora_01_logs_01 ora_01 5 iscsi svm_ora /vol/ora_01_logs/ora_01_logs_02 ora_01 6 iscsi
データベースストレージの構成
Details
次に、Oracleグリッドインフラ用のFSxストレージとEC2インスタンスホストへのデータベースインストールをインポートしてセットアップします。
-
SSHキーとEC2インスタンスのIPアドレスを使用して、EC2-userとしてSSH経由でEC2インスタンスにログインします。
ssh -i ora_01.pem ec2-user@172.30.15.58
-
いずれかのSVM iSCSI IPアドレスを使用してFSx iSCSIエンドポイントを検出します。次に、環境固有のポータルアドレスに変更します。
sudo iscsiadm iscsiadm --mode discovery --op update --type sendtargets --portal 172.30.15.51
-
各ターゲットにログインしてiSCSIセッションを確立します。
sudo iscsiadm --mode node -l all
想定されるコマンドの出力は次のとおりです。
[ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode node -l all Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.51,3260] Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.13,3260] Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.51,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.13,3260] successful.
-
アクティブなiSCSIセッションのリストを表示して検証します。
sudo iscsiadm --mode session
iSCSIセッションを返します。
[ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode session tcp: [1] 172.30.15.51:3260,1028 iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3 (non-flash) tcp: [2] 172.30.15.13:3260,1029 iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3 (non-flash)
-
LUNがホストにインポートされたことを確認します。
sudo sanlun lun show
FSxからOracle LUNのリストが返されます。
[ec2-user@ip-172-30-15-58 ~]$ sudo sanlun lun show controller(7mode/E-Series)/ device host lun vserver(cDOT/FlashRay) lun-pathname filename adapter protocol size product svm_ora /vol/ora_01_logs/ora_01_logs_02 /dev/sdn host3 iSCSI 40g cDOT svm_ora /vol/ora_01_logs/ora_01_logs_01 /dev/sdm host3 iSCSI 40g cDOT svm_ora /vol/ora_01_data/ora_01_data_03 /dev/sdk host3 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_04 /dev/sdl host3 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_01 /dev/sdi host3 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_02 /dev/sdj host3 iSCSI 20g cDOT svm_ora /vol/ora_01_biny/ora_01_biny_01 /dev/sdh host3 iSCSI 40g cDOT svm_ora /vol/ora_01_logs/ora_01_logs_02 /dev/sdg host2 iSCSI 40g cDOT svm_ora /vol/ora_01_logs/ora_01_logs_01 /dev/sdf host2 iSCSI 40g cDOT svm_ora /vol/ora_01_data/ora_01_data_04 /dev/sde host2 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_02 /dev/sdc host2 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_03 /dev/sdd host2 iSCSI 20g cDOT svm_ora /vol/ora_01_data/ora_01_data_01 /dev/sdb host2 iSCSI 20g cDOT svm_ora /vol/ora_01_biny/ora_01_biny_01 /dev/sda host2 iSCSI 40g cDOT
-
次のデフォルトエントリとブラックリストエントリを使用してファイルを設定し `multipath.conf`ます。
sudo vi /etc/multipath.conf defaults { find_multipaths yes user_friendly_names yes } blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss.*" }
-
マルチパスサービスを開始します。
sudo systemctl start multipathd
ディレクトリにマルチパスデバイスが表示されます
/dev/mapper
。[ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper total 0 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e68512d -> ../dm-0 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685141 -> ../dm-1 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685142 -> ../dm-2 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685143 -> ../dm-3 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685144 -> ../dm-4 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685145 -> ../dm-5 lrwxrwxrwx 1 root root 7 Mar 21 20:13 3600a09806c574235472455534e685146 -> ../dm-6 crw------- 1 root root 10, 236 Mar 21 18:19 control
-
SSH経由でFSXクラスタにfsxadminユーザとしてログインし、6c574xxx…で始まる各LUNの16進数値、3600a0980(AWSベンダーID)を取得します。
lun show -fields serial-hex
次のように戻ります。
FsxId02ad7bf3476b741df::> lun show -fields serial-hex vserver path serial-hex ------- ------------------------------- ------------------------ svm_ora /vol/ora_01_biny/ora_01_biny_01 6c574235472455534e68512d svm_ora /vol/ora_01_data/ora_01_data_01 6c574235472455534e685141 svm_ora /vol/ora_01_data/ora_01_data_02 6c574235472455534e685142 svm_ora /vol/ora_01_data/ora_01_data_03 6c574235472455534e685143 svm_ora /vol/ora_01_data/ora_01_data_04 6c574235472455534e685144 svm_ora /vol/ora_01_logs/ora_01_logs_01 6c574235472455534e685145 svm_ora /vol/ora_01_logs/ora_01_logs_02 6c574235472455534e685146 7 entries were displayed.
-
ファイルを更新し `/dev/multipath.conf`て、マルチパスデバイスのフレンドリ名を追加します。
sudo vi /etc/multipath.conf
次のエントリで構成されます。
multipaths { multipath { wwid 3600a09806c574235472455534e68512d alias ora_01_biny_01 } multipath { wwid 3600a09806c574235472455534e685141 alias ora_01_data_01 } multipath { wwid 3600a09806c574235472455534e685142 alias ora_01_data_02 } multipath { wwid 3600a09806c574235472455534e685143 alias ora_01_data_03 } multipath { wwid 3600a09806c574235472455534e685144 alias ora_01_data_04 } multipath { wwid 3600a09806c574235472455534e685145 alias ora_01_logs_01 } multipath { wwid 3600a09806c574235472455534e685146 alias ora_01_logs_02 } }
-
マルチパスサービスをリブートして、のデバイスがLUN名とシリアル16進数のIDに変更されたことを確認します
/dev/mapper
。sudo systemctl restart multipathd
`/dev/mapper`次のように戻ります。
[ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper total 0 crw------- 1 root root 10, 236 Mar 21 18:19 control lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_biny_01 -> ../dm-0 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_data_01 -> ../dm-1 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_data_02 -> ../dm-2 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_data_03 -> ../dm-3 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_data_04 -> ../dm-4 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_logs_01 -> ../dm-5 lrwxrwxrwx 1 root root 7 Mar 21 20:41 ora_01_logs_02 -> ../dm-6
-
バイナリLUNを単一のプライマリパーティションでパーティショニングします。
sudo fdisk /dev/mapper/ora_01_biny_01
-
パーティション化されたバイナリLUNをXFSファイルシステムでフォーマットします。
sudo mkfs.xfs /dev/mapper/ora_01_biny_01p1
-
バイナリLUNをにマウントし `/u01`ます。
sudo mount -t xfs /dev/mapper/ora_01_biny_01p1 /u01
-
マウントポイントの所有権をOracleユーザに変更し、関連付けられているプライマリグループに変更し `/u01`ます。
sudo chown oracle:oinstall /u01
-
バイナリLUNのUUIを探します。
sudo blkid /dev/mapper/ora_01_biny_01p1
-
にマウントポイントを追加し `/etc/fstab`ます。
sudo vi /etc/fstab
次の行を追加します。
UUID=d89fb1c9-4f89-4de4-b4d9-17754036d11d /u01 xfs defaults,nofail 0 2
EC2インスタンスのリブート時にルートロックの問題が発生しないようにするには、UUIDだけを指定し、nofailオプションを指定してバイナリをマウントすることが重要です。 -
rootユーザとして、Oracleデバイスのudevルールを追加します。
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
次のエントリを含めます。
ENV{DM_NAME}=="ora*", GROUP:="oinstall", OWNER:="oracle", MODE:="660"
-
rootユーザとしてudevルールをリロードします。
udevadm control --reload-rules
-
rootユーザとしてudevルールをトリガーします。
udevadm trigger
-
rootユーザとして、multipathdをリロードします。
systemctl restart multipathd
-
EC2インスタンスホストをリブートします。
Oracleグリッドインフラのインストール
Details
-
SSH経由でEC2インスタンスにEC2-userとしてログインし、コメントを解除してからコメントアウトし
PasswordAuthentication no`てパスワード認証を有効にします。 `PasswordAuthentication yes
sudo vi /etc/ssh/sshd_config
-
sshdサービスを再起動します。
sudo systemctl restart sshd
-
Oracleユーザパスワードをリセットします。
sudo passwd oracle
-
Oracle Restartソフトウェア所有者ユーザー(Oracle)としてログインします。Oracleディレクトリを次のように作成します。
mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory
-
ディレクトリの権限設定を変更します。
chmod -R 775 /u01/app
-
グリッドのホームディレクトリを作成して変更します。
mkdir -p /u01/app/oracle/product/19.0.0/grid cd /u01/app/oracle/product/19.0.0/grid
-
グリッドインストールファイルを解凍します。
unzip -q /tmp/archive/LINUX.X64_193000_grid_home.zip
-
grid homeからディレクトリを削除し `OPatch`ます。
rm -rf OPatch
-
グリッドホームから解凍し `p6880880_190000_Linux-x86-64.zip`ます。
unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
-
グリッドホームから、修正
cv/admin/cvu_config
、コメント解除、および置換をCV_ASSUME_DISTID=OEL5
`CV_ASSUME_DISTID=OL7`行います。vi cv/admin/cvu_config
-
サイレントインストール用のファイルを準備し
gridsetup.rsp
、RSPファイルをディレクトリに配置し `/tmp/archive`ます。RSPファイルは、セクションA、B、およびGを次の情報でカバーする必要があります。INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=HA_CONFIG ORACLE_BASE=/u01/app/oracle oracle.install.asm.OSDBA=dba oracle.install.asm.OSOPER=oper oracle.install.asm.OSASM=asm oracle.install.asm.SYSASMPassword="SetPWD" oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.disks=/dev/mapper/ora_01_data_01,/dev/mapper/ora_01_data_02,/dev/mapper/ora_01_data_03,/dev/mapper/ora_01_data_04 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/* oracle.install.asm.monitorPassword="SetPWD" oracle.install.asm.configureAFD=true
-
EC2インスタンスにrootユーザとしてログインし、と
ORACLE_BASE`を設定します `ORACLE_HOME
。export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid export ORACLE_BASE=/tmp cd /u01/app/oracle/product/19.0.0/grid/bin
-
Oracle ASMフィルタドライバで使用するディスクデバイスをプロビジョニングします。
./asmcmd afd_label DATA01 /dev/mapper/ora_01_data_01 --init ./asmcmd afd_label DATA02 /dev/mapper/ora_01_data_02 --init ./asmcmd afd_label DATA03 /dev/mapper/ora_01_data_03 --init ./asmcmd afd_label DATA04 /dev/mapper/ora_01_data_04 --init ./asmcmd afd_label LOGS01 /dev/mapper/ora_01_logs_01 --init ./asmcmd afd_label LOGS02 /dev/mapper/ora_01_logs_02 --init
-
をインストールし `cvuqdisk-1.0.10-1.rpm`ます。
rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
-
設定解除(Unset)
$ORACLE_BASE
:unset ORACLE_BASE
-
EC2インスタンスにOracleユーザーとしてログインし、フォルダにパッチを展開し `/tmp/archive`ます。
unzip /tmp/archive/p34762026_190000_Linux-x86-64.zip -d /tmp/archive
-
grid home/u01/app/oracle/product/19.0.0/gridから、をOracleユーザーとして起動し、grid infrastructureのインストールを開始し `gridSetup.sh`ます。
./gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp
グリッドインフラのグループが間違っているという警告は無視してください。Oracle Restartの管理には単一のOracleユーザを使用しているため、これは想定されています。
-
rootユーザとして、次のスクリプトを実行します。
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/grid/root.sh
-
rootユーザとして、multipathdをリロードします。
systemctl restart multipathd
-
Oracleユーザとして、次のコマンドを実行して設定を完了します。
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
-
Oracleユーザとして、logsディスクグループを作成します。
bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk 'AFD:LOGS*' -redundancy EXTERNAL -au_size 4
-
Oracleユーザとして、インストールの設定後にグリッドサービスを検証します。
bin/crsctl stat res -t + Name Target State Server State details Local Resources ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE Cluster Resources ora.cssd ONLINE ONLINE ip-172-30-15-58 STABLE ora.diskmon OFFLINE OFFLINE STABLE ora.driver.afd ONLINE ONLINE ip-172-30-15-58 STABLE ora.evmd ONLINE ONLINE ip-172-30-15-58 STABLE
-
ASMフィルタドライバのステータスを検証します。
[oracle@ip-172-30-15-58 grid]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid [oracle@ip-172-30-15-58 grid]$ export ORACLE_SID=+ASM [oracle@ip-172-30-15-58 grid]$ export PATH=$PATH:$ORACLE_HOME/bin [oracle@ip-172-30-15-58 grid]$ 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 1048576 81920 81847 0 81847 0 N DATA/ MOUNTED EXTERN N 512 512 4096 1048576 81920 81853 0 81853 0 N LOGS/ ASMCMD> afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ip-172-30-15-58.ec2.internal'
Oracleデータベースのインストール
Details
-
Oracleユーザとしてログインし、設定を解除します
$ORACLE_HOME
(設定されている場合)。$ORACLE_SID
unset ORACLE_HOME unset ORACLE_SID
-
Oracle DBのホームディレクトリを作成し、ディレクトリに変更します。
mkdir /u01/app/oracle/product/19.0.0/db1 cd /u01/app/oracle/product/19.0.0/db1
-
Oracle DBインストールファイルを解凍します。
unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
-
DBホームから、ディレクトリを削除し `OPatch`ます。
rm -rf OPatch
-
DBホームから解凍します
p6880880_190000_Linux-x86-64.zip
。unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
-
DB homeから修正し、 `cv/admin/cvu_config`コメントを解除してからで `CV_ASSUME_DISTID=OL7`置換し `CV_ASSUME_DISTID=OEL5`ます。
vi cv/admin/cvu_config
-
ディレクトリから
/tmp/archive
、DB 19.18 RUパッチを解凍します。unzip p34765931_190000_Linux-x86-64.zip
-
次の値を使用して、ディレクトリ内のDBサイレントインストールRSPファイルを準備します
/tmp/archive/dbinstall.rsp
。oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=oper oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false
-
db1 home/u01/app/oracle/product/19.0.0/db1から、ソフトウェアのみのサイレントデータベースインストールを実行します。
./runInstaller -applyRU /tmp/archive/34765931/ -silent -ignorePrereqFailure -responseFile /tmp/archive/dbinstall.rsp
-
rootユーザとして、ソフトウェアのみのインストール後にスクリプトを実行し `root.sh`ます。
/u01/app/oracle/product/19.0.0/db1/root.sh
-
Oracleユーザとして、次のエントリを含むファイルを作成し `dbca.rsp`ます。
gdbName=db1.demo.netapp.com sid=db1 createAsContainerDatabase=true numberOfPDBs=3 pdbName=db1_pdb useLocalUndoForPDBs=true pdbAdminPassword="yourPWD" templateName=General_Purpose.dbc sysPassword="yourPWD" systemPassword="yourPWD" dbsnmpPassword="yourPWD" datafileDestination=+DATA recoveryAreaDestination=+LOGS storageType=ASM diskGroupName=DATA characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 listeners=LISTENER databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=8192
-
Oracleユーザとして、dbcaを使用してDB作成を起動します。
bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp output: Prepare for db operation 7% complete Registering database with Oracle Restart 11% complete Copying database files 33% complete Creating and starting Oracle instance 35% complete 38% complete 42% complete 45% complete 48% complete Completing Database Creation 53% complete 55% complete 56% complete Creating Pluggable Databases 60% complete 64% complete 69% complete 78% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/db1. Database Information: Global Database Name:db1.demo.netapp.com System Identifier(SID):db1 Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1/db1.log" for further details.
-
Oracleユーザとして、Oracleデータベースの作成後にHAサービスを再起動することを検証します。
[oracle@ip-172-30-15-58 db1]$ ../grid/bin/crsctl stat res -t Name Target State Server State details Local Resources ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE Cluster Resources ora.cssd ONLINE ONLINE ip-172-30-15-58 STABLE ora.db1.db ONLINE ONLINE ip-172-30-15-58 Open,HOME=/u01/app/oracle/product/19.0.0/db1,STABLE ora.diskmon OFFLINE OFFLINE STABLE ora.driver.afd ONLINE ONLINE ip-172-30-15-58 STABLE ora.evmd ONLINE ONLINE ip-172-30-15-58 STABLE
-
Oracleユーザを設定します
.bash_profile
。vi ~/.bash_profile
-
次のエントリを追加します。
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 export ORACLE_SID=db1 export PATH=$PATH:$ORACLE_HOME/bin alias asm='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid;export ORACLE_SID=+ASM;export PATH=$PATH:$ORACLE_HOME/bin'
-
作成したCDB/PDBを検証します。
/home/oracle/.bash_profile sqlplus / as sysdba SQL> select name, open_mode from v$database; NAME OPEN_MODE DB1 READ WRITE SQL> select name from v$datafile; NAME +DATA/DB1/DATAFILE/system.256.1132176177 +DATA/DB1/DATAFILE/sysaux.257.1132176221 +DATA/DB1/DATAFILE/undotbs1.258.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1132177009 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1132177009 +DATA/DB1/DATAFILE/users.259.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1132177009 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/system.271.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/sysaux.272.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/undotbs1.270.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/users.274.1132177871 NAME +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/system.276.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/sysaux.277.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/undotbs1.275.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/users.279.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/system.281.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/sysaux.282.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/undotbs1.280.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/users.284.1132177907 19 rows selected. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED 2 PDB$SEED READ ONLY NO 3 DB1_PDB1 READ WRITE NO 4 DB1_PDB2 READ WRITE NO 5 DB1_PDB3 READ WRITE NO SQL>
-
DBリカバリ先のサイズを、+LOGSディスクグループのサイズに設定します。
alter system set db_recovery_file_dest_size = 80G scope=both;
-
sqlplusを使用してデータベースにログインし、アーカイブログモードを有効にします。
sqlplus /as sysdba. shutdown immediate; startup mount; alter database archivelog; alter database open;
これでOracle 19Cバージョン19.18は完了です。Amazon FSx ONTAPおよびEC2コンピューティングインスタンスでの導入を再開します。必要に応じて、Oracleの制御ファイルとオンラインログファイルを+logsディスクグループに移動することを推奨します。
自動導入オプション
SnapCenter サービスを使用したOracleデータベースのバックアップ、リストア、クローニング
NetApp BlueXP コンソールを使用したOracleデータベースのバックアップ、リストア、およびクローニングの詳細については、を参照してください"Oracle向けのSnapCenter サービス"。
詳細情報の入手方法
このドキュメントに記載されている情報の詳細については、以下のドキュメントや Web サイトを参照してください。
-
新規データベースをインストールしたスタンドアロンサーバー用のOracle Grid Infrastructureのインストール
-
応答ファイルを使用したOracleデータベースのインストールと設定
-
Amazon FSx ONTAP
-
Amazon EC2