นี่ควรเป็นความเห็นต่อคำตอบของBrad Rippeแต่อนิจจาตัวแทนไม่เพียงพอ คำตอบนั้นทำให้ฉัน 90% ของวิธีการที่นั่น ในกรณีของฉันการติดตั้งและกำหนดค่าฐานข้อมูลจะใส่รายการในไฟล์ tnsnames.ora สำหรับฐานข้อมูลที่ฉันใช้ ก่อนอื่นฉันสามารถเชื่อมต่อกับฐานข้อมูลโดยการตั้งค่าตัวแปรสภาพแวดล้อม (Windows):
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
จากนั้นเชื่อมต่อโดยใช้
sqlplus / as sysdba
ถัดไปเรียกใช้คำสั่งจากคำตอบของ Brad Rippe:
select value from v$parameter where name='service_names';
แสดงให้เห็นว่าชื่อไม่ตรงกันทั้งหมด รายการตามที่สร้างขึ้นโดยใช้ Database Configuration Assistant ของ Oracle ที่เดิม:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
ชื่อบริการจากแบบสอบถามเป็นเพียงมากกว่าmydatabase
mydatabase.mydomain.com
ฉันแก้ไขไฟล์ tnsnames.ora เป็นชื่อฐานโดยไม่มีส่วนโดเมนดังนั้นพวกเขาจึงมีลักษณะดังนี้:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
ฉันเริ่มบริการฟัง TNS (ฉันมักจะใช้lsnrctl stop
และlsnrctl start
จากหน้าต่างคำสั่งผู้ดูแลระบบ [หรือ Windows Powershell] แทนแผงควบคุมบริการ แต่ทำงานได้ทั้งคู่) หลังจากนั้นฉันสามารถเชื่อมต่อได้