ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
ユーザープロセスとは
Oracle におけるユーザープロセスとは、Oracle データベースに接続するクライアント側のプロセスを指します。SQL*Plus、Oracle SQL Developer、JDBC アプリケーション、Web アプリケーションサーバなど、データベースに対して SQL を投げる側のプロセスがすべて該当します。
ユーザープロセスは Oracle インスタンス(メモリ + バックグラウンドプロセス群)の外側に存在します。データベースが動いているサーバマシンと同じホストに存在することもあれば、ネットワーク経由で別のホストから接続することもあります。
サーバープロセスとの関係
ユーザープロセスは SQL を「依頼する側」、サーバープロセスは SQL を「実行する側」です。クライアントが接続を確立すると、Oracle 側にそのセッション用のサーバープロセスが用意され、両者がペアでやり取りを行います。
| 項目 | ユーザープロセス | サーバープロセス |
|---|---|---|
| 役割 | SQL を依頼するクライアント | SQL を実行する Oracle 側プロセス |
| 存在する場所 | クライアント側ホスト(同一ホストでも可) | DB サーバホスト |
| 起動タイミング | アプリ / ツールの起動時 | クライアント接続時 |
| 例 | SQL*Plus / JDBC / OCI アプリ | oracle |
接続フローの全体像
- クライアント側でユーザープロセス(例: SQL*Plus)が起動する
- リスナー(
LISTENER)に接続要求が送られる - リスナーがサーバープロセスを起動 or 既存プロセスに割り当て
- ユーザープロセスとサーバープロセスが直接通信を開始
- セッションが終了したらサーバープロセスは終了 or プールに戻る
専用サーバー構成と共有サーバー構成
ユーザープロセスとサーバープロセスの結びつきは Oracle の接続モードで変わります。
| 構成 | 関係 | 特徴 |
|---|---|---|
| 専用サーバー(Dedicated) | 1 ユーザープロセス ↔ 1 サーバープロセス | 標準構成。応答が速いがプロセス数が増える |
| 共有サーバー(Shared) | 多数のユーザープロセス ↔ ディスパッチャ ↔ 少数のサーバープロセス | 同時接続数が多いシステム向き。リソース節約 |
多くの OLTP システムは専用サーバー構成、Web アプリのように大量の短時間接続を捌くシステムは共有サーバー構成またはコネクションプーリングで設計されます。
確認方法
セッション一覧
-- 現在接続中のセッション
SELECT sid, serial#, username, machine, program, status
FROM v$session
WHERE type = 'USER';
machine がクライアント側ホスト名、program がユーザープロセスの実行ファイル名(例: sqlplus.exe、JDBC Thin Client)になります。
OS プロセスとの突き合わせ
SELECT s.sid, s.serial#, s.username, s.program,
p.spid AS server_process_id
FROM v$session s
JOIN v$process p ON s.paddr = p.addr
WHERE s.type = 'USER';
SPID は OS 上のサーバープロセス ID(Linux なら ps -ef | grep ora_ で見えるプロセス)です。問題のあるセッションを OS レベルで kill する際にも使います。
ユーザープロセス終了時の挙動
クライアント側のユーザープロセスが落ちると、対応するサーバープロセスも通常は終了します。終了時に未コミットのトランザクションがあれば自動的にロールバックされます。これにより、クライアントクラッシュでもデータの整合性は保たれます。
セッションを強制終了
-- セッションを切断(次回 SQL 実行時に切れる)
ALTER SYSTEM KILL SESSION 'sid,serial#';
-- 即時切断
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
-- DBA がプロセスを直接切断(11gR2 以降)
ALTER SYSTEM DISCONNECT SESSION 'sid,serial#' IMMEDIATE;
よくある混同
| 混同しやすい用語 | 正しい意味 |
|---|---|
| ユーザープロセス と バックグラウンドプロセス | ユーザープロセスはクライアント側、バックグラウンドは DBWR / LGWR など Oracle インスタンスの内部プロセス |
| ユーザープロセス と サーバープロセス | ユーザープロセス = クライアント、サーバープロセス = Oracle 側の SQL 実行プロセス |
| ユーザープロセス と セッション | セッションは Oracle 側に作られる論理的な接続単位。1 つのユーザープロセスから複数セッションを張ることもある |
FAQ
Q: SQL*Plus を 2 つ起動したら、ユーザープロセスは 2 つ?
A: はい。プロセス単位なので、起動した sqlplus の数だけユーザープロセスが存在します。
Q: コネクションプールを使うと、ユーザープロセスは何個?
A: Web アプリの場合、AP サーバが 1 つのユーザープロセス内で複数の接続を保持します。サーバープロセス(Oracle 側)の数はプールサイズと同等になります。
Q: V$SESSION と V$PROCESS、どちらを見ればいい?
A: 接続情報・クライアント情報は V$SESSION、OS プロセスや使用メモリの情報は V$PROCESS。両方を paddr = addr で結合して見るのが定番です。
関連
- プロセス — 親カテゴリ
- サーバープロセス — SQL を実行する Oracle 側プロセス
- バックグラウンドプロセス — DBWR / LGWR / SMON / PMON など
- リスナー — クライアント接続要求を受け付ける
- セッション — V$SESSION による接続単位の管理
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ユーザープロセス
- サーバープロセス
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?