Oracle Databaseを単一ノード構成で安全・安定に運用したい場合、「Oracle Restart(オラクル・リスタート)」の導入は非常に有効です。Grid Infrastructure(GI)をスタンドアロン構成で導入することで、データベースやASM、リスナーの自動起動・停止・監視・復旧を可能にします。
本記事では、構成、起動・停止方法、gridユーザー、リソース状態確認(crsctl stat res -t)、メリット、注意点まで、実務に役立つ内容を網羅して解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ Oracle Restartとは?
Oracle Restartは、単一ノード環境におけるOracleコンポーネントの自動管理機能です。
| 管理対象 | 説明 |
|---|---|
| Oracle Database | 単一ノードのデータベースインスタンス |
| Oracle ASMインスタンス | ディスクストレージの管理に使用 |
| Oracle Listener | 接続受付を担うネットワークリスナー |
| Oracle Services | srvctl add serviceで登録したサービス群 |
これらを一元的に自動起動/監視/停止するのがOracle Restartの役割です。
■ 構成図(テキスト形式)
+-----------------------------+
| OS(Linux) |
+--------------+--------------+
|
Grid Infrastructure(Restart構成)
|
+--------+--------+
| |
ASM Listener
\ /
+-------+-------+
|
Oracle DB
■ gridユーザーとは?
Oracle Restartでは、gridユーザーがGrid Infrastructure全体を管理します。
| ユーザー | 管理対象 |
|---|---|
grid | GI(Restart)、ASM、リスナー |
oracle | Oracle Database本体 |
gridユーザーの役割
| 項目 | 説明 |
|---|---|
| GIの構成管理 | crsctl, srvctl, asmcmdを使用 |
| ASM操作 | ディスクグループの作成・管理 |
| リソース操作 | Listener, DBなどの起動・停止・構成変更 |
Oracle Databaseを手動で起動/停止するのではなく、Restartがリソースとして制御します。
■ 起動・停止の正しい方法
◾ Restart全体の起動/停止(rootで実行)
| 操作 | コマンド |
|---|---|
| 起動 | crsctl start has |
| 停止 | crsctl stop has |
🔸 crsctl start has 実行時、ASM → Listener → 登録済みのDatabase が自動起動されます。
◾ 個別コンポーネントの起動・停止(gridユーザー)
| 対象 | 起動コマンド | 停止コマンド |
|---|---|---|
| ASM | srvctl start asm | srvctl stop asm |
| Listener | srvctl start listener | srvctl stop listener |
| DB | srvctl start database -d orcl | srvctl stop database -d orcl |
❗ なぜSQL*Plusでのstartup/shutdownはNGなのか?
Oracle Restart環境では、データベースの起動・停止は必ずsrvctlを使う必要があります。
❌ 非推奨:SQL*Plusでの手動操作
SQL> startup;
SQL> shutdown immediate;
これはRestartの監視対象外となるため、以下のような問題が発生します:
crsctl stat res -tで状態が「UNKNOWN」と表示される- Oracle Restartがリカバリや再起動を自動で行えなくなる
- OS再起動時にデータベースが起動されない可能性がある
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
✅ 推奨:srvctlでの操作
srvctl start database -db orcl
srvctl stop database -db orcl
この方法なら、Restartが内部状態を正しく追跡し、正常な監視・復旧が可能です。
[oracle@restart ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 月 5月 26 12:44:05 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> select status from v$instance; ★データベースが起動していない
select status from v$instance
*
行1でエラーが発生しました。:
ORA-01034: ORACLE not available
プロセスID: 0
セッションID: 0、シリアル番号: 0
SQL> exit
切断しました。
[oracle@restart ~]$ su - grid ★grid ユーザーに切り替え
Password:
Last login: Mon May 26 12:41:30 JST 2025 from 192.168.56.1 on pts/0
[grid@restart ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE restart STABLE
ora.LISTENER.lsnr
ONLINE INTERMEDIATE restart Not All Endpoints Re
gistered,STABLE
ora.asm
ONLINE ONLINE restart Started,STABLE
ora.ons
OFFLINE OFFLINE restart STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE restart STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE restart STABLE
ora.orcl.db
1 OFFLINE OFFLINE Instance Shutdown,ST
ABLE ★停止している
--------------------------------------------------------------------------------
[grid@restart ~]$ srvctl start database -db orcl ★起動
[grid@restart ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE restart STABLE
ora.LISTENER.lsnr
ONLINE INTERMEDIATE restart Not All Endpoints Re
gistered,STABLE
ora.asm
ONLINE ONLINE restart Started,STABLE
ora.ons
OFFLINE OFFLINE restart STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE restart STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE restart STABLE
ora.orcl.db
1 ONLINE ONLINE restart Open,HOME=/u01/app/o
racle/product/19.0.0
/dbhome_1,STABLE ★起動
--------------------------------------------------------------------------------
[grid@restart ~]$ su - oracle
Password:
Last login: Mon May 26 12:43:11 JST 2025 on pts/0
[oracle@restart ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 月 5月 26 12:45:21 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> select status from v$instance;
STATUS
------------------------------------
OPEN ★起動している
■ crsctl stat res -t でリソース状態を確認
Restart環境では、以下のコマンドで登録リソースの状態を確認します:
crsctl stat res -t
出力例
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE dbserver
ora.asm
ONLINE ONLINE dbserver
ora.orcl.db
ONLINE ONLINE dbserver
| 項目 | 説明 |
|---|---|
| TARGET | 意図された状態(ONLINE/OFFLINE) |
| STATE | 実際の状態(ONLINE/OFFLINE/UNKNOWN) |
| NAME | リソース名 |
| SERVER | ホスト名(Restartは1台) |
UNKNOWNが表示される場合は、srvctlを使わずに起動・停止した可能性があります。
■ Oracle Restartのメリット
| メリット | 内容 |
|---|---|
| ✅ 自動起動・復旧 | OS起動と同時にDBも自動起動。障害時は自動再起動 |
| ✅ 管理一元化 | srvctl, crsctlで一元管理可能 |
| ✅ ASM・Listener連携 | ストレージ、接続も含めて自動化対象にできる |
| ✅ 作業ミスの防止 | 起動漏れ、手順ミスを削減可能 |
| ✅ 監視とログが充実 | crsctl stat res -tやGIログで原因追跡がしやすい |
■ Oracle Restartの注意点
| 注意点 | 解説 |
|---|---|
| 🚫 RACではない | フェイルオーバー機能はなし。あくまで単一ノード |
| 🧩 SQL*Plusでの操作は非推奨 | startup, shutdownを使うと状態不整合になる |
| 🔧 root操作が必要 | crsctl start/stop hasはrootユーザーで実行 |
| 🧠 自動起動の設定が必要 | srvctl enable で設定しないと起動されない |
| 🔍 定期的なGIパッチ適用 | Restart構成でもGIの保守が必要 |
■ 自動起動の有効化例
srvctl enable database -db orcl
srvctl enable asm
srvctl enable listener
確認:
srvctl config database -db orcl
■ まとめ
Oracle Restartは、単一ノード構成のOracle Database運用を自動化・安定化するための強力な機能です。
gridユーザーによる正しい運用srvctlによる起動・停止crsctl stat res -tによる状態監視
を徹底することで、運用トラブルを未然に防ぎ、より確実でスマートな運用が可能になります。
[参考]
Clusterware管理およびデプロイメント・ガイド




コメント