2

私は SQL Server の使用に慣れており、現在は Oracle への接続に直面しています。入力する必要があるすべてのフィールドについて、完全に明確な説明を得ることができますか?

具体的には、これらが何であるかを理解したい:

ホーム
ホスト名
ポート
SID
サービス名

ネットワーク エイリアス
接続識別子

私の基本的な理解は、ホスト名はそれが座っている貧弱なものですが、これはホームとは異なりますか? Port は TCP ポートで、デフォルトは 1521 です。これはかなり明確なようです。

SID またはサービス名のいずれかのみを提供する必要がありますか? そして、違いは何ですか-なぜどちらか一方なのですか?

TNS ファイルがある場合、ネットワーク エイリアスと接続識別子は何ですか? TNS ファイルを使用しない場合、これらのフィールドは他のフィールドと同じですか?

初心者で申し訳ありませんが、回答を得るための予備的な検索はまだ非常に混乱しています。

ありがとう!

4

2 に答える 2

1

Oracle 10g以上を使用している場合は、Easy Connect構文を使用します。

//servername/dbname

、次のように:

sqlplus scott/tiger@//servername/dbname

を使用する必要がある場合TNSの例を次に示しTNSNAMES.ORAます。

XE = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

では、 (リスナーに登録されたインスタンスの識別子) または(データベース識別子) のCONNECT_DATAいずれかを使用できます。SERVICE_NAMESID

一言で言えば:

  • SERVICE_NAMEインスタンスの識別子です:Oracle接続先の実行中の実行可能ファイル
  • SIDデータベースの識別子です: データが保存されている一連のファイルです。

Oracle1 つのデータベースを複数のインスタンスで使用できます。

疑わしい場合は を使用してSERVICE_NAMEください。

この場合、次のように接続します。

sqlplus scott/tiger@XE
于 2009-06-09T14:13:10.860 に答える
1
ホーム: ORACLE_HOME、場所を指す環境変数
Oracle バイナリ (インスタンスが実行されるサーバーまたはクライアントのいずれかの場所)
クライアントから実行されます)
ホスト名: サーバーの名前
ポート: リスナーが Oracle 接続をリッスンするポート
SID: **サービス **ID** エンティティ。データベースの名前。これは
Listener が公開する識別子の 1 つ
サービス名: リスナーによって公開される可能性のある代替識別子

既存の構成済みサイトでこれらの詳細を見つける最も簡単な方法は、データベースへの接続を確立できるクライアント (またはサーバー) 上の tnsnames.ora ファイルからです。$ORACLE(underscore)HOME/network/admin の下を見てください。set (Windows) または env (Unix) コマンドで ORACLE(underscore)HOME を見つけます。tnsnames.ora は、変数 $TNS_ADMIN が指す場所にある場合もあります。

tnsnames.ora が見つからず、サーバーにアクセスできる場合は、通常はユーザー Oracle として次のコマンドを試してください。

lsnrctl ステータス

lsnrctl はリスナーです。ステータスには、認識している SID とサービス名 (およびその他の詳細) が表示されます。

または、$ORACLE_HOME/network/admin の下、または環境変数 $TNS_ADMIN が指す場所で、ファイル listener.ora および sqlnet.ora を見つけます。

通常、ホストごとに 1 つのリスナーが存在するため、ホストごとに 1 つのポート (複数存在する可能性がありますが、一般的ではありません)

Oracle に接続するには、ホスト名とポートの組み合わせで指定された場所にあるリスナーにクライアントを向け、接続する SID またはサービスも指定する必要があります。

SID とサービス名に関する DCookie のコメントは基本的に正しいです。

SIDは(バージョンによって異なります)で見つけることができます

v$database から db_unique_name を選択
   また
v$database から db_name を選択

または、ファイル $ORACLE_HOME/dbs/init(SID NAME).ora を調べるか、または

ps -ef | grep pmon

プロセス名の最後の部分、たとえば ora(underscore)pmon(underscore)SID に注意してください。

于 2009-06-10T07:12:16.923 に答える