【完全版】ORA-12541: TNS:no listener エラーの原因と対処法|全パターン徹底解説
- 作成日 2026.06.15
- Oracle Database
Oracle Databaseに接続しようとした時、以下のエラーで弾かれた経験はありませんか?
ORA-12541: TNS:no listener
「リスナーがいません」というシンプルなメッセージですが、実際の原因は多岐にわたります。
- 朝出社したら突然繋がらなくなった
- 開発環境のOracleに接続できない
- Dockerコンテナ内のOracleにアクセスできない
- AWS RDS、OCIのOracleに繋がらない
- リスナーは起動しているはずなのに接続失敗する
- 昨日まで動いていた本番システムが落ちた
本記事では、ORA-12541エラーのすべての原因と対処法を、現場で即使えるトラブルシューティング手順として整理します。リスナーの基礎概念から、lsnrctlコマンドの使い方、listener.ora/tnsnames.oraの設定確認、ファイアウォール対応、Docker・クラウド環境別の対処、プログラム言語別エラーハンドリングまで完全網羅。この1本でORA-12541の悩みが全て解決します。
- 1. 結論:今すぐ試すべき3ステップ
- 2. まず押さえる:Oracleリスナーとは
- 3. ORA-12541の原因カテゴリ
- 4. 【原因①】リスナーが停止している(最頻出)
- 5. 【原因②】接続先のホスト名・ポートが間違っている
- 6. 【原因③】ポートへの疎通がない
- 7. 【原因④】ファイアウォールでブロックされている
- 8. 【原因⑤】listener.ora の設定問題
- 9. 【原因⑥】リスナーは起動しているがサービスが未登録
- 10. 【原因⑦】Docker環境でのORA-12541
- 11. 【原因⑧】クラウド環境でのORA-12541
- 12. lsnrctl コマンド徹底活用
- 13. プログラム言語別 ORA-12541 対処
- 14. 関連エラーと違い
- 15. トラブルシューティング・チェックリスト
- 16. よくある質問(FAQ)
- 16.1. Q1. lsnrctl status は成功するのに、クライアントから接続できません
- 16.2. Q2. リスナーは起動するが、クライアントから接続するとORA-12541になります
- 16.3. Q3. Windowsサーバーで Oracleサービスは動いているのにORA-12541
- 16.4. Q4. Dockerコンテナ内のOracleに繋がりません
- 16.5. Q5. AWS EC2上のOracleに自宅から繋がりません
- 16.6. Q6. リスナーログはどこにありますか?
- 16.7. Q7. リスナーは1521じゃないと駄目ですか?
- 16.8. Q8. 同じネットワーク内のクライアントは繋がるが、別セグメントから繋がりません
- 16.9. Q9. lsnrctl コマンドが見つかりません
- 16.10. Q10. リスナーが頻繁に停止します
- 17. 参考リンク・関連資料
- 18. まとめ
結論:今すぐ試すべき3ステップ
時間がない方向けに、まず試すべき手順を示します。
ステップ1:リスナーの状態を確認
DBサーバー上で:
lsnrctl status
ステップ2:リスナーが停止していたら起動
lsnrctl start
ステップ3:接続先のホスト・ポートが正しいか確認
# クライアントから接続テスト
tnsping ORCL
# ポート疎通確認
telnet hostname 1521
# または
nc -zv hostname 1521
それでも解決しない場合は、以下の詳細な原因分析へ進んでください。
まず押さえる:Oracleリスナーとは
ORA-12541エラーを理解するために、まず**リスナー(Listener)**の役割を整理します。
| 構成要素 | 役割 |
|---|---|
| クライアント | 接続を要求する側(SQL*Plus、JDBC等) |
| リスナー(Listener) | クライアントからの接続要求を受け付ける常駐プロセス |
| データベースインスタンス | 実際のDB処理を行うOracleプロセス群 |
接続フローは次のようになります:
- クライアントがホスト:ポートに接続要求を送る
- リスナーがポート(標準1521)で待ち受け
- リスナーが要求を該当インスタンスに振り分ける
- インスタンスがクライアントとセッション確立
ORA-12541は、この②のステップで失敗したことを意味します。つまり「クライアントが指定したホスト:ポートには到達できたが、そこにリスナーがいない」状態です。
ORA-12541の原因カテゴリ
ORA-12541の原因は大きく以下に分けられます。
| カテゴリ | 原因例 | 頻度 |
|---|---|---|
| リスナー停止系 | サーバー再起動後の起動忘れ、クラッシュ | 最多 |
| 接続先間違い系 | ホスト名・ポート番号誤り、別環境への接続 | 多 |
| ネットワーク系 | ファイアウォール、セキュリティグループ | 多 |
| 設定ファイル系 | listener.ora、tnsnames.oraの不整合 | 中 |
| サービス登録系 | リスナーは起動しているがDBインスタンスが未登録 | 中 |
| 環境固有系 | Docker、クラウド、コンテナネットワーク | 中 |
これらを順番に切り分けるのが効率的なアプローチです。
【原因①】リスナーが停止している(最頻出)
最も多い原因です。サーバー再起動後の起動忘れ、リスナープロセスのクラッシュなどで発生します。
リスナー状態の確認
DBサーバー上で実行:
lsnrctl status
正常な場合の出力例:
LSNRCTL for Linux: Version 21.0.0.0.0 - Production
Status of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 21.0.0.0.0
Start Date ...
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
異常な場合の出力例:
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
リスナーを起動する
lsnrctl start
複数のリスナーが定義されている場合は名前を指定:
lsnrctl start LISTENER_NAME
リスナーの停止・再起動
lsnrctl stop
lsnrctl reload # 設定再読み込み(再起動なし)
サービス・プロセスとして管理されている場合
Linux(systemd)
# 状態確認
sudo systemctl status oracle-listener
# 起動・停止
sudo systemctl start oracle-listener
sudo systemctl stop oracle-listener
# 自動起動の有効化
sudo systemctl enable oracle-listener
⚠️ Oracleではデフォルトでsystemdユニットは作成されないため、手動定義が必要な場合があります。
Windows サービス
services.mscを開いて以下のサービスを確認:
OracleOraDB21Home1TNSListener(Oracle 21cの例)- バージョン・インストール先によって名前は異なる
開始・停止・自動起動の設定が可能です。
プロセスから直接確認
# Linux
ps -ef | grep tnslsnr
# Windows
tasklist | findstr tnslsnr
tnslsnrプロセスが見当たらなければ、リスナーは起動していません。
【原因②】接続先のホスト名・ポートが間違っている
クライアント側の接続文字列で指定しているホスト名・ポートが、実際のサーバーと違うケースです。
接続文字列を再確認
Easy Connect形式
sqlplus user/password@//hostname:1521/service_name
tnsnames.ora 経由
sqlplus user/password@ORCL
ORCLの中身はtnsnames.oraで定義されています:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
ここのHOSTとPORTが現状のサーバーと一致しているか確認します。
tnsnames.oraの場所
# Linux
echo $ORACLE_HOME/network/admin/tnsnames.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora
# Windows
echo %ORACLE_HOME%\network\admin\tnsnames.ora
type %ORACLE_HOME%\network\admin\tnsnames.ora
または環境変数TNS_ADMINで別の場所が指定されている場合:
echo $TNS_ADMIN
名前解決のチェック
ホスト名がIPアドレスに正しく解決されているか:
# Linux/Mac
nslookup dbserver.example.com
dig dbserver.example.com
# Windows
nslookup dbserver.example.com
DNSが壊れている可能性がある場合は、/etc/hostsに明示的に追加するのも切り分け方法です。
【原因③】ポートへの疎通がない
ホスト名解決はできても、ポート1521へのTCP接続が成立しないケースです。
ポート疎通確認コマンド
telnet(古典的)
telnet dbserver 1521
成功すると黒画面で待機、失敗するとすぐ閉じられます。
nc(ncat / netcat)
nc -zv dbserver 1521
# 成功例: Connection to dbserver 1521 port [tcp/*] succeeded!
PowerShell(Windowsクライアント)
Test-NetConnection -ComputerName dbserver -Port 1521
tnsping(Oracle純正)
tnsping ORCL
tnsnames.oraの定義をもとに接続テストします。OKが返れば疎通あり。
疎通失敗の原因切り分け
| 状況 | 推測される原因 |
|---|---|
pingは通るがtelnet 1521は失敗 | ファイアウォール、リスナー停止、ポート違い |
pingも通らない | ネットワーク経路断、ルーティング問題 |
nslookup失敗 | DNS設定問題 |
| ローカルからは成功、リモートから失敗 | リスナーのリッスンアドレス設定問題 |
【原因④】ファイアウォールでブロックされている
DBサーバー側、クライアント側、または中間のネットワーク機器でブロックされているケースです。
Linux(iptables / firewalld)
# firewalld の状態
sudo firewall-cmd --state
sudo firewall-cmd --list-all
# 1521ポートを許可
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
# iptables の場合
sudo iptables -L -n | grep 1521
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
Windows Defender ファイアウォール
# 1521ポート許可ルール作成
New-NetFirewallRule -DisplayName "Oracle Listener" `
-Direction Inbound -Protocol TCP -LocalPort 1521 -Action Allow
# 既存ルール確認
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*Oracle*"}
クラウド環境(後述)
AWS、Azure、OCIなどクラウドプロバイダ独自のネットワーク設定も確認が必要です。
【原因⑤】listener.ora の設定問題
リスナー設定ファイル listener.ora の内容が不適切な場合のエラーです。
listener.ora の場所
# Linux
$ORACLE_HOME/network/admin/listener.ora
# Windows
%ORACLE_HOME%\network\admin\listener.ora
典型的な listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/21c/dbhome_1)
(SID_NAME = ORCL)
)
)
よくある設定ミス
| ミス | 影響 |
|---|---|
HOSTに間違ったホスト名/IP | リスナー起動失敗 or 外部からアクセス不可 |
HOST = localhostのまま | 外部から接続できない |
PORT重複 | ポート競合で起動失敗 |
| カッコの対応ミス | パース失敗で起動不可 |
ORACLE_HOMEパス誤り | リスナー起動はするがDB登録失敗 |
設定変更後の反映
lsnrctl reload
# または完全再起動
lsnrctl stop
lsnrctl start
外部接続を有効にする設定例
外部からの接続を許可するにはHOSTをサーバーのIPアドレスまたは0.0.0.0に設定:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
)
)
0.0.0.0は「すべてのインターフェースで待ち受け」を意味します。
【原因⑥】リスナーは起動しているがサービスが未登録
lsnrctl statusで「LISTENER」自体は起動しているのに、Services Summaryに該当サービスがない場合があります。
Services Summaryの確認
lsnrctl services
サービスがリストされない、またはstatus BLOCKEDになっている場合は、DBインスタンスがリスナーに登録できていません。
動的サービス登録の確認
Oracle 12c以降、DBインスタンスは起動時に自動でリスナーへ登録します(PMONプロセス経由)。登録が失敗している場合の原因:
LOCAL_LISTENER パラメータ確認
SHOW PARAMETER local_listener
ポート1521以外で動作させている場合、明示的に指定が必要です:
ALTER SYSTEM SET LOCAL_LISTENER =
'(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521))' SCOPE=BOTH;
手動でリスナーに登録
ALTER SYSTEM REGISTER;
DBインスタンスが起動していない
lsnrctl statusでサービスがあっても、status が BLOCKED 等の場合はDBインスタンス側に問題があります。
-- DBインスタンス状態確認(SYSDBA接続後)
SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;
STATUS = MOUNTED で OPENしていない、または完全停止していると、リスナーは登録を受け付けてもクライアント接続は失敗します。
-- DBを起動
STARTUP
-- すでに起動してマウントだけならOPEN化
ALTER DATABASE OPEN;
【原因⑦】Docker環境でのORA-12541
Docker内で動かしているOracleに対する接続失敗は、特殊な原因があります。
ポートマッピング確認
docker ps
PORTS列で0.0.0.0:1521->1521/tcpのように明示的にホストとマッピングされているか確認:
# 1521をホストにマッピングして起動した例
docker run -d -p 1521:1521 --name oracle-xe \
container-registry.oracle.com/database/express:21.3.0-xe
ポート未公開なら、ホストOSや他コンテナから直接接続できません。
コンテナ内リスナーの確認
docker exec -it oracle-xe lsnrctl status
コンテナ間ネットワーク
別コンテナから接続する場合、Docker Networkで通信できる必要があります:
# 同じネットワークに参加
docker network create oracle-net
docker run -d --network oracle-net --name oracle-xe ...
docker run -it --network oracle-net app-container
# app-containerからは "oracle-xe" というホスト名でアクセス可能
docker-compose の場合
services:
oracle:
image: container-registry.oracle.com/database/express:21.3.0-xe
ports:
- "1521:1521"
environment:
ORACLE_PWD: password
app:
depends_on:
- oracle
# appからは "oracle" でアクセス
Oracle Container公式
Oracle Container Registry(公式コンテナ)の利用方法はOracle Container Registryを参照してください。
【原因⑧】クラウド環境でのORA-12541
クラウドの場合、ネットワークセキュリティ設定が原因の場合が多いです。
AWS(EC2上のOracle)
セキュリティグループ確認
- AWS Console → EC2 → セキュリティグループ
- インスタンスにアタッチされているSGを選択
- インバウンドルールにTCP 1521ポートの許可があるか確認
- 送信元IPまたはSGが接続元と一致しているか確認
ネットワークACL確認
サブネットレベルでブロックされていないか: VPC → ネットワークACL → 関連サブネットを確認
AWS RDS for Oracle
RDSの場合、リスナーはAWS側が管理しており、lsnrctlでの直接操作はできません。
よくある原因
- セキュリティグループで1521が許可されていない
- VPCピアリング設定不備(別VPCから接続時)
- エンドポイントが間違っている
- DB停止中(RDSコンソールで状態確認)
接続文字列の例
sqlplus admin/password@//mydb.xxxxx.ap-northeast-1.rds.amazonaws.com:1521/ORCL
RDSのエンドポイントは AWS Console から確認できます。
Oracle Cloud Infrastructure (OCI)
OCIの場合:
- セキュリティリストまたはNSGで1521ポート開放
- VCN(仮想クラウドネットワーク)のサブネット設定
- Oracle Autonomous Databaseは専用の接続情報・ウォレットファイル使用
詳細はOCI Database 公式ドキュメントを参照。
Microsoft Azure
Azure SQL Database に Oracle は提供されないため、通常はAzure VM上のOracleとなります。
- **ネットワークセキュリティグループ(NSG)**でポート許可
- Azure Bastion経由の接続も検討
lsnrctl コマンド徹底活用
リスナー管理に必須のコマンドです。よく使うサブコマンドを整理します。
よく使うlsnrctlコマンド一覧
# 状態確認
lsnrctl status
# サービス一覧
lsnrctl services
# 起動・停止
lsnrctl start
lsnrctl stop
# 設定再読み込み
lsnrctl reload
# バージョン確認
lsnrctl version
# ヘルプ
lsnrctl help
# 詳細ログ取得
lsnrctl trace admin
リスナーログの場所
# Linux
$ORACLE_BASE/diag/tnslsnr/$(hostname)/listener/trace/listener.log
# Windows
%ORACLE_BASE%\diag\tnslsnr\<HOSTNAME>\listener\trace\listener.log
エラー発生時刻のログを確認すると、より詳細な情報が取得できます。
1521以外のポートで動作させる場合
listener.oraを編集してPORTを変更後:
lsnrctl stop
lsnrctl start
DB側にも反映が必要:
ALTER SYSTEM SET LOCAL_LISTENER =
'(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1523))' SCOPE=BOTH;
ALTER SYSTEM REGISTER;
プログラム言語別 ORA-12541 対処
Python(python-oracledb)
import oracledb
try:
conn = oracledb.connect(
user="scott",
password="tiger",
dsn="dbserver:1521/ORCLPDB1"
)
except oracledb.DatabaseError as e:
error, = e.args
if error.code == 12541:
print("ORA-12541: リスナー未稼働の可能性")
print("DBサーバー側で 'lsnrctl status' を実行してください")
print("または、ホスト名・ポート番号を確認してください")
Java(JDBC)
try {
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@//dbserver:1521/ORCLPDB1",
"scott", "tiger"
);
} catch (SQLException e) {
if (e.getErrorCode() == 12541) {
System.err.println("ORA-12541: リスナーに到達不可");
System.err.println("以下を確認してください:");
System.err.println("- DBサーバーが稼働中か");
System.err.println("- 'lsnrctl status' でリスナー確認");
System.err.println("- ファイアウォール設定");
}
}
Node.js(node-oracledb)
try {
const conn = await oracledb.getConnection({
user: 'scott',
password: 'tiger',
connectString: 'dbserver:1521/ORCLPDB1'
});
} catch (err) {
if (err.errorNum === 12541) {
console.error('ORA-12541: リスナー接続失敗');
console.error('対象ホスト・ポートに到達できません');
}
}
.NET(ODP.NET)
try {
using var conn = new OracleConnection(connStr);
conn.Open();
} catch (OracleException ex) when (ex.Number == 12541) {
Console.WriteLine("リスナーに到達できません");
Console.WriteLine("サーバー稼働状態とネットワークを確認してください");
}
関連エラーと違い
ORA-12541と混同しやすいエラーを整理します。
ORA-12154: TNS: could not resolve the connect identifier
接続識別子(TNSエイリアス)を名前解決できないエラー。tnsnames.oraに該当エントリがない、または書式エラーが原因。
ORA-12541との違い: 12541はリスナーまで到達したが応答なし、12154はそもそもリスナーのアドレス自体が不明。
詳細は本シリーズの[ORA-12154解説記事]を参照。
ORA-12170: TNS:Connect timeout occurred
ネットワーク経路の問題やファイアウォールでTCP接続がタイムアウトした場合。lsnrctlは応答するがクライアントから到達できない時に出やすい。
ORA-12514: TNS:listener does not currently know of service requested
リスナーは応答するが、指定したサービス名が未登録の場合。DB起動直後やインスタンス側問題で発生。
確認:
lsnrctl services
対処:
ALTER SYSTEM REGISTER;
ORA-12505: TNS:listener does not currently know of SID
ORA-12514の SID 指定版。サービス名ではなく SID で接続している場合に出る。
ORA-12560: TNS:protocol adapter error
ローカル接続で発生する。ORACLE_SID環境変数の未設定や、ローカルプロトコル(IPC)の問題が原因。
トラブルシューティング・チェックリスト
ORA-12541が出た時に上から順にチェックする手順です。
- DBサーバー側でリスナー状態確認:
lsnrctl status - リスナー停止時は起動:
lsnrctl start - クライアント→サーバー疎通確認:
ping、telnet、nc -zv - ホスト名・ポートが正しいか: tnsnames.oraまたは接続文字列再確認
- ファイアウォール確認: クライアント側・サーバー側・経路全部
- listener.oraの設定確認: HOSTパラメータ、PORT
- サービス登録確認:
lsnrctl services - DBインスタンス起動確認:
STARTUP状態 - 環境固有の問題確認: Docker、クラウド設定
- リスナーログ確認:
listener.logで詳細情報
これでも解決しないなら、ネットワーク経路や中継機器の問題を疑ってください。
よくある質問(FAQ)
Q1. lsnrctl status は成功するのに、クライアントから接続できません
複数の可能性があります:
- リスナーはlocalhostのみリッスンしている(
listener.oraのHOST設定確認) - ファイアウォールでブロック
- ネットワーク経路で遮断
- ホスト名解決問題(DNS)
サーバー上で netstat -an | grep 1521 または ss -tlnp | grep 1521 を実行し、どのアドレスでリッスンしているか確認してください。
Q2. リスナーは起動するが、クライアントから接続するとORA-12541になります
リスナーがlocalhostだけでリッスンしている可能性が高いです。listener.oraのHOSTを実際のホスト名/IPまたは0.0.0.0に変更し、lsnrctl reloadで反映してください。
Q3. Windowsサーバーで Oracleサービスは動いているのにORA-12541
OracleOraDB...TNSListenerサービスが停止している可能性。services.mscで確認し、開始してください。「Oracle DB自体のサービス」と「Listenerサービス」は別物です。
Q4. Dockerコンテナ内のOracleに繋がりません
最頻出はポートマッピング忘れです。docker run時に-p 1521:1521が必要。Docker Composeならports:セクションに記載。docker psでPORTSを確認してください。
Q5. AWS EC2上のOracleに自宅から繋がりません
セキュリティグループのインバウンドルールに自分の自宅IPからの1521ポート許可を追加。動的IPの場合は変動するため、固定IPもしくはVPN経由のアクセスを検討してください。
Q6. リスナーログはどこにありますか?
# 場所確認コマンド
lsnrctl status | grep "Listener Log File"
通常は$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/listener.logにあります。エラー発生時刻のログを見ると詳細情報が得られます。
Q7. リスナーは1521じゃないと駄目ですか?
いいえ、任意のポート(1024以上推奨)に変更可能です。ただし変更したら:
listener.oraのPORT変更- DB側で
ALTER SYSTEM SET LOCAL_LISTENER - クライアント側tnsnames.ora更新
- ファイアウォール許可ポート変更
を全て対応する必要があります。標準1521のままがトラブル少なくお勧めです。
Q8. 同じネットワーク内のクライアントは繋がるが、別セグメントから繋がりません
ルーター/ファイアウォールでセグメント間通信がブロックされている可能性。ネットワーク管理者にACL/ルーティング確認を依頼してください。
Q9. lsnrctl コマンドが見つかりません
ORACLE_HOME環境変数が設定されていない、またはPATHに$ORACLE_HOME/binが含まれていない可能性:
export ORACLE_HOME=/u01/app/oracle/product/21c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
.bashrcに追加すれば永続化します。
Q10. リスナーが頻繁に停止します
主な原因:
- メモリ不足(OOM Killerに殺されている)
- ディスク満杯(リスナーログ書き込み失敗)
- リスナーログサイズ巨大化
- バグ(パッチ未適用)
リスナーログ・システムログ(/var/log/messages等)を確認し、根本原因を特定してください。
参考リンク・関連資料
Oracle公式ドキュメント
- Oracle Database Error Messages – ORA-12541 – 公式エラー解説
- Oracle Database Net Services Reference – リスナー設定完全リファレンス
- Oracle Database Net Services Administrator’s Guide – Net Services管理ガイド
- Configuring and Administering Oracle Net Listener – リスナー管理
コンテナ・クラウド
- Oracle Container Registry – 公式Oracleコンテナ
- Oracle Database on Docker (GitHub) – 公式Dockerイメージ
- Amazon RDS for Oracle – AWS公式
- OCI Database 公式ドキュメント – OCI Database
関連エラー記事(本サイト)
- ORA-01017: invalid username/password エラー対処 – 認証エラー
- ORA-12154: TNS could not resolve エラー対処(準備中)
- ORA-00942: 表またはビューが存在しません エラー対処(準備中)
関連Oracle記事(本サイト)
- [Oracleバージョン確認の方法]
- [Oracleユーザー一覧の取得方法]
- [Oracleテーブル一覧の取得方法]
- [Oracle directoryの確認方法]
まとめ
ORA-12541はOracle接続エラーの中で最頻出のひとつですが、原因を体系的に切り分ければ確実に解決できるエラーです。要点を再整理します。
- まずリスナー状態確認:
lsnrctl statusが基本動作 - 疎通確認は段階的に:
ping→telnet/nc→tnsping - listener.oraのHOSTパラメータ: localhost固定だと外部接続不可
- サービス登録確認:
lsnrctl servicesで BLOCKED でないか - ファイアウォール: クライアント・サーバー・経路すべて
- Docker/クラウド: 環境固有のネットワーク設定確認
- ログを見る:
listener.logには詳細情報が記録される
これらの知識は、Oracleの開発環境構築・本番運用・トラブル対応に必須です。本記事をブックマークしておけば、ORA-12541に遭遇した時の対応が大幅に効率化されます。
本記事は2026年6月時点の情報をもとに、Oracle Database 19c / 21c / 23ai / 26ai での動作確認・公式ドキュメントに基づき作成しています。バージョンやプラットフォームによって設定方法が異なる場合があるため、最新の情報はOracle公式ドキュメントもあわせてご確認ください。
-
前の記事
Ubuntuで大容量ファイルを調査する方法 | 効率よく調査する方法 2026.06.15
-
次の記事
【完全版】ORA-12154: TNS:could not resolve the connect identifier specified エラーの原因と対処法|Oracle接続識別子エラー全パターン徹底解説 2026.06.16
コメントを書く