Kodėl man reikia dviejų? Kada turiu naudoti vieną ar kitą?
@DAC
Trumpai tariant: SID = unikalus pavadinimas jūsų DB, ServiceName = naudojamas slapyvardis jungiantis
Ne visai tiesa.. SID = unikalus INSTANCIJOS (pvz., kompiuteryje veikiančio "oracle" proceso) vardas. "Oracle" mano, kad "Duomenų bazė" yra failai.
Paslaugos pavadinimas = INSTANCIJOS (arba daugelio instancijų) slapyvardis. Pagrindinė to paskirtis - jei naudojate klasterį, klientas gali pasakyti "connect me to SALES.acme.com", o DBA gali keisti SALES.acme.com užklausoms prieinamų egzempliorių skaičių arba net perkelti SALES.acme.com į visiškai kitą duomenų bazę, o klientui nereikia keisti jokių nustatymų.
Žr: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
Kuo skiriasi "Oracle SID ir "Oracle" PASLAUGŲ NAMAI. Vienas konfigūravimo įrankis ieško SERVICE NAME ir tada kitas ieško SID! Kas yra vyksta?!
Oracle SID yra unikalus vardas, kuris unikaliai identifikuoja jūsų egzempliorių / duomenų bazę, kur kaip Service vardas yra TNS slapyvardis, kurį suteikiate kai nuotoliniu būdu prisijungiate prie savo duomenų bazę, ir šis paslaugos vardas yra įrašomas į Tnsnames.ora failą jūsų klientuose ir jis gali būti toks pat kaip SID ir taip pat galite suteikti bet kokį kitą vardą, kurį norite.
SERVICE_NAME yra nauja funkcija iš oracle 8i ir vėlesnių, kuriose duomenų bazės gali užsiregistruoti su klausytoju. Jei duomenų bazė yra užregistruota klausytojui tokiu būdu, tuomet galite naudoti SERVICE_NAME parametrą tnsnames.ora priešingu atveju - naudoti SID parametrą tnsnames.ora.
Be to, jei turite OPS (RAC), galėsite turėsite skirtingus SERVICE_NAME kiekvienam egzempliorių.
SERVICE_NAMES nurodo vieną ar daugiau duomenų bazės paslaugos vardai, kuriuos reikia prie kurios jungiasi šis egzempliorius. Jūs galite nurodyti kelis paslaugų pavadinimus kad būtų galima atskirti skirtingus tos pačios duomenų bazės naudojimą. Pavyzdžiui, pavyzdžiui:
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
Paslaugų pavadinimus taip pat galite naudoti identifikuoti vieną paslaugą, kuri yra galima gauti iš dviejų skirtingų duomenų bazių naudojant replikaciją.
"Oracle" lygiagrečiame serveryje aplinkoje turite nustatyti šį parametrą kiekvienam egzemplioriui.
Trumpai tariant: SID = unikalus jūsų DB egzemplioriaus vardas, ServiceName = slapyvardis, naudojamas jungiantis
Kaip nurodyta "Oracle" žodyne :
SID yra unikalus "Oracle" duomenų bazės egzemplioriaus vardas. ---> Norėdami perjungti tarp "Oracle" duomenų bazių, vartotojai turi nurodyti norimą SID <---. SID yra įtrauktas į prisijungimo deskriptorių CONNECT DATA dalis TNSNAMES.ORA faile ir tinklo klausytojo apibrėžime rinkmenoje LISTENER.ORA. Taip pat žinomas kaip sistemos ID. "Oracle" paslaugos pavadinimas gali būti bet koks aprašomasis, pavyzdžiui, "MyOracleServiceORCL". "Windows" sistemoje, galite savo paslaugos pavadinimą paleisti kaip paslaugą, esančią "Windows Services".
Turėtumėte naudoti SID TNSNAMES.ORA kaip geresnį metodą.