仮想マシンOracleへの接続ora-12154の問題の解決方法
1631 ワード
or121 a-54の問題については、tnsまたはlistenerの構成が正しくないため、ネット上には多くの解決方法があります.Listenerの構成が正しくないのは一般的には少なく、多くの人がデフォルトの構成に従って「次へ」来ており、基本的にはorclのサービス名であり、ローカルでorclに接続できるといえば、他の機が通じないのはlistenerとは関係ないはずです.ほとんどがtns構成が正しくありません.私が出会った現象は、本機に2003年の仮想機が建設され、仮想機にoracle 10 gがインストールされ、デフォルト構成されています.ネイティブにはoracle 10 gのクライアントしかインストールされていません.以前、ローカルエリアネットワーク内のデータベースのorclサービス(データベースはローカルエリアネットワーク内のデータベースと同じ)にネイティブで接続していたときは問題ありませんでしたが、仮想マシンに接続しているorclサービスは通じず、ora-12154エラーが発生します.仮想マシン内ではplsqlは仮想マシンoracleに接続できますが、ローカルエリアネットワーク内のoracleには接続できません.
以下の手順に従って、一般的に解決できます.仮想マシン内でcmdを開き、lsnrctl statusでリスナーが傍受するサービス を表示するは、リスナーサービス「orcl」を見るように、ホストのtns構成(SERVICE_NAME=orcl)にorclを書かなければならない.カスタマイズする場合は、仮想マシン内のlistener構成にカスタムサービス名を追加し、リスニングサービスを再起動することを忘れないでください:lsnrctl reload 最後に形成されたプロファイルは、以下の である.
仮想マシンlistener:
ネイティブtns:
再接続、問題解決!
覚えておいてください.必ず最も簡単な原因から探して、ネット上の何がprocess数、レジストリを変えるのかを見るのではなく、本機能がなぜネットを通じてだめなのか、位置決めの問題なのかを考えなければなりません.
以下の手順に従って、一般的に解決できます.
仮想マシンlistener:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1) db_home
(SID_NAME = test)
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1) ## , C
)
)
ネイティブtns:
ORCL_XNJ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
再接続、問題解決!
覚えておいてください.必ず最も簡単な原因から探して、ネット上の何がprocess数、レジストリを変えるのかを見るのではなく、本機能がなぜネットを通じてだめなのか、位置決めの問題なのかを考えなければなりません.