SID'nin Oracle tnsnames.ora'daki Hizmet adından farkı nedir?


Yanıtlar:


154

@DAC tarafından alıntı

Kısacası: SID = DB'nizin benzersiz adı, ServiceName = bağlanırken kullanılan takma ad

Kesinlikle doğru değil. SID = INSTANCE'ın benzersiz adı (örn. Makinede çalışan oracle işlemi). Oracle "Veritabanı" nı dosyalar olarak kabul eder.

Hizmet Adı = bir INSTANCE (veya birçok örnek) için takma ad. Bunun temel amacı bir küme çalıştırıyorsanız, müşteri "beni SALES.acme.com'a bağla" diyebilir, DBA anında SALES.acme.com istekleri için kullanılabilir örnek sayısını değiştirebilir, hatta SALES.acme.com'u, istemcinin herhangi bir ayarı değiştirmesine gerek kalmadan tamamen farklı bir veritabanına taşıyabilirsiniz.


1
Yani, örnekte, söz konusu SID olabilir Sales1, Sales2ve Sales3servis adına yoluyla ulaşılabilir hepsi, Sales?

1
Ben tam tersi olduğunu düşünüyorum: Birçok hizmet kullanılabilir bir SID var. Daha sonra hizmetlerden birini alıp farklı bir SID / veritabanına yönlendirebilirsiniz.
Colin Nicholls

Oracle SID adı TNS adıyla aynı olabilir mi? Sorun olur mu?
user2441441

2
@ user2441441: Matthew'un verdiği açıklamaya göre, sanırım birden fazla SID olabileceği varsayımında haklısın ve bir kez tüm SID'leri soyutlayan Servis
Dwarak

26

Lütfen bakınız: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Oracle SID'ler ve Oracle SERVICE NAMES arasındaki fark nedir? Bir yapılandırma aracı SERVICE NAME öğesini ve bir sonraki SID'leri arar! Neler oluyor?!

Oracle SID, örneğinizi / veritabanınızı benzersiz bir şekilde tanımlayan benzersiz addır; burada Hizmet adı, veritabanınıza uzaktan bağlandığınızda verdiğiniz TNS diğer adıdır ve bu Hizmet adı, istemcilerinizdeki Tnsnames.ora dosyasına kaydedilir ve SID ile aynıdır ve istediğiniz herhangi bir adı da verebilirsiniz.

SERVICE_NAME, veritabanının kendisini dinleyiciye kaydedebileceği oracle 8i'den sonraki yeni özelliktir. Veritabanı bu şekilde dinleyiciye kayıtlıysa, tnsnames.ora içindeki SERVICE_NAME parametresini kullanabilirsiniz; aksi takdirde tnsnames.ora'da SID kullanın.

Ayrıca, OPS'niz (RAC) varsa, her örnek için farklı SERVICE_NAME hesabınız olacaktır.

SERVICE_NAMES, bu örneğin bağlandığı veritabanı hizmeti için bir veya daha fazla ad belirtir. Aynı veritabanının farklı kullanımlarını ayırt etmek için birden çok hizmet adı belirtebilirsiniz. Örneğin:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

Hizmet adlarını, çoğaltma kullanılarak iki farklı veritabanından kullanılabilen tek bir hizmeti tanımlamak için de kullanabilirsiniz.

Oracle Parallel Server ortamında, her örnek için bu parametreyi ayarlamanız gerekir.

Kısaca: SID = DB örneğinizin benzersiz adı, ServiceName = bağlanırken kullanılan diğer ad


Kafam karıştı. RAC'de her örnek için farklı "INSTANCE_NAME" hesabınız olması gerekmez mi? Ve bir SERVICE_NAME birden fazla örnekle ilişkilendirilebilir mi?
Iwan Satria

20

Biliyorum bu eski, ancak titiz araçlar, kullanımları, kullanıcılar veya belirtilerle uğraşırken yeniden: sid & servis adlandırma biri gibi tnsnames girişlerine biraz esnek katabilir:

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)
  )
)

Bunu burada bırakacağımı düşündüm, çünkü bu soru ile hafifçe ilgili ve oracle ağının açık bir şekilde daha az tanımak için dokunmaya çalışırken yardımcı olabilir.


5

SID ve Hizmet adı nedir

lütfen https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm adresindeki oracle belgelerine bakın.

Yukarıdaki bağlantıya gelecekte erişilemezse, Bu yanıtı yazarken yukarıdaki bağlantı sizi "Veritabanı Ağ Hizmetleri Yönetici Kılavuzu" Bağlantı Kavramları bölümündeki "Veritabanı Hizmeti ve Veritabanı Örneği Tanımlaması" konusuna yönlendirir. . Bu kılavuz Oracle tarafından "Oracle Database Online Documentation, 10g Release 2 (10.2)" kapsamında yayınlanmıştır.

Ne zaman birini kullanmalıyım? Neden ikisine ihtiyacım var?

Bir RAC Ortamında aşağıdaki eşlemeyi düşünün,

SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4 bob

yük dengeleme yapılandırılırsa, dinleyici iş yükünü dört SID'nin tamamında 'dengeler'. Yük dengeleme yapılandırılmış olsa bile, SERVICE_NAME yerine SID kullanarak istediğiniz zaman bob1'e bağlanabilirsiniz.

Lütfen bakın, https://community.oracle.com/thread/4049517


0

Oracle Sözlüğü'ne göre:

SID, Oracle veritabanı örneği için benzersiz bir addır. ---> Oracle veritabanları arasında geçiş yapmak için kullanıcıların istenen SID <--- değerini belirtmesi gerekir. SID, TNSNAMES.ORA dosyasındaki bağlantı tanımlayıcılarının CONNECT DATA kısımlarına ve LISTENER.ORA dosyasındaki ağ dinleyicisi tanımına dahil edilir. Sistem Kimliği olarak da bilinir. Oracle Hizmet Adı, "MyOracleServiceORCL" gibi açıklayıcı herhangi bir şey olabilir. Windows'da, Hizmet Adınızı Windows Hizmetleri altında bir hizmet olarak çalıştırabilirsiniz.

TNSNAMES.ORA'da SID'yi daha iyi bir yaklaşım olarak kullanmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.