Kamis, 15 Desember 2011

Perbedaan SID dengan service name

1. SID
SID = System Identifier
Dipakai untuk mengenali sebuah database instance dalam sebuah mesin.
Untuk itu perlu didefinisikan sebuah variable di level OS, dengan nama ORACLE_SID.
Contoh:
Pada mesin dimana database servernya berada,
# export ORACLE_SID=orcl1
# sqlplus /nolog
SQL> connect / as sysdba
SQL> select instance_name from V$instance;

Anda akan terhubung ke database instance dengan nama orcl1.
Nilai SID dipakai untuk menentukan beberapa nama file, spt: init.ora, spfile.ora, orapw, ...

Selain itu SID dipakai untuk mengenali database instance dari sisi client (khusunya kalau anda masih menggunakan database sebelum versi 8i).
Untuk itu anda harus mendefinisikannya di dalam tnsnames.ora (kalau anda menggunakan local naming).
connect_alias=(description=(address=...)(connect_data=(SID=)))

2. Service Name (berlaku untuk database versi 8i keatas)
By default setelah anda membuat sebuah database, nilai service name = nilai SID.
Berbeda dgn SID, anda bisa mendefinisikan beberapa nilai service name untuk sebuah database.
Ada beberapa cara untuk mendefinisikannya, a.l:
- merubah/menambahkan nilai untuk instance parameter "service_names"
- merubah nilai untuk instance parameter "log_archive_dest_n" (untuk konfigurasi DataGuard)
- merubah nilai untuk instance parameter "dispatchers" (misal untuk XDB:XML Database)
- pada listener.ora untuk parameter GLOBAL_DBNAME
- menggunakan DBMS_SERVICE
- ...

Dari sisi client, service name bisa dipakai untuk mengenali/mengakses database instance.
Untuk itu anda harus mendefinisikannya di dalam tnsnames.ora (kalau anda menggunakan local naming).
connect_alias=(description=(address=...)(connect_data=(SERVICE_NAME=)))

Service name dipakai pada konfigurasi RAC (Real Application Cluster), khususnya utk failover dan load balancing connection.
Selain itu service name juga bisa dipakai pada penerapan resource manager...dll...

cmiiw,
Bowo

Tidak ada komentar: