第6章 便利なコマンド
以下の 3 つのセクションで、便利なコマンドを紹介します。ほとんどの場合、操作や設定の成功を確認するのに役立ちます。例を応答とともに記載しています。出力は、形式上の理由で調整されている場合があります。
-
このドキュメントにリストされているすべてのコマンドには、
<sid>admユーザーが実行するものである場合、先頭に%が付いています。 -
root userが実行するすべてのコマンドには、先頭に#が付いています。 -
コマンドを実行するには、接頭辞の
%または#を除きます。
6.1. SAP HANA コマンド リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA コマンドは、<sid>adm ユーザーによって実行されます。以下に例を示します。
6.1.1. hdbclm を使用した SAP HANA のインストール リンクのコピーリンクがクリップボードにコピーされました!
3 番目のサイトのインストールは、2 番目のサイトのインストールと似ています。インストールは、root ユーザーとして hdblcm を使用して実行できます。以前に何もインストールされていないことを確認するには、hdbuninst を実行して、このノードに SAP HANA がまだインストールされていないかどうかを確認します。
HANA アンインストールの出力例:
cd /software/DATA_UNITS/HDB_SERVER_LINUX_X86_64 root@DC3/software/DATA_UNITS/HDB_SERVER_LINUX_X86_64# ./hdbuninst Option 0 will remove an already existing HANA Installation No SAP HANA Installation found is the expected answer
[root@remotehost3]# cd /software/DATA_UNITS/HDB_SERVER_LINUX_X86_64
root@DC3/software/DATA_UNITS/HDB_SERVER_LINUX_X86_64# ./hdbuninst
Option 0 will remove an already existing HANA Installation
No SAP HANA Installation found is the expected answer
DC3 での HANA インストールの出力例:
インストールが開始される前に、概要がリスト表示されます。
y を入力してインストールを開始します。
6.1.2. hdbsql を使用した Inifile の内容の確認 リンクのコピーリンクがクリップボードにコピーされました!
6.1.3. データベースの確認 リンクのコピーリンクがクリップボードにコピーされました!
データベースが実行されているかどうかを確認し、現在のプライマリーノードを検出します。
データベースインスタンスのリスト表示
出力が緑色の場合、インスタンスは実行中です。
データベースプロセスのリスト表示
通常、すべてのデータベースプロセスのステータスは GREEN です。
SAP HANA プロセスのリスト表示
SAP HANA ランドスケープ設定の表示
戻りコード:
- 0: Fatal
- 1: Error
- 2: Warning
- 3: Info
- 4: OK
プライマリーデータベースの検出
clusternode1:rh2adm> hdbnsutil -sr_state | egrep -e "primary masters|^mode"
clusternode1:rh2adm> hdbnsutil -sr_state | egrep -e "primary masters|^mode"
セカンダリーでの確認の例:
clusternode1:rh2adm> hdbnsutil -sr_state | egrep -e "primary masters|^mode" mode: syncmem primary masters: clusternode1
clusternode1:rh2adm> hdbnsutil -sr_state | egrep -e "primary masters|^mode"
mode: syncmem
primary masters: clusternode1
現在のプライマリーでの確認の例:
データベースのバージョンの表示
SQL クエリーを使用した例:
hdbsql RH2=> select * from m_database SYSTEM_ID,DATABASE_NAME,HOST,START_TIME,VERSION,USAGE "RH2","RH2","node1","2023-06-22 15:33:05.235000000","2.00.059.02.1647435895","CUSTOM" 1 row selected (overall time 29.107 msec; server time 927 usec)
hdbsql RH2=> select * from m_database
SYSTEM_ID,DATABASE_NAME,HOST,START_TIME,VERSION,USAGE
"RH2","RH2","node1","2023-06-22 15:33:05.235000000","2.00.059.02.1647435895","CUSTOM"
1 row selected (overall time 29.107 msec; server time 927 usec)
systemOverview.py を使用した例:
6.1.4. SAP HANA の起動と停止 リンクのコピーリンクがクリップボードにコピーされました!
オプション 1: HDB コマンド
clusternode1:rh2adm> HDB help
Usage: /usr/sap/RH2/HDB02/HDB { start|stop|reconf|restart|version|info|proc|admin|kill|kill-<sig>|term }
kill or kill-9 should never be used in a productive environment!
clusternode1:rh2adm> HDB help
Usage: /usr/sap/RH2/HDB02/HDB { start|stop|reconf|restart|version|info|proc|admin|kill|kill-<sig>|term }
kill or kill-9 should never be used in a productive environment!
データベースを起動します。
clusternode1:rh2adm> HDB start
clusternode1:rh2adm> HDB startCopy to Clipboard Copied! Toggle word wrap Toggle overflow データベースを停止します。
clusternode1:rh2adm> HDB stop
clusternode1:rh2adm> HDB stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション 2 (推奨): sapcontrol を使用
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function StartSystem HDB
03.07.2023 14:08:30
StartSystem
OK
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function StartSystem HDB
03.07.2023 14:08:30
StartSystem
OK
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function StopSystem HDB
03.07.2023 14:09:33
StopSystem
OK
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function StopSystem HDB
03.07.2023 14:09:33
StopSystem
OK
GetProcessList を使用して、HANA サービスの起動と停止を監視します。
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function GetProcessList
clusternode1:rh2adm> sapcontrol -nr ${TINSTANCE} -function GetProcessList
6.1.5. SAP HANA システムレプリケーションのステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA システムレプリケーションのステータスを確認するには、さまざまな方法があります。
- `clusternode1:rh2adm> python systemReplicationStatus.py ` on the primary node
-
clusternode1:rh2adm> echo $? #(systemReplicationStatus の戻りコード) -
clusternode1:rh2adm> hdbnsutil -sr_state -
clusternode1:rh2adm> hdbnsutil -sr_stateConfiguration
モニターとして実行される systemReplicationStatus.py の出力例:
予想される戻りコードの結果は次のとおりです。
- 10: NoHSR
- 11: Error
- 12: Unknown
- 13: Initializing
- 14: Syncing
- 15: Active
ほとんどの場合、システムレプリケーションのチェックは戻りコード 15 を返します。別の表示オプションとして、-t (printLandscapeTree) を使用する方法があります。
現在のプライマリーでの出力の例:
clusternode1:rh2adm> python systemReplicationStatus.py -t
HANA System Replication landscape:
DC1 ( primary )
| --- DC3 ( syncmem )
| --- DC2 ( syncmem )
clusternode1:rh2adm> python systemReplicationStatus.py -t
HANA System Replication landscape:
DC1 ( primary )
| --- DC3 ( syncmem )
| --- DC2 ( syncmem )
hdbnsutil -sr_state の例:
プライマリーでの sr_stateConfiguation の例:
セカンダリーでの sr_stateConfiguration の例:
どのノードが現在のプライマリーであるかをセカンダリーデータベースで確認することもできます。フェイルオーバー中に 2 つのプライマリーデータベースが見つかった場合に、この情報は、どちらのプライマリーデータベースが間違っており、セカンダリーとして再登録する必要があるかを判断するために必要になります。
詳細は、Example: Checking the Status on the Primary and Secondary Systems を参照してください。
6.1.6. セカンダリーノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA システムレプリケーション環境のセカンダリーデータベースを登録するための前提条件:
登録例:
登録すると、global.ini ファイルが自動的に更新されます。
更新前:
更新後:
6.1.7. sapcontrol GetProcessList リンクのコピーリンクがクリップボードにコピーされました!
アクティブな SAP HANA データベースのプロセスの確認
6.1.8. sapcontrol GetInstanceList リンクのコピーリンクがクリップボードにコピーされました!
これにより、SAP HANA データベースのインスタンスのステータスがリスト表示されます。ポートも表示されます。3 つの異なるステータス名があります。
- GREEN (実行中)
- GRAY (停止)
- YELLOW (ステータスが現在変化中)
アクティブなインスタンスの例:
停止したインスタンスの例:
6.1.9. hdbcons の例 リンクのコピーリンクがクリップボードにコピーされました!
HDB コンソールを使用してデータベースに関する情報を表示することもできます。
-
hdbcons -e hdbindexserver 'replication info' -
その他のオプションについては、
hdbcons -e hdbindexserver helpを参照
'replication info' の例:
help の例:
6.1.10. SAP HANA バックアップの作成 リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA システムレプリケーションを使用する場合は、先にプライマリーシステムでバックアップを作成する必要があります。
ユーザー <sid>adm としてこれを実行する方法の例:
clusternode1:rh2adm> hdbsql -i ${TINSTANCE} -u system -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/backup/')"
clusternode1:rh2adm> hdbsql -i ${TINSTANCE} -u system -d ${SAPSYSTEMNAME} "BACKUP DATA USING FILE ('/hana/backup/')"
clusternode1:rh2adm> hdbsql -i ${TINSTANCE} -u system -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/backup/')"
clusternode1:rh2adm> hdbsql -i ${TINSTANCE} -u system -d ${SAPSYSTEMNAME} "BACKUP DATA USING FILE ('/hana/backup/')"
6.1.11. プライマリーノードでの SAP HANA システムレプリケーションの有効化 リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA システムレプリケーションはプライマリーノードで有効にする必要があります。これを行うには、先にバックアップを実行する必要があります。
clusternode1:rh2adm> hdbnsutil -sr_enable --name=DC1 nameserver is active, proceeding ... successfully enabled system as system replication source site done.
clusternode1:rh2adm> hdbnsutil -sr_enable --name=DC1
nameserver is active, proceeding ...
successfully enabled system as system replication source site
done.
6.1.12. セカンダリーノードへのデータベースキーのコピー リンクのコピーリンクがクリップボードにコピーされました!
セカンダリーデータベースをセカンダリーとして登録するには、データベースキーをプライマリーデータベースからセカンダリーデータベースにコピーする必要があります。
以下に例を示します。
clusternode1:rh2adm> scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT remotehost3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT
clusternode1:rh2adm> scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY remotehost3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY
clusternode1:rh2adm> scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT remotehost3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT
clusternode1:rh2adm> scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY remotehost3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY
6.1.13. SAP HANA システムレプリケーションのセカンダリーノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
まず、データベースキーがセカンダリーノードにコピーされていることを確認してください。次に、登録コマンドを実行します。
clusternode1:rh2adm> hdbnsutil -sr_register --remoteHost=remotehost3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC1 --remoteName=DC3 --operationMode=logreplay --online
clusternode1:rh2adm> hdbnsutil -sr_register --remoteHost=remotehost3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC1 --remoteName=DC3 --operationMode=logreplay --online
パラメーターの説明:
-
remoteHost: ソース (プライマリー) データベースを実行しているアクティブノードのホスト名 -
remoteInstance: データベースのインスタンス番号 replicationMode: 次のオプションのいずれか-
sync: ハードディスク同期 -
async: 非同期レプリケーション -
syncmem: メモリー同期
-
-
name: このレプリケーションサイトのエイリアス -
remoteName: ソースデータベースのエイリアス名 operationMode: 次のオプションのいずれか-
delta_datashipping: データが定期的に送信されます。テイクオーバーに少し時間がかかります。 -
logreplay: ログがリモートサイトですぐに再実行されます。テイクオーバーが早くなります。 -
logreplay_readaccess: 2 番目のサイトへの追加の logreplay 読み取り専用アクセスが可能です。
-
6.1.14. SAP HANA データベースの log_mode の確認 リンクのコピーリンクがクリップボードにコピーされました!
log_mode の設定には 2 つのオプションがあります。
-
log_mode=overwrite -
log_mode=normal: これはデフォルト値であり、データベースインスタンスがプライマリーとして実行されている場合に必要です。SAP HANA マルチターゲットシステムレプリケーションを使用する場合は、log_mode=normalを使用する必要があります。log_modeを確認する最良の方法は、hdbsqlを使用することです。
間違った overwrite エントリーを含む例:
この場合、次の 2 つの global.ini ファイルがあります。
DEFAULT-
/usr/sap/${SAPSYSTEMNAME}/SYS/global/hdb/custom/config/global.ini
-
HOST-
/hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.iniHOST値はDEFAULT値を上書きします。データベースを起動する前に両方のファイルを確認してから、hdbsqlを再度使用して正しい設定を確認することもできます。log_modeは、global.ini ファイルを編集することで変更できます。
-
以下に例を示します。
clusternode1:rh2adm> vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini
# global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
[persistence]
log_mode = overwrite
clusternode1:rh2adm> vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini
# global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
[persistence]
log_mode = overwrite
global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver [persistence] log_mode = normal
# global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
[persistence]
log_mode = normal
global.ini ファイルを確認または更新した後、log_mode 値を確認します。
また、このセクションからわかるように、このパラメーターは [persistence] セクションで設定する必要があります。ログモードを overwrite から normal に変更する場合は、データベースを確実に回復できるように、完全なデータバックアップを作成することを推奨します。
6.1.15. プライマリーデータベースの検出 リンクのコピーリンクがクリップボードにコピーされました!
プライマリーノードを識別するには、たとえば次の方法があります。
-
pcs status | grep Promoted -
hdbnsutil -sr_stateConfiguration -
systemReplicationStatus.py
次の systemReplicationStatus.py スクリプトとフィルターの例は、すべてのノード上のプライマリーデータベースの場所を返します。
clusternode1:rh2adm>
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py --sapcontrol=1 | egrep -e
"3${TINSTANCE}01/HOST|PRIMARY_MASTERS"| head -1 | awk -F"=" '{ print $2 }'
clusternode1:rh2adm>
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py --sapcontrol=1 | egrep -e
"3${TINSTANCE}01/HOST|PRIMARY_MASTERS"| head -1 | awk -F"=" '{ print $2 }'
出力:
clusternode2
clusternode2
オプション 2 - 次の例では、すべてのノードと同様の方法で systemReplicationStatus を示しています。
rh2adm>hdbnsutil -sr_state --sapcontrol=1 | grep site.*Mode
rh2adm>hdbnsutil -sr_state --sapcontrol=1 | grep site.*Mode
出力:
6.1.16. プライマリーのテイクオーバー リンクのコピーリンクがクリップボードにコピーされました!
プライマリーノードとセカンダリーノードの確認については、レプリケーションステータスの確認 セクションを参照してください。また、以下の点にも注意してください。
- クラスターを maintenance-mode にします。
- セカンダリーノードでテイクオーバーを開始します。
クラスターの maintenance-mode を有効にする例:
pcs property set maintenance-mode=true
[root@clusternode1]# pcs property set maintenance-mode=true
新しいプライマリーとなるセカンダリーで、<sidadm> ユーザーとして次のコマンドを実行します。
clusternode1:rh2adm> hdbnsutil -sr_takeover
clusternode1:rh2adm> hdbnsutil -sr_takeover
このセカンダリーがプライマリーになり、他のアクティブなセカンダリーデータベースが、新しいプライマリーに再登録されます。前のプライマリーは、セカンダリーとして手動で再登録する必要があります。
6.1.17. 以前のプライマリーをセカンダリーとして再登録する リンクのコピーリンクがクリップボードにコピーされました!
クラスターが停止しているか、maintenance-mode になっていることを確認してください。以下に例を示します。
clusternode2:rh2adm> hdbnsutil -sr_register --remoteHost=remotehost3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC2 --online --remoteName=DC3 --operationMode=logreplay --force_full_replica --online
clusternode2:rh2adm> hdbnsutil -sr_register --remoteHost=remotehost3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC2 --online --remoteName=DC3 --operationMode=logreplay --force_full_replica --online
この例では、完全なレプリケーションを使用しています。SAP HANA システム管理者は、完全なレプリケーションが必要になる場合を理解しておく必要があります。
6.1.18. フェイルオーバーからの回復 リンクのコピーリンクがクリップボードにコピーされました!
SAP HANA システムレプリケーションのステータスの確認 および プライマリーノードの検出 を参照してください。重要なのは、情報の整合性を確保することです。ノードが systemReplicationStatus.py の出力に含まれておらず、ノードのシステムレプリケーションの状態が異なる場合は、このノードを再登録する必要があるかどうかをデータベース管理者に確認してください。
これを解決する 1 つの方法は、このサイトを新しいセカンダリーとして 再登録 することです。
場合によっては、セカンダリーインスタンスがまだ起動していないことがあります。その後、もう一度再登録する前に、このサイトの登録を解除してください。セカンダリー DC1 の登録を解除する例:
clusternode1:rh2adm> hdbnsutil -sr_unregister --name=DC1
clusternode1:rh2adm> hdbnsutil -sr_unregister --name=DC1
DC1 の再登録例:
clusternode1:rh2adm> hdbnsutil -sr_register --name=DC1 --remoteHost=node2 --remoteInstance=02 --replicationMode=sync --operationMode=logreplay --online
clusternode1:rh2adm> hdbnsutil -sr_register --name=DC1 --remoteHost=node2 --remoteInstance=02 --replicationMode=sync --operationMode=logreplay --online