なぜ2つ必要なのか?どちらかを使わなければならないときは?
@DAC
要するに、SID=お客様のDBの固有名、ServiceName=お客様のDBで使用されている別名です。 要するに、SID = お客様のDBの固有名、ServiceName = 接続時に使用するエイリアス 接続時に使用されるエイリアスです。
厳密には違います。SID = インスタンス(マシン上で実行されているオラクルプロセスなど)の固有名。オラクルは「データベース」を「ファイル」とみなします。
Service Name = インスタンス(または多くのインスタンス)のエイリアスです。クラスタを運用している場合、クライアントが「SALES.acme.comに接続してください」と言えば、DBAはその場でSALES.acme.comのリクエストに利用できるインスタンスの数を変更したり、SALES.acme.comを全く別のデータベースに移動させたりすることができますが、クライアントは何も設定を変更する必要はありません。
ご覧ください。http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htmをご覧ください。
OracleのSIDとOracleのSERVICE NAMESの違いは何でしょうか? SIDとOracle SERVICE NAMESの違いは何ですか?1つは 設定ツールではサービス名を検索しますが 次のツールではSIDを探します。何が どうなっているんだ!? どうなってるんですか? Oracle SIDとは、お客様を一意に識別するための名前です。 インスタンス/データベースを一意に識別します。 インスタンス/データベースを一意に識別する名前です。 サービス名とは、お客様がリモートで接続する際に サービス名は、お客様がデータベースにリモートで接続する際に与えるTNSのエイリアスです。 サービス名は、お客様がお客様のデータベースにリモートで接続する際に与えるTNSのエイリアスであり、このサービス名は このサービス名は、クライアント上のTnsnames.oraファイルに記録されます。 このサービス名は、クライアントのTnsnames.oraファイルに記録され、SIDと同じにすることができます。 と同じにすることができます。 また、任意の名前を付けることもできます。
SERVICE_NAMEは、オラクル8i以降の新機能です。 SERVICE_NAMEは、Oracle 8i以降の新機能で、データベースの リスナーに自分自身を登録することができます。もし データベースがリスナーに登録されると データベースがリスナーに登録されている場合、次のようにして tnsnames.oraのSERVICE_NAMEパラメータを使用することができます。 それ以外の場合は、tnsnames.oraのSIDを使用します。 となります。 また、OPS(RAC)を使用している場合、以下のようになります。 インスタンス毎に異なるSERVICE_NAMEが必要です。 インスタンスごとに異なるSERVICE_NAMEを持つことになります。 となります。 SERVICE_NAMESは、1つまたは複数の インスタンスが接続するデータベースサービスの名前を インスタンスが接続するデータベースサービスの名前を指定します。インスタンスの 複数のサービス名を指定することで 複数のサービス名を指定することができます。 複数のサービス名を指定することができます。例えば の例です。 例えば SERVICE_NAMES = sales.acme.com, サービス名 = sales.acme.com、widgetsales.acme.com としています。 サービス名は、以下の目的でも使用できます。 サービス名は、2つの異なるデータベースから 2つの異なるデータベースから利用できる レプリケーションの使用により
Oracle Parallel Serverの環境では 環境では、インスタンスごとにこの インスタンスごとに設定する必要があります。
簡単に言うと、SID=DBインスタンスの固有名、ServiceName=接続時に使用するエイリアス
Oracle Glossaryによる。
SIDとは、Oracleデータベースインスタンスの固有の名前です。---> Oracleデータベースを切り替えるには 切り替えるには、目的のSIDを指定する必要があります。SIDは SIDは接続記述子のCONNECT DATA部分に含まれます。 TNSNAMES.ORAファイルのCONNECT DATA部分、およびLISTENERのネットワークリスナーの定義 LISTENER.ORAファイル内のネットワークリスナーの定義に含まれます。また、システムIDとも呼ばれています。オラクルサービス名 MyOracleServiceORCL"のように記述的なものであれば何でも構いません。Windowsの場合。 Windowsでは、Windowsサービスの下でサービスとして実行されていますので、サービス名を入力してください。
TNSNAMES.ORAのSIDを利用するのが良いでしょう。