190

なぜ2つ必要なのですか?どちらかを使用する必要があるのはいつですか?

4

5 に答える 5

163

@DACによる引用

要するに: SID = DB の一意の名前、ServiceName = 接続時に使用されるエイリアス

厳密にはそうではありません。SID = インスタンスの一意の名前 (例: マシンで実行されている Oracle プロセス)。Oracle は、「データベース」をファイルと見なします。

サービス名 = インスタンス (または複数のインスタンス) へのエイリアス。これの主な目的は、クラスターを実行している場合、クライアントは「接続してください」と言うことができ、DBA は要求にSALES.acme.com使用できるインスタンスの数をオンザフライで変更したり、完全に別のデータベースに移動することさえできます。クライアントは設定を変更する必要があります。SALES.acme.comSALES.acme.com

于 2008-09-04T14:39:55.250 に答える
28

参照してください: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Oracle SID と Oracle サービス名の違いは何ですか。1 つの構成ツールがサービス名を検索し、次に SID を検索します! どうしたの?!

Oracle SID は、インスタンス/データベースを一意に識別する一意の名前です。サービス名は、データベースにリモート接続するときに指定する TNS エイリアスであり、このサービス名はクライアントの Tnsnames.ora ファイルに記録されます。 SID と同じで、他の任意の名前を付けることもできます。

SERVICE_NAME は、Oracle 8i 以降の新機能で、データベース自体をリスナーに登録できます。データベースがこの方法でリスナーに登録されている場合は、tnsnames.ora で SERVICE_NAME パラメータを使用できます。それ以外の場合は、tnsnames.ora で SID を使用します。

また、OPS (RAC) がある場合は、インスタンスごとに異なる SERVICE_NAME があります。

SERVICE_NAMES は、このインスタンスが接続するデータベース サービスの 1 つ以上の名前を指定します。同じデータベースのさまざまな用途を区別するために、複数のサービス名を指定できます。例えば:

SERVICE_NAMES = sales.acme.com、widgetsales.acme.com

また、サービス名を使用して、レプリケーションを使用して 2 つの異なるデータベースから利用できる単一のサービスを識別することもできます。

Oracle Parallel Server 環境では、インスタンスごとにこのパラメータを設定する必要があります。

つまり、SID = DB インスタンスの一意の名前、ServiceName = 接続時に使用されるエイリアス

于 2008-09-04T14:34:02.770 に答える
1

Oracle用語集によると:

SID は、Oracle データベース インスタンスの一意の名前です。---> Oracle データベースを切り替えるには、ユーザーは目的の SID を指定する必要があります <---。SID は、TNSNAMES.ORA ファイルの接続記述子の CONNECT DATA 部分と、LISTENER.ORA ファイルのネットワーク リスナーの定義に含まれています。システム ID とも呼ばれます。Oracle サービス名は、"MyOracleServiceORCL" のようなわかりやすい名前にすることができます。Windows では、サービス名を Windows サービスの下でサービスとして実行できます。

より良いアプローチとして、TNSNAMES.ORA で SID を使用する必要があります。

于 2010-04-16T13:04:27.390 に答える