ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
サーバープロセスとは
Oracle Database には大きく 2 種類のプロセスがあります。バックグラウンドプロセス(DBWn / LGWR / SMON 等、DB 全体の保守を行う)と、サーバープロセス(個々のクライアント要求を処理する)です。サーバープロセスはユーザーセッションごとに SQL を受け取り、解析し、実行し、結果を返す役割を担います。
サーバープロセスの仕事
- クライアント(アプリケーション / sqlplus)から SQL を受信
- パース(構文解析・最適化)— ライブラリキャッシュ参照
- 必要なデータブロックをバッファキャッシュへロード(無ければデータファイルから物理読み込み)
- 実行— 結果セットを構築
- クライアントへ結果を返却
- INSERT/UPDATE/DELETE では REDO エントリを REDO バッファへ書き込み
サーバープロセスはデータファイルを直接書き込まないのがポイント。書き込みは DBWn(DB Writer)、REDO の永続化は LGWR(Log Writer)といったバックグラウンドプロセスが担当します。
接続モード: 専用サーバーと共有サーバー
| 項目 | 専用サーバー(Dedicated) | 共有サーバー(Shared / MTS) |
|---|---|---|
| 対応関係 | クライアント 1 : プロセス 1 | 多 : 少(プール) |
| 仲介 | 無し(直結) | ディスパッチャ + リクエストキュー |
| PGA 配置 | サーバープロセス内 | SGA の Large Pool 内(UGA) |
| 応答速度 | 高速・安定 | キュー待ちが発生しうる |
| リソース効率 | 接続数に比例して増える | 同時接続数が多い OLTP に有利 |
| 典型用途 | 長時間バッチ / 業務 | 大量の短時間 OLTP |
専用サーバーの流れ
クライアントが接続要求 → リスナー(Listener)が新しいサーバープロセスを起動 → 以後そのクライアント専用に SQL を処理。切断時にプロセスも終了。
共有サーバーの流れ
クライアントが接続要求 → リスナーが空いているディスパッチャへ振り分け → ディスパッチャがリクエストをキューへ → 共有サーバープロセスがキューから取り出して処理 → レスポンスをキュー経由で返却。
関連メモリ構造(PGA / UGA)
| 領域 | 内容 | 専用サーバーでの場所 | 共有サーバーでの場所 |
|---|---|---|---|
| PGA | セッション固有の作業領域(ソート / ハッシュ等) | サーバープロセス内 | サーバープロセス内 |
| UGA | セッション変数 / カーソル状態 | PGA 内 | SGA の Large Pool 内 |
| SGA | バッファキャッシュ / 共有プール / REDO バッファ等 | 共有 | 共有 |
確認コマンド
-- セッション一覧(サーバープロセス含む)
SELECT s.sid, s.serial#, s.username, s.machine,
s.program, s.server, s.status, p.spid AS os_pid
FROM v$session s
JOIN v$process p ON p.addr = s.paddr
WHERE s.username IS NOT NULL;
-- 接続モード(DEDICATED / SHARED)
SELECT username, server, count(*)
FROM v$session
WHERE username IS NOT NULL
GROUP BY username, server;
-- PGA 使用状況
SELECT name, value/1024/1024 AS mb
FROM v$pgastat
WHERE name IN ('total PGA allocated','total PGA inuse','maximum PGA allocated');
OS から見たサーバープロセス
Linux/Unix では oracle<SID>_<SPID> または ora_* のような名前で見えます。v$process.spid が OS の PID と対応するため、性能トラブル時は top / ps と突き合わせて特定します。
# 専用サーバーのプロセス
$ ps -ef | grep oracle | grep LOCAL
oracle 12345 1 0 10:00 ? 00:00:01 oracleORCL (LOCAL=NO)
関連トラブルと対処
| 症状 | 原因 / 対処 |
|---|---|
| ORA-12500 / ORA-12520(プロセス起動失敗) | OS の nproc 上限 / Oracle の processes 上限超過。拡張する |
| ORA-04030(PGA メモリ不足) | 大きなソートや CLOB 処理で PGA 不足。pga_aggregate_target 増、SQL チューニング |
| セッションが切れない | アプリのコネクションリーク。プール設定見直し / SQLNET.EXPIRE_TIME |
| 共有サーバーで遅い | ディスパッチャ / 共有サーバープロセス不足。dispatchers / shared_servers 増 |
専用と共有を切り替える
-- 現在の設定を確認(init.ora / spfile)
SHOW PARAMETER dispatchers;
SHOW PARAMETER shared_servers;
-- 共有サーバーを有効化(例: TCP のディスパッチャを 4 個、共有サーバーを 8 個)
ALTER SYSTEM SET dispatchers='(PROTOCOL=TCP)(DISPATCHERS=4)' SCOPE=BOTH;
ALTER SYSTEM SET shared_servers=8 SCOPE=BOTH;
-- クライアント側の接続文字列でも明示できる
-- (SERVER=DEDICATED) / (SERVER=SHARED)
専用サーバーがデフォルトで、明示的に共有サーバーを設定しない限りクライアント接続は常に専用です。短い OLTP が数千〜数万セッション飛んでくるシステムでは共有サーバーが効きますが、解析用 / 集計用のセッションは専用のままにします。
ライフサイクル
- クライアントがネットワーク経由でリスナーに接続要求
- リスナーがサーバープロセスをfork / spawn(専用)または既存ディスパッチャに振る(共有)
- 認証成功後、サーバープロセスがクライアントと直接通信開始
- クライアントから
EXIT/ コネクション断 → サーバープロセス終了 / プールに戻る
関連
- プロセス — 親カテゴリ
- バックグラウンドプロセス — DBWn / LGWR / SMON など
- PGA — プログラム・グローバル領域
- SGA — システム・グローバル領域
- リスナー / tnsnames.ora — クライアント接続
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ユーザープロセス
- サーバープロセス
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?