なぜ2つ必要なのですか?どちらかを使用する必要があるのはいつですか?
5 に答える
要するに: SID = DB の一意の名前、ServiceName = 接続時に使用されるエイリアス
厳密にはそうではありません。SID = インスタンスの一意の名前 (例: マシンで実行されている Oracle プロセス)。Oracle は、「データベース」をファイルと見なします。
サービス名 = インスタンス (または複数のインスタンス) へのエイリアス。これの主な目的は、クラスターを実行している場合、クライアントは「接続してください」と言うことができ、DBA は要求にSALES.acme.com
使用できるインスタンスの数をオンザフライで変更したり、完全に別のデータベースに移動することさえできます。クライアントは設定を変更する必要があります。SALES.acme.com
SALES.acme.com
参照してください: 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 = 接続時に使用されるエイリアス
Oracle用語集によると:
SID は、Oracle データベース インスタンスの一意の名前です。---> Oracle データベースを切り替えるには、ユーザーは目的の SID を指定する必要があります <---。SID は、TNSNAMES.ORA ファイルの接続記述子の CONNECT DATA 部分と、LISTENER.ORA ファイルのネットワーク リスナーの定義に含まれています。システム ID とも呼ばれます。Oracle サービス名は、"MyOracleServiceORCL" のようなわかりやすい名前にすることができます。Windows では、サービス名を Windows サービスの下でサービスとして実行できます。
より良いアプローチとして、TNSNAMES.ORA で SID を使用する必要があります。