Delphiなどで作った昔のアプリから12cのpdbに接続しようとすると、SIDが違うと
怒られます。(今回はCorelab/Devart社のODACコンポーネントからの接続)
SIDでアクセスできない
そんな時はListener.oraに以下を加えて、TnsListenerサービスを再起動してみてください。
Listener.ora
USE_SID_AS_SERVICE_LISTENER = ON
こちらの記事を参考にしました。
ORACLE IN ACTION
CDBでORA-20840
ちなみにcdbに接続する場合は、 sqlnet.oraに下記の追加が必要です。
こちらもORA-28040で怒られます。
sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION=8
RESTRICT SESSION
これは自分用の備忘録
全てデフォルトでインストールすると、pdbがRESTRICTモードになるので
SqlPlus SYS/PWD as SYSDBAで入ってRESTRICTモードを解除
SQLPLUS
ALTER PLUGGABLE DATABASE PDBORCL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE PDBORCL OPEN WRITE;
v$pdsで確認
SELECT name, open_mode, restricted FROM v$pdbs;
データベースを再起動するとPDBに接続できない
CDBに接続してPDB(プラガブルDB)をオープン、その状態を記憶する必要があります。
SQLPLUS
-- PDBをオープン
ALTER PLUGGABLE DATABASE ALL OPEN;
-- オープン状態を保持
ALTER PLUGGABLE DATABASE ALL SAVE STATE;
Oracle 12c必要に駆られてテストしてますが、予備知識なしでやると
嵌まりますね・・・また気付いたことがあれば追記していきます。