Pieņemsim, ka man ir Oracle datubāze. Man ir lietotājvārds = x, parole = y, datubāze = z. Es zinu arī ostu = a, SID = b, hostname = c.
Tātad, kā man pareizi izveidot savienojumu? Es izmantoju daudzas iespējas, piemēram:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))
Nosūtot šīs komandrindas, parasti man atgriežas kļūdas ziņojumi, piemēram:
ORA-12560: TNS:protokola adaptera kļūda
ORA-12514: TNS:listener does not currently know of service (TNS:klausītājs pašlaik nezina par pakalpojumu)
Liels paldies iepriekš!!
vai esat mēģinājis
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
modernās sqlplus versijas (11. vai jaunāka versija) saprot šo sintaksi un jums nav nepieciešams tnsnames.ora fails.
Visvienkāršāk ir izmantot failu tnsnames.ora, lai izveidotu savienojumu ar datubāzi. Šim nolūkam rediģējiet to un pievienojiet jaunu ierakstu: Šis fails parasti atrodas direktorijā $ORACLE HOME\NETWORK\ADMIN.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
un tad jūs varētu izveidot savienojumu ar db:
sqlplus x/y@myDb
Varbūt jūsu datubāze nav atjaunota. Ja mašīna tika restartēta un instancei nav iestatīta automātiskā palaišana (un tā netika palaista manuāli), iespējams, jums pašam būs nepieciešams palaist pakalpojumu.
Ja jums ir piekļuve ekrānam Pakalpojumi, varat to izdarīt no turienes; vai arī varat to izdarīt no komandrindas.
Dodieties uz komandu uzvedni un ievadiet šādas komandas:
set oracle_sid=ORCL
net start oracleserviceORCL
Pirmā no tām nosaka Oracle SID, bet otrā faktiski iedarbina pakalpojumu.