0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

みなさん、こんにちは!
以前、「SEHAとは」について紹介しましたが、今回はSEHAを実際に導入した方法について紹介していきたいと思います。

※SEHAとは、については以下弊社の技術ブログを参照いただけると幸いです。
https://www.reqtc.com/blog/oracle-seha.html

事前準備

1.Grid Infrastructure 19.3のクラスタを構成 (対象ノード:1号機および2号機)
2.事前に作成したORACLE_HOMEディレクトリにOracle Database 19.3のインストールメディアを展開する (対象ノード:1号機)
3.事前に作成した作業用ディレクトリにRU 19.22を展開する (対象ノード:1号機)

参考文献
Database Installation Guide for Linux-Installing Standard Edition High Availability

Oracle Databaseインストール

インストーラーを起動

それでは、さっそくSEHAを導入していきたいと思います。
まずはじめに、runInstallerを実行します。
その際に-applyRUオプションで適用するパッチを指定し、インストールを実行します。
パッチの適用後、インストーラーが起動します。

qiita.rb
[oracle@reqdb01 ~]$ cd $ORACLE_HOME
[oracle@reqdb01 dbhome_1]$ ./runInstaller -applyRU /work/35940989
パッチを適用するホームの準備中...
パッチ/work/35940989の適用中...
パッチが正常に適用されました
ログの格納場所: /u01/app/oraInventory/logs/xxx/installerPatchActions_xxx.log
Oracle Database設定ウィザードを起動中...

OUIでの設定項目

  • 構成オプション
    →「ソフトウェアのみの設定」を選択
  • データベース・インストール・オプションの選択
    →「単一インスタンス・データベースのインストール」を選択
  • データベース・エディションの選択
    →「Standard Edition 2」を選択
    その他の項目については、要件に合わせて適宜設定をします。

ノード追加

1号機からaddnode.shを実行し、ノード2を追加します。

qiita.rb
[oracle@reqdb01~]$export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
[oracle@reqdb01~]$$ORACLE_HOME/addnode/addnode.sh -silent CLUSTER_NEW_NODES=reqdb02

構成の準備が進行中です

構成の準備が正常に終了しました
.................................................. 7% 完了しました

リモートノードへのファイルのコピーが進行中です
.................................................. 12% 完了しました
.................................................. 18% 完了しました
..............................
リモートノードへのファイルのコピーが正常に終了しました
このインストールセッションのログは次の場所にあります:
/u01/app/oraInventory/logs/addNodeActionsYYYY-MM-DD_xxxx.log

ファイルを初期化しますが進行中です

ファイルを初期化しますが正常に終了しました
.................................................. 52% 完了しました

クラスタインベントリを保存していますが進行中です
.................................................. 89% 完了しました

クラスタインベントリを保存していますが正常に終了しました
/u01/app/oracle/product/19.0.0/dbhome_1のクラスタノードの追加が成功しました
詳細は'/u01/app/oraInventory/logs/silentInstallYYYY-MM-DD_xxxx.log'を確認してください

Oracleベースの設定が進行中です

Oracleベースの設定が正常に終了しました
.................................................. 96% 完了しました

rootユーザーとして次のスクリプトを実行します:
1. /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

次のノードで/u01/app/oracle/product/19.0.0/dbhome_1/root.shを実行してください:
[reqdb02]


Successfully Setup Software.
.................................................. 100% 完了しました
[oracle@reqdb01 ~]$

rootユーザーでroot.shを実行します。(対象ノード:2号機)

qiita.rb
[root@reqdb02 ~]# /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

データベースの作成

DBCAを実行し、データベースを作成します。
DBCAでの設定値については要件に合わせて設定してください。

qiita.rb
[oracle@ reqdb01 ~]$ /u01/app/oracle/product/19.0.0/dbhome_1/bin/dbca

LOCAL_LISTENERパラメータの調整

DBCAでDB作成時、local_listener初期化パラメータが静的に登録されています。
この設定をリセットしてGIによって動的に登録されるように変更する必要があります。
1号機にて、SQL*Plusに接続し、以下を実行します。

qiita.rb
SQL> show parameter listener

