SAP HANA Administration
SAP HANAの起動・停止手順|hdb startと停止コマンドの使い方
SAP HANAの起動・停止について、HDBコマンド、sapcontrol、startsap・stopsap、テナントデータベースの操作、停止前後の確認方法を体系的に解説します。
SAP HANAの再起動や計画停止では、OS上のプロセスを止めるだけでなく、接続状況、実行中のジョブ、テナントデータベースの状態、起動後のサービス状態まで確認する必要があります。特にSAP HANA 2.0では、システムデータベースとテナントデータベースを分けて考えることが重要です。
この記事では、Linux上のSAP HANAを対象に、HDB start・HDB stop、sapcontrol、startsap・stopsapの使い分けと、実施前後のチェックポイントを説明します。環境によって利用できるコマンドや権限が異なるため、実際の運用ではインストール構成と社内手順を優先してください。
SAP HANAの起動・停止を理解する
SAP HANAの起動・停止は、主に次の3つの単位で考えます。
| 操作単位 | 対象 | 主な確認ポイント |
|---|---|---|
| システム全体 | HANAインスタンスの全サービス | ネームサーバー、インデックスサーバー、プリプロセッサなどの状態 |
| データベース | システムデータベースまたはテナント | 対象データベースだけを開始・停止できているか |
| ホスト・OS | HANAホストや仮想マシン | OS、ファイルシステム、ネットワークが正常か |
単一コンテナ構成では、インスタンスの開始・停止がそのままデータベースの利用可否につながります。一方、MDC(マルチデータベースコンテナ)では、HANAシステムのサービスが稼働していても、特定のテナントだけが停止している場合があります。
操作前には、対象SID、インスタンス番号、ホスト名、対象データベース名を確認します。インスタンス番号を誤ると、意図しないシステムに対してコマンドを実行する可能性があります。
停止前に確認する項目
計画停止では、まずアプリケーション担当者と停止時間を調整します。SAPアプリケーション、バッチ、ETL、バックアップ、レプリケーションなどが稼働している場合、突然停止すると処理の再実行や整合性確認が必要になることがあります。
停止前の基本チェックは次のとおりです。
- 対象のSID、ホスト、インスタンス番号を確認する
- ログオン中のユーザーやアプリケーション接続を確認する
- 長時間実行中のSQLやバッチがないか確認する
- バックアップ、ログバックアップ、システムレプリケーションの処理状況を確認する
- メンテナンス対象と停止対象が一致しているか確認する
- 停止後に実施する起動確認と業務テストを準備する
バックアップの実行中に停止する必要がある場合は、処理の状態と再開方法を先に確認します。バックアップの世代管理や復旧手順については、SAP HANAのバックアップとリカバリも参照してください。
接続数やセッションの確認にはSQLを使えます。たとえば、管理権限を持つユーザーでSQLコンソールから次のような確認を行います。
SELECT CONNECTION_ID, USER_NAME, CLIENT_HOST, CONNECTION_STATUS
FROM SYS.M_CONNECTIONS
ORDER BY CONNECTION_ID;
実行中のSQLやトランザクションを確認し、利用者への通知後に接続を段階的に減らします。強制的な切断は、アプリケーション側の処理状況を確認してから実施してください。
HDBコマンドでSAP HANAを起動・停止する
SAP HANAのインストール環境では、SIDの管理ユーザーでHDBコマンドを利用できることがあります。一般的な形式は次のとおりです。
su - <sid>adm
HDB start
HDB stop
<sid>admは実際のSIDに合わせて置き換えます。HDB startはインスタンスのサービスを開始し、HDB stopはインスタンスを停止します。通常は、SAP HANAのソフトウェアディレクトリや管理ユーザーの環境変数が正しく設定されている状態で実行します。
HDBは環境によって実体や配置が異なるため、コマンドが見つからない場合は、PATH、ユーザー、インスタンスのインストール先を確認します。rootユーザーで直接実行するのではなく、原則としてSAP HANAの管理ユーザーと、承認された運用手順を使います。
起動後は、プロセスが存在するだけでなく、各サービスが正常状態になっているかを確認します。停止の場合も、コマンドが終了したことだけで完了と判断せず、クライアントから接続できない状態になったか、関連サービスが停止したかを確認します。
HDB stopの実行時に、未完了の処理や接続が残っていると、完了まで時間がかかることがあります。業務影響を抑えるには、まずアプリケーションを停止し、その後にデータベースを停止する順序が一般的です。
sapcontrolでサービス状態を確認する
SAPControlは、SAPインスタンスの状態確認や開始・停止に使われる代表的な管理インターフェースです。実行例は次のとおりです。
sapcontrol -nr <instance_number> -function GetProcessList
sapcontrol -nr <instance_number> -function StartSystem
sapcontrol -nr <instance_number> -function StopSystem
GetProcessListでは、各サービスのプロセス名、状態、起動時刻などを確認できます。StartSystemとStopSystemでは、指定したインスタンスの起動・停止を要求します。環境によってはホスト名、ユーザー認証、HTTPS設定などの追加オプションが必要です。
停止後にGetProcessListを実行して、サービスが停止状態になったことを確認します。起動後は、すべての必須サービスがGREENになっているかを確認し、GRAYやYELLOWが残る場合は、サービスログとトレースを調べます。ログの読み方を整理する場合は、SAP HANAのトレースファイル確認方法が役立ちます。
startsapとstopsapが導入されている環境では、次のように実行します。
startsap HDB <instance_number>
stopsap HDB <instance_number>
これらのラッパースクリプトは、環境やSAP HANAのバージョンによって動作や推奨度が異なります。新しい運用設計では、利用可能な管理インターフェースとSAPの保守方針を確認し、組織で標準化した方法を選択してください。
テナントデータベースだけを起動・停止する
MDC環境でシステムデータベースは稼働したまま、テナントデータベースだけを停止または開始したい場合があります。この場合、インスタンス全体を停止するコマンドではなく、対象テナントを指定した操作を検討します。
システムデータベースのSQLコンソールから、権限とバージョンに応じて次のようなSQLを実行できます。
ALTER SYSTEM STOP DATABASE <tenant_database_name>;
ALTER SYSTEM START DATABASE <tenant_database_name>;
実行前に、対象が本当にテナントデータベースであること、接続先がシステムデータベースであること、必要なシステム権限を持っていることを確認します。データベース名に特殊文字が含まれる場合や、環境のSQL構文が異なる場合は、該当バージョンの製品ドキュメントを確認してください。
テナントの起動後は、システムビューやSQLクライアントから接続できることを確認します。アプリケーションの接続先、ポート、ユーザー、証明書、接続プールの状態も確認してください。システムデータベースが稼働中でも、テナントのサービスが業務利用可能とは限りません。
起動後の健全性を確認する
起動後の確認は、サービス状態、データベース状態、接続、アプリケーションの順番で行うと整理しやすくなります。
サービス状態
GetProcessListや環境標準の監視方法で、必要なHANAサービスが稼働していることを確認します。サービスが起動していても、再起動を繰り返している場合や、特定のロールが未完了の場合があります。
データベース状態
システムデータベースと各テナントの状態を確認します。テナントが意図したモードで開始されているか、読み取り専用になっていないか、必要なサービスが割り当てられているかを確認します。
SQL接続
管理者用の接続だけでなく、業務用ユーザーやアプリケーションの接続も確認します。接続確認には、hdbsqlの基本コマンドと使い方を使った簡単なSQL実行を組み込めます。
hdbsql -n <host>:<port> -u <user> -p '<password>' "SELECT CURRENT_UTCTIMESTAMP FROM DUMMY"
パスワードをコマンドラインに直接記述すると、シェル履歴やプロセス情報に残る可能性があります。実運用では、認証情報を安全に扱える方法を選び、サンプルのパスワードをそのまま利用しないでください。
アプリケーション確認
SAPアプリケーションや連携処理から、代表的な読み取り・更新処理を確認します。起動直後は接続プールの再確立、ジョブの再開、認証トークンの更新が必要になることがあります。
停止や起動に失敗したときの切り分け
コマンドがエラーになった場合は、メッセージだけで判断せず、実行ユーザー、対象インスタンス、サービス状態、ログ、OSリソースを順に確認します。
コマンドが見つからない
HDB: command not foundなどが表示される場合は、SAP HANAの管理ユーザーでログインしているか、環境変数が読み込まれているかを確認します。複数のSIDが同一ホストにある場合、別のインストール先を参照していないかも確認します。
サービスが起動しない
ディスク容量、ファイルシステムのマウント、メモリ、ポート競合、OSの時刻、権限、証明書の有効期限を確認します。トレースファイルには、サービスが終了した理由や依存サービスの状態が記録されていることがあります。
メモリ不足が疑われる場合は、単純に再起動を繰り返すのではなく、割り当て、消費量、最近のワークロードの変化を確認します。メモリの監視項目については、SAP HANAのメモリ使用量を確認する方法も参照してください。
テナントだけ接続できない
システムデータベースが稼働していても、テナントの状態、SQLポート、接続ユーザー、ライセンス、証明書、ネットワークを個別に確認します。テナント名の誤りや、システムデータベースとテナントの接続先を取り違えているケースもあります。
停止処理が長い
残っている接続、未完了トランザクション、バックアップ、レプリケーション、I/O待ちを確認します。業務影響を考慮せずにプロセスを強制終了すると、再起動時の復旧処理や調査範囲が広がる可能性があります。強制終了は、承認された緊急手順とSAPのサポート方針に従って実施してください。
安全な運用手順にする
起動・停止作業は、単発のコマンドではなく、変更管理の手順として標準化すると安全性が高まります。作業票には、対象システム、作業者、開始予定時刻、停止理由、実行コマンド、確認結果、ロールバック方針を記録します。
推奨される流れは次のとおりです。
- 変更申請と関係者への通知を完了する
- 対象SID、インスタンス番号、ホスト、テナント名を相互確認する
- 接続、ジョブ、バックアップ、レプリケーションの状態を記録する
- アプリケーションを停止し、HANAを計画停止する
GetProcessListなどで停止結果を確認する- 必要な作業を実施する
- HDBまたは標準化した管理方法で起動する
- サービス、データベース、SQL、アプリケーションを順に確認する
- 監視と業務処理を再開し、結果を記録する
本番環境では、作業前後の監視アラートを確認し、停止中のアラートを障害と誤認しないようにします。起動後にアラートが継続する場合は、CPU、メモリ、ディスク、サービス、接続、バックアップなどの関連情報をまとめて確認します。
まとめ
SAP HANAの起動・停止では、HDB start・HDB stopだけを覚えるのではなく、対象範囲と確認方法を理解することが重要です。インスタンス全体を操作するのか、テナントだけを操作するのかで、適切な手順は変わります。
実施前は接続と実行中処理を確認し、実施中は対象SIDとインスタンス番号を再確認し、実施後はサービス、データベース、SQL、アプリケーションの順で健全性を確認します。エラーが発生した場合は、ログやトレース、OSリソースを使って原因を切り分け、強制終了を安易に選択しないことが安全な運用につながります。