To naprawdę powinien być komentarz do odpowiedzi Brada Rippe'a , ale niestety, za mało przedstawicieli. Ta odpowiedź zapewniła mi 90% drogi. W moim przypadku instalacja i konfiguracja baz danych umieściły wpisy w pliku tnsnames.ora dla baz danych, które uruchomiłem. Po pierwsze, udało mi się połączyć z bazą danych, ustawiając zmienne środowiskowe (Windows):
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
a następnie połączenie za pomocą
sqlplus / as sysdba
Następnie uruchom polecenie z odpowiedzi Brada Rippe'a:
select value from v$parameter where name='service_names';
pokazał, że nazwy nie pasują dokładnie. Wpisy utworzone za pomocą Asystenta konfiguracji bazy danych Oracle, w których pierwotnie:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
Nazwa usługi z zapytania była po prostu mydatabase
zamiast mydatabase.mydomain.com
. Edytowałem plik tnsnames.ora tylko do nazwy podstawowej bez części domeny, więc wyglądały tak:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
Zrestartowałem usługę nasłuchiwania TNS (często używam lsnrctl stop
i lsnrctl start
z okna poleceń administratora [lub Windows Powershell] zamiast z panelu sterowania usług, ale oba działają.) Potem mogłem się połączyć.