

Oracle Database
19cをWindows環境にインストールし、コマンドプロンプトを起動してSQL*Plusで「SYS」や「SYSTEM」アカウントからログインを試みた際に、以下のエラーが出ました。

[code]

    ERROR:
    ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
    
[/code]

SQL*Plusでユーザ名とパスワードを同時に指定しても、別々に指定しても上記エラーが出ました。  
原因を調べてみてもピンとくるようなものがよくわからず、途方に暮れております。

初歩的な質問かもしれませんが、ログインできるようにするための解決方法をアドバイスしていただけませんでしょうか。

サービスの状態を確認したところ、Oracleと名の付くものは「OracleRemExecServiceV2」のみで状態が「実行中」です。  
OracleサービスとOracleリスナーは見当たりませんでした。


CC BY-SA 4.0
2021-08-11T13:23:28.890
80727
2023-11-13T17:09:26.183
2022-05-04T05:08:17.993
3060
47348
question
windows oracle
Oracle Database 19c をインストール後、sqlplusでログインしようとした際に ERROR : ORA-12560 が発生する


OracleDB自体が起動していない場合もこのエラーが出るようです。

[ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました | オラクルエラー FAQ](https://www.shift-the-
oracle.com/oerrs/ora-12560.html)

### 1：インストールの確認

例えばWindows10にOracle19cをインストールした場合、以下のサービスが存在するはずです。  
（コントロールパネル > 管理ツール > サービス）

[![画像の説明をここに入力](https://i.stack.imgur.com/FL97k.png)](https://i.stack.imgur.com/FL97k.png)

このうち、以下のサービスが重要で、起動している必要があります。  
存在しない場合、OracleDBではなくOracleClientだけをインストールした可能性があります。

OracleService○○ ：Oracle DBMS そのもの  
Oracle○○TNSListener ：TNSListener（接続に必要な窓口）

なお、TNSListenerはインストール方法によっては初期設定されないため、  
ない場合はOracleと一緒にインストールされたはずの  
Net Configuration Assistant > リスナーの構成で追加してください。

### 2：PDBの場合、PDBの起動確認

初期設定のインストールでインスタンスの自動起動までWindowsサービスに設定されます。  
Oracle11g以前のPDBを使用しない旧来のモードであれば、これで問題ありません。  
しかし、Oracle12c以降のPDB対応モードとしてOracleをインストールした場合、  
OracleService○○やOracle○○TNSListenerは起動しているものの、  
PDBがオープンしていない状態になります。

補足：PDBとは（語彙にはやや不正確な部分を含みますが、わかりやすさを優先）  
旧来のOracleは、SQL Serverやmariadbなどと異なり、DBMSとDBが実質分かれておらず、1:1だった。  
DBMS部分とDB部分を分けて1:Nの関係にできるようにしたのがPDBモード  
これにより1つのOracleサーバ（DBMS）に複数のDBを用意することが出来るようになった。  
DBMS部分をCDB、DB部分をPDBと呼ぶ。  
従来の様々なSQLPlus上のコマンドは、DBMS相当に対して行っていたものはCDBに、DB相当に行っていたものはPDBにコマンドすればよい。

ので、PCを再起動した後などには、PDBをSTARTUPする必要があります。

典型的な方法は以下の通り

[code]

    sqlplus system/manager as sysdba
    show pdbs
    alter session set container = <起動したいPDB名>
    STARTUP
    
[/code]


CC BY-SA 4.0
2021-08-12T04:21:30.107
80737
2022-05-04T05:10:17.473
2022-05-04T05:10:17.473
3060
25396
80727
answer