なぜ2つ必要なのですか?どちらを使用する必要があるのですか?
なぜ2つ必要なのですか?どちらを使用する必要があるのですか?
回答:
つまり、SID = DBの一意の名前、ServiceName =接続時に使用されるエイリアス
厳密には当てはまりません。SID = INSTANCEの一意の名前(たとえば、マシンで実行されているoracleプロセス)。Oracleは「データベース」をファイルと見なします。
サービス名= INSTANCE(または多くのインスタンス)のエイリアス。これの主な目的は、クラスターを実行している場合、クライアントは「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サービス名の違いは何ですか。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 =接続時に使用されるエイリアス
私はこれが古くからあることを知っていますが、厄介なツール、使用、ユーザー、または症状を扱う場合、次のようにsid&serviceの名前付けでtnsnamesエントリに少しフレックスを追加できます。
mySID, mySID.whereever.com =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mySID.whereever.com)
(SID = mySID)
(SERVER = DEDICATED)
)
)
これは質問に穏やかに関連しており、オラクルネットワークの明確ではない特異性を回避しようとするときに役立つ可能性があるため、ここに残しておくと思いました。
SIDとサービス名とは
オラクルのドキュメントをご覧ください https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htmご覧ください。
上記のリンクに将来アクセスできない場合に備えて、この回答を書いている時点で、上記のリンクは「データベースネットサービス管理者ガイド」の接続概念の章にある「データベースサービスとデータベースインスタンスの識別」のトピックに移動します。 。このガイドは、Oracleによって「Oracle Database Online Documentation、10g Release 2(10.2)」の一部として発行されています。
どちらを使用する必要があるのですか?なぜ2つ必要なのですか?
以下のRAC環境でのマッピングを検討してください。
SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4 bob
ロードバランシングが設定されている場合、リスナーは4つのSIDすべてにわたってワークロードを「バランス」します。負荷分散が構成されている場合でも、SERVICE_NAMEの代わりにSIDを使用して、必要に応じていつでもbob1に接続できます。
Oracle用語集に従って:
SIDは、Oracleデータベースインスタンスの一意の名前です。---> Oracleデータベースを切り替えるには、ユーザーは目的のSID <---を指定する必要があります。SIDは、TNSNAMES.ORAファイルの接続記述子のCONNECT DATA部分と、LISTENER.ORAファイルのネットワークリスナーの定義に含まれています。システムIDとも呼ばれます。Oracleサービス名は、「MyOracleServiceORCL」のように説明的なものにすることができます。Windowsでは、Windowsサービスのサービスとしてサービス名を実行できます。
より良いアプローチとして、TNSNAMES.ORAのSIDを使用する必要があります。