通常、Oracle Database SID はサービス名に含まれます。例: SID: orcl & サービス名: orcl.mycomp.com
そのため、SID を含めずにサービス名を定義することができます。例:mydb.mycomp.com
データベースの SID はorcl
です。
orclのSIDがある場合は、orclデータベースでOracleシステムパラメータSERVICE_NAMESを設定することにより、サービス名をmydb.mycomp.comに設定できます。
ALTER SYSTEM SET service_names = 'mydb.mycomp.com';
または、orclをサービス名として保持する場合:
ALTER SYSTEM SET service_names = 'orcl,mydb.mycomp.com';
SID はデータベースの識別子ですが、service_names はそれが提供するサービスの名前であり、技術的なものではなく機能的なものです。
したがって、請求サービス、販売サービス、メッセージ サービスを提供し、service_name を適切に設定するデータベースがあるとします。これには、リスナーが要求されたサービスに基づいて接続先の適切なデータベースを選択できるという利点があり、1 つのサービスを複数のデータベースから (レプリケーションを介して) 利用できるようになります。
また、あるデータベースから別のデータベースにサービスを移動し、v$session と v$sql を使用してサービス アクティビティを監視することもできます。
こちらもご覧ください: http://www.ardentperf.com/pub/services-schneider07.pdf