Oracle11gr2 に接続する

mailto: suzukiy4i@gmail.com

作成:2011.04.01

更新:2011.04.06

11gr1までは,とりあえずはバカチョンでつながるのに,11gr2はハードル高い..

ポイントは...

サーバーの listener.ora の設定(記述)をきちんとする必要がある.

これには net configuration assistant や net manager で リスナーを削除したり追加したり,,なんかのはずみでうまくいく(事がある).GUIですっきり見えても,listener.oraを直にるとグチャグチャのことがあった.このグチャグチャが邪魔しているのかもしれない.

DBを作らないで oracle のみをインストールして,のちにDBをつくるとうまくいきやすい(かも)

サーバーのfirewallの設定も必要.

復習

Oracle9iに接続するには

そのザーバー Local ではこんな感じ

こんな感じでも可

Oracle11gに接続するは

そのサーバー Local ではこんな感じ

Oracle9iと同様にこんな感じでも可.ただし scott/tiger は アカウントがdisable になっているので通らない.

これでもOK

ただし,[localhost]を自己のIP addressにすると通らない???

firewall を off にしても同じ

net manager でもおなじ現象が起きる

さあ,リモートからは?

ODAC1120230Beta_EntityFramework.zip を download してインストールしてみる.

Net Configuration Assistant とか Net Manager とか使わなくても,接続できる.

これはOracle9iに接続

これはOracle10gに接続

これはOracle11gに接続...できない

ただし11gr2 localでも,[localhost]を自己のIP addressにすると通らない

Windows Server 2003 に install した Oracle 11g はどうだ

11gr1 localでip指定でOK

11gr1 remote でもOK

Windows Server 2008r2 に Oracle11gr1 をインストールしようとしたら ×

宿題

instant client をインストールしてみる -- NG

non-insant client をインストールしてみる -- NG

これでも11gr2にはつながらない.リモートから入るための設定がある?

サーバーでしてみたがダメみたいだ

サーバ側の問題みたいだしな...

tnsping が localhost なら通るが,IP指定で通らないとかの話題があった.

local のサーバー内で も, 確かに そのようなことが起きている.

さらに検索を続けると...こんな記事を発見.

http://dev.pischna.net/troubleshooting/jdbc%E3%81%8B%E3%82%89oracle-11gr2%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC.html

-----以下引用-----

なんかリスナーがあやしいと思って、listener.oraを確認。

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

これか・・・。

HOSTを自ホストのIPアドレス(or ホスト名)に書きかえて、リスナーの再起動。

で、ociドライバから接続成功。そして、thinドライバでも接続成功。

いつもはOracleのインストール後にDB作って、リスナー作って、Oracle Netの設定してたけど、今回はOracleのインストール時に手抜きしてDBも作ったからリスナーも同時に作成された。

これが原因だったか・・・。

-----引用ここまで-----

これは思いついたのだが,「リスナーの再起動」っていうのをしていなかった.で,設定しなおして,マシンごと再起動.

...やっぱりだめだ...

リスナーのコントロールは

>lsnrctl

LSNRCTL>set current リスナー名

LSNRCTL>start or stop

こんな記載もある

http://okwave.jp/qa/q5982531.html

-----以下引用-----

御指摘の内容は問題なかったのですが、11gサーバ側のリスナーを

「Net Configuration Assistant」で一度削除し、再作成したところ

正常になりました。

-----引用ここまで-----

これをしてみたがNG

宿題 - 文字とおり,家のベッドの上でひっくり返ってノートパソコンを腹の上にあげて仕事をしている.Windows Live Mesh で職場のデスクトップをリモコンている.

DB をつくらないでインストールしてみる

NIC を一枚にしてインストールしてみる

IPv4だけにしてみる

DB をつくる.途中netca(net configuration assistantのことだろう)でリスナーを作れと言われるので作る・

tnspingはとおる.ipでもaddressでも.

sqlplusもOK ip, addressでも.たたし firewallは無効.firewallで1521を通せばokかも

----------------------このときのlistener.oraはこんなかんじ-----------------------------------------------------------------------------------------------------------

# listener.ora Network Configuration File: C:\app\{username}\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxORCL11g.xxxx.local)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = C:\app\{username}

---------------------------------------------------------------------------------------------------------

DB を一緒に作っても,設定ファイル をうまくすれば OK にちがいない.

NIC は2枚でも,IPv6が併存していても大丈夫に違いない.

うまくいかなかったときの環境で,net manager(or net configuration assistane どっちかわすれた) でlisterを削除して,追加して,結局うまくいった.

この環境は,NICは2枚だか,IPv6はdisabledにしてある.

---------------------------------------このときのlistener.oraはこんなかんじ---------------------------------------------------

# listener.ora Network Configuration File: C:\app\{username}\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = C:\app\{username}\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:C:\app\{username}\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxORCL11g.xxxx.local)(PORT = 1521))

)

)

ADR_BASE_LISTENER = C:\app\{username}\product\11.2.0\dbhome_1\log

-------------------------------------------------------------------------------------------------------------------------------------------------

しかし,Net Manager でみると サービス・ネーミングが空である.要らないの? そう.要らないんだ.

non-instant client で接続するときには要るに違いない

で,いずれにしてもOK

ODAC をインストールするだけでもOKと思われる - OKです

で,Visual Studio から接続するには,

データプロバイダは Oracle Data Provider .NET を使用して --- vs2010 を先にインストール,ODAC のインストールが後.

データソース名は「xxxxORCL10g:1521/orcl」など入れる

ODP.NET の BETA3 をdownload するが,

ODAC1120250Beta_EntityFramework_32bit.zip と

ODAC1120250Beta_EntityFramework_x64.zip の二種類ある

32bit 環境には _32,64bit 環境には _x64 だと 思ったが,

32bit 環境では問題なくそれでよいが,

64bit 環境では x64 の方をインストールしても,「データ接続の追加」でODP.NET が選べない.

インストールした _x64 版 を除去して,x32 版をインストールしたらOK.VS2010の問題?

VSが32bitだからか.

ODAC64bit版ではdevelopper toolsが入っていないからか.

で,こんな感じ.

[scottEntities] という object を作るには,solution explore から 右クリックで新しい項目を追加してつくっていく

ところで https://xxxx:1158:em は client をインストールしないと接続できないのか --そうでもない

普通にinstallした windows7 からはアクセスできなかった.