Oracle Restartガイド:構成・起動停止・gridユーザー・crsctl stat res -t・メリット・注意点まで

Oracle Master Gold

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 Servicessrvctl add serviceで登録したサービス群

これらを一元的に自動起動/監視/停止するのがOracle Restartの役割です。


■ 構成図(テキスト形式)

+-----------------------------+
| OS(Linux) |
+--------------+--------------+
|
Grid Infrastructure(Restart構成)
|
+--------+--------+
| |
ASM Listener
\ /
+-------+-------+
|
Oracle DB

■ gridユーザーとは?

Oracle Restartでは、gridユーザーがGrid Infrastructure全体を管理します。

ユーザー管理対象
gridGI(Restart)、ASM、リスナー
oracleOracle 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ユーザー)

対象起動コマンド停止コマンド
ASMsrvctl start asmsrvctl stop asm
Listenersrvctl start listenersrvctl stop listener
DBsrvctl start database -d orclsrvctl 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管理およびデプロイメント・ガイド

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました