Oracle12Cをインストールした際にデータベースに接続できなかった。
とりあえず、Oracleのデータベースに接続できないときの調査手順という記事のとおりにやっていくことに。
https://www.ilovex.co.jp/Division/ITD/archives/2008/05/oracle.html
Pingを行うとサーバーには接続できる。
しかし、tnspingを行うと「TNS-12541: TNS: リスナーがありません」というエラーが表示された。
どこに記載されてあったかはわからなくなってしまったのですが、
サーバー側のlistener.oraのHOSTはPCのホスト名にしておくとなんか繋がる。
みたいなこと書いてある記事があり、
listener.oraを見ると、IPアドレスが記載されていたため、これをPCホストに書き換えた。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IPアドレス)(PORT = 1521)(QUEUESIZE = 50)))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
これをこう変えた。↓
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PCのホスト名)(PORT = 1521)(QUEUESIZE = 50)))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
するとリスナーに繋がるようになった。
sysdbaでログインしてユーザーを作成しようとすると、
ORA-65096: 共通ユーザーまたはロール名が無効です
のエラーで作成できなかった。
解決は下記を参照。接続先がCDBになっており、PDBに切り替える必要があったそうな。
「Oracle プラガブルデータベースのsqlplusでの切替方法」
sysdbaで作成したユーザーでsqlplusにでログインしようとしたらできなかった。
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
tnsnamesのサービス名を変更して接続識別子を付けたらログインできるようになりました。
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PCのホスト名)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
これをこう変えた。↓
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PCのホスト名)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLPDB)
)
)
接続識別子を付けた、ユーザー名とパスワード
「sqlplus user0/pass@ORCL」
A5:SQLから繋げるときはサービス名にORCLPDBを入れたら繋がった。
いろいろと試しているときに、サービスから「OracleServiceORCL」を再起動したらずっと、
ORA-01033:oracleの初期化中またはシャットダウン中
のエラーが出てきた。
これの解決は、下記を参照。これはPDBに切り替わっていなかったためでした。
http://kokorona.com/wp/it/ora-01033_on_pdb/
初期化中なら少し待てばいいのかと思い、1時間くらい待ってた。一時間を返して欲しい。