こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Exportの失敗とODBC接続の失敗

Windows 2003 Server
Windows XP Professional
Microsoft Office 2000
Oracle Databasse 9.2.0.1.0

1.Sqlnet経由でのExp/Impができません。SQLPLUSは正常につながります。
    EXP system/???@??? FILE= full120725.dmp LOG= exp_full120725.log FULL=y
を実行すると、Copyrights ~ all rights reservedで止まったまま、
エラーメッセージも出ません。
@???を取って実行すると正常終了します。

lsnrctl statusを実行すると以下のエラーメッセージが返ってきます。
******************
(ADDRESS=(PROTOCOL=tcp)(PORT=1521))に接続中
TNS-12541: TNS: リスナーがありません。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00511: リスナーがありません。
32-bit Windows Error: 61: Unknown error
******************

2.ODBCで接続を設定しようとするのですが、
    Microsoft ODBC for Oracle
Oracle in Ora92
ともに失敗します。

1と2の原因が同じなのか、違うのか、
それとそれぞれの対処方をご教示できないでしょうか?

投稿日時 - 2012-07-26 10:51:46

QNo.7611341

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちわ

> SQLPLUS system/???@???でつながります。
> 別のクライアント機からは
> EXP system/???@??? FILE= full120725.dmp LOG= exp_full120725.log FULL=y

そうすると、SQL*Plus とexp で異なるtnsnames.ora を参照している可能性位しか
考えにくいですね。
sqlplus とexp は同じDos Prompt から実行しても、今までと同じ結果になるでしょうか?
Oracle Client は、TNS_ADMIN 環境変数 (Windows の場合はレジストリも) で参照する
tnsnames.ora の指定できるようになっていますので、その辺を画くインした方が
良いかも知れません。
環境変数はマイコンピュータから、レジストリはHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE の下から
探してみて下さい。

投稿日時 - 2012-07-29 19:24:14

補足

listener.oraと\Windows\system32\drivers\etc\hostsをいろいろ書き換えて試しているうちにEXPが@???つきで実行できるようになりました。原因も対処法もわかりません。現在、もとの設定に戻してもつながっています。
それに伴って、ODBC接続もできるようになりました。
どうも、ありがとうございました。

投稿日時 - 2012-08-11 06:07:08

お礼

ありがとうございます。

> TNS_ADMIN 環境変数
この環境変数はありませんでした。
レジストリにもこのキー・値はありませんでした。

難航しています。
またお知恵がありましたら、拝借させてください。
よろしくお願いします。

投稿日時 - 2012-08-02 14:55:29

ANo.1

こんにちわ

> @???を取って実行すると正常終了します。
接続文字列 (@以下の部分) が想定していない設定になっているだけだと思います。
通常は$ORACLE_HOME\network\admin ディレクトリ下のtnsnames.ora に接続文字列
の設定がされていますので、その設定を見直して見て下さい。

> SQLPLUSは正常につながります。
SQL*Plus の接続も、@??? の部分を指定しているのでしょうか?
恐らく、exp コマンドでしている接続文字列と同じ文字列をORACLE_SID に設定
しているだけではないでしょうか?
ORACLE_SID の設定と接続文字列の設定は全く別です。

> lsnrctl statusを実行すると以下のエラーメッセージが返ってきます。
これは、ローカルマシンでLISTENER と言う名前のListener が起動されていない
だけです。

そもそも、ローカルのDB に接続するだけであれば、SQL*Net を経由する必要は
ありませんし、SQL*Net を経由させない方が性能も良いです。
SQL*Net 経由させないといけない理由があるのでしょうか?

投稿日時 - 2012-07-27 01:41:16

補足

早くにご回答をいただきながら,お礼が遅くなり申し訳ありません。

少し,説明が足りませんでしたので,補足いたします。

>SQL*Plus の接続も、@??? の部分を指定しているのでしょうか?
SQLPLUS system/???@???でつながります。

>SQL*Net 経由させないといけない理由があるのでしょうか?
説明不足でした。
現在問題になっているPCはクライアント機です。
ですから,SQL*Net 経由でサーバー機のデータベースをIMP/EXPする必要があります。
@???なしでEXPORTを行ったのは,あくまで実験で,
クライアント機上にある実験用のデータベースのEXPORTです。

>tnsnames.ora に接続文字列の設定がされていますので、その設定を見直して見て下さい。
何度もlistner.oraとの整合性,他のクライアント機のtnsnames.oraを確認しているのですが。。。

別のクライアント機からは
EXP system/???@??? FILE= full120725.dmp LOG= exp_full120725.log FULL=y
が実行できていますので,業務に支障は出ていませんが,
気持ちが悪いので何とか解決したいのですが。

もしお知恵がありましたら,拝借させてください。
よろしくお願いします。

投稿日時 - 2012-07-28 23:45:15