2008年6月25日水曜日

Oracleでデフォルトポート(1521)以外を使うには?

スズキです。

Oracleはまりネタです。
表記設定は、listener.oraとtnsname.oraのポートの部分を
下記のように変更するだけだろう、と軽く考えていました。

-------- listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/sbin/oracle/stable/db)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS =
        (PROTOCOL = IPC)
        (KEY = EXTPROC1)
      )
      (ADDRESS =
        (PROTOCOL = TCP)
        (HOST = hoge)
        (PORT = 1522)
      )
    )
  )
--------

-------- tnsname.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = hoge)
      (PORT = 1522)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS =
        (PROTOCOL = IPC)
        (KEY = EXTPROC1)
      )
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
--------

でもこれだけだと、うまくいきません。
(tnspingはOK何ですが...)


でどうすればいいか?というと、
下記、SQLを実行する必要があります。
つまり、LOCAL_LISTENERの設定です。

--------
ALTER SYSTEM SET LOCAL_LISTENER="(
  ADDRESS = (PROTOCOL = TCP)(HOST = hoge)(PORT = 1522)
)" SCOPE=BOTH;
--------

これで、ようやく、別ポート(1522)でOracleに接続できるようになりました。

Oracle勉強しなおしたいなー。

--

http://suz-lab.blogspot.com/

0 コメント: