Ini benar-benar harus menjadi komentar untuk jawaban Brad Rippe , tetapi sayangnya, tidak cukup perwakilan. Jawaban itu membuat saya 90% dari perjalanan ke sana. Dalam kasus saya, instalasi dan konfigurasi database memasukkan entri dalam file tnsnames.ora untuk database yang saya jalankan. Pertama, saya dapat terhubung ke database dengan mengatur variabel lingkungan (Windows):
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
dan kemudian menghubungkan menggunakan
sqlplus / as sysdba
Selanjutnya, menjalankan perintah dari jawaban Brad Rippe:
select value from v$parameter where name='service_names';
menunjukkan bahwa nama-nama itu tidak sama persis. Entri yang dibuat menggunakan Asisten Konfigurasi Basis Data Oracle tempat asalnya:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
Nama layanan dari kueri mydatabase
lebih dari sekadar mydatabase.mydomain.com
. Saya mengedit file tnsnames.ora menjadi hanya nama dasar tanpa bagian domain sehingga terlihat seperti ini:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
Saya memulai kembali layanan Pendengar TNS (saya sering menggunakan lsnrctl stop
dan lsnrctl start
dari jendela perintah administrator [atau Windows Powershell] alih-alih panel kontrol Layanan, tetapi keduanya berfungsi.) Setelah itu, saya dapat terhubung.