LoginSignup
10
7

More than 5 years have passed since last update.

Oracle 12cにレガシーアプリから接続の際SIDが違うと怒られる

Last updated at Posted at 2015-11-11

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必要に駆られてテストしてますが、予備知識なしでやると
嵌まりますね・・・また気付いたことがあれば追記していきます。

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7