Dlaczego potrzebuję dwóch z nich? Kiedy muszę użyć jednego lub drugiego?
Dlaczego potrzebuję dwóch z nich? Kiedy muszę użyć jednego lub drugiego?
Odpowiedzi:
W skrócie: SID = unikalna nazwa Twojej bazy danych, ServiceName = alias używany podczas łączenia
Nie do końca prawda. SID = unikalna nazwa INSTANCJI (np. Proces Oracle działający na komputerze). Oracle uważa „Bazę danych” za pliki.
Nazwa usługi = alias do INSTANCE (lub wielu wystąpień). Głównym celem tego jest to, że jeśli używasz klastra, klient może powiedzieć „połącz mnie z SALES.acme.com”, administrator może w locie zmienić liczbę instancji, które są dostępne dla żądań SALES.acme.com, a nawet przenieść SALES.acme.com do zupełnie innej bazy danych bez konieczności zmiany jakichkolwiek ustawień przez klienta.
Sales1
, Sales2
oraz Sales3
, z których wszystkie są dostępne poprzez nazwę usługi Sales
?
Zobacz: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
Jaka jest różnica między identyfikatorami SID Oracle a NAZWAMI USŁUG Oracle. Jedno narzędzie konfiguracyjne szuka NAZWY USŁUGI, a następne szuka identyfikatorów SID! Co się dzieje?!
Oracle SID to unikalna nazwa, która jednoznacznie identyfikuje twoją instancję / bazę danych, gdzie jako nazwa usługi jest aliasem TNS, który podajesz podczas zdalnego łączenia się z bazą danych, a nazwa tej usługi jest zapisywana w pliku Tnsnames.ora na klientach i może to być tak samo jak SID, ale możesz też nadać mu dowolną inną nazwę.
SERVICE_NAME to nowa funkcja począwszy od oracle 8i, w której baza danych może zarejestrować się u nasłuchiwania. Jeśli baza danych jest zarejestrowana w nasłuchiwaniu w ten sposób, możesz użyć parametru SERVICE_NAME w tnsnames.ora, w przeciwnym razie - użyj SID w tnsnames.ora.
Jeśli masz OPS (RAC), będziesz mieć inną usługę SERVICE_NAME dla każdej instancji.
SERVICE_NAMES określa co najmniej jedną nazwę usługi bazy danych, z którą łączy się ta instancja. Możesz określić wiele nazw usług, aby rozróżnić różne zastosowania tej samej bazy danych. Na przykład:
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
Możesz również użyć nazw usług, aby zidentyfikować jedną usługę, która jest dostępna w dwóch różnych bazach danych za pomocą replikacji.
W środowisku Oracle Parallel Server należy ustawić ten parametr dla każdej instancji.
W skrócie: SID = unikalna nazwa Twojej instancji DB, ServiceName = alias używany podczas łączenia
Wiem, że jest to starożytne, jednak w przypadku skomplikowanych narzędzi, zastosowań, użytkowników lub symptomów nazewnictwa sid i usług można dodać trochę elastyczności do wpisów tnsnames, takich jak:
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)
)
)
Pomyślałem, że zostawię to tutaj, ponieważ jest to łagodnie związane z pytaniem i może być pomocne, gdy próbuję omijać mniej niż wyraźne osobliwości sieci wyroczni.
co to jest identyfikator SID i nazwa usługi
zajrzyj do dokumentacji Oracle pod adresem adresem https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm
W przypadku, gdy powyższy odsyłacz nie będzie dostępny w przyszłości, w czasie pisania tej odpowiedzi powyższy odsyłacz przekieruje Cię do tematu „Usługa bazy danych i identyfikacja instancji bazy danych” w rozdziale „Pojęcia dotyczące łączności” w „Przewodniku administratora usług sieci baz danych” . Ten przewodnik został opublikowany przez oracle jako część „Oracle Database Online Documentation, 10g Release 2 (10.2)”
Kiedy muszę użyć jednego lub drugiego? Dlaczego potrzebuję dwóch z nich?
Rozważ poniższe mapowanie w środowisku RAC,
NAZWA
USŁUGI SID bob1 bob bob2 bob
bob3 bob
bob4 bob
jeśli skonfigurowano równoważenie obciążenia, odbiornik „zrównoważy” obciążenie dla wszystkich czterech identyfikatorów SID. Nawet jeśli równoważenie obciążenia jest skonfigurowane, możesz łączyć się z bob1 przez cały czas, jeśli chcesz, używając identyfikatora SID zamiast SERVICE_NAME.
Proszę zapoznać się z https://community.oracle.com/thread/4049517
Zgodnie z glosariuszem Oracle:
Identyfikator SID to unikatowa nazwa instancji bazy danych Oracle. ---> Aby przełączać się między bazami danych Oracle, użytkownicy muszą określić żądany identyfikator SID <---. Identyfikator SID jest zawarty w częściach CONNECT DATA deskryptorów połączeń w pliku TNSNAMES.ORA oraz w definicji odbiornika sieciowego w pliku LISTENER.ORA. Znany również jako identyfikator systemu. Nazwa usługi Oracle może być dowolną nazwą opisową, na przykład „MyOracleServiceORCL”. W systemie Windows nazwa usługi może działać jako usługa w ramach usług systemu Windows.
Powinieneś użyć SID w TNSNAMES.ORA jako lepszego podejścia.