NAME                 TYPE   VALUE
------------------------------------ ----------- ------------------------------
forward_listener         string
listener_networks         string
local_listener          string     LISTENER_<DB名> ←★不要な設定
remote_listener          string    reqdb-cluster-scan:1521
SQL>
SQL> alter system reset local_listener scope = both;

System altered.

SQL>
SQL> show parameter listener

NAME                 TYPE   VALUE
------------------------------------ ----------- ------------------------------
forward_listener         string
listener_networks         string
local_listener          string                 ←★設定がリセットされる
remote_listener          string reqdb-cluster-scan:1521

その後、DBを再起動しlocal_listenerが自動登録されていることを確認します。

qiita.rb
[oracle@reqdb01 ~]$ srvctl stop database -db <DB名>
[oracle@reqdb01 ~]$ srvctl start database -db <DB名>
[oracle@reqdb01 ~]$
[oracle@reqdb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 6 12:00:18 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2023, Oracle. All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL>
SQL> show parameter listener

NAME            TYPE    VALUE
--------------------------- ----------- ------------------------------
forward_listener      string
listener_networks     string
local_listener      string   (ADDRESS=(PROTOCOL=TCP)(HOST=
                    10.0.xx.xx)(PORT=1521)) ←★GI Agentによって自動登録される
remote_listener      string    reqdb-cluster-scan:1521
SQL> exit

稼働ノード追加

稼働ノードとして2号機をDBに登録します。

qiita.rb
[oracle@reqdb01 ~]$ srvctl config database -db <DB名>

構成されたノード: reqdb01 ←★この時点ではノード1のみ

[oracle@reqdb01 ~]$
[oracle@reqdb01 ~]$ srvctl modify database -db <DB名> -node reqdb01,reqdb02
[oracle@reqdb01 ~]$
[oracle@reqdb01 ~]$ srvctl config database -db <DB名>

構成されたノード: reqdb01,reqdb02 ←★ノード2が追加されていること

その他、2号機で必要となるファイル・ディレクトリの作成

1.2号機にて、下記ディレクトリを作成する。
 ・/u01/app/oracle/admin//adump
 ・/u01/app/oracle/admin//dpdump
 ・/u01/app/oracle/admin//pfile
 ・/u01/app/oracle/admin//scripts
 ・/u01/app/oracle/admin//xdb_wallet

例)

qiita.rb
mkdir -p /u01/app/oracle/admin/<DB名>/adump

2.1号機から2号機へwalletをコピーする

qiita.rb
$ scp /u01/app/oracle/admin/<DB名>/xdb_wallet/* oracle@ reqdb02:/u01/app/oracle/admin/<DB名>/xdb_wallet/.

3.1号機から2号機へパスワード・ファイルをコピーする

qiita.rb
$ scp /u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapw<DB名> oracle@ reqdb02:/u01/app/oracle/product/19.0.0/dbhome_1/dbs/.

動作確認

現在1号機で稼働していることを確認します。

qiita.rb
--------------------------------------------------------------------------------
Name      Target State    Server            State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.<DB名>.db
   1    ONLINE ONLINE    reqdb01           Open,HOME=/u01/app/o
                                 racle/product/19.0.0
                                 /dbhome_1,S

続いて、DB起動の際にノード2を指定し、2号機で起動します。

qiita.rb
[oracle@reqdb01 ~]$ srvctl stop database -db <DB名>
[oracle@reqdb01 ~]$
[oracle@reqdb01 ~]$ srvctl start database -db <DB名> -node reqdb02
[oracle@reqdb01 ~]$
[oracle@reqdb01 ~]$ /u01/app/19.0.0/grid/bin/crsctl stat res -w "TYPE = ora.database.type" -t

--------------------------------------------------------------------------------
Name     Target State     Server         State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.<DB名>.db
   1   ONLINE ONLINE     reqdb02         Open,HOME=/u01/app/o
                               racle/product/19.0.0
                               /dbhome_1,STABL

2号機で問題なく稼働していることを確認できましたら、SEHAの導入としては以上となります。
その他の設定については、要件に合わせて設定をしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?