Heim Datenbank MySQL-Tutorial Oracle连接出现ora-12154

Oracle连接出现ora-12154

Jun 07, 2016 pm 05:46 PM
nbsp oracle quot service

Oracle连接出现ora-12154


配置好rac后,两个节点用tnsping都可以ping通,但用sqlplus连接都出现以下错误,不知道哪里出了问题
[oracle@rac2 admin]$ lsnrctl status

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAR-2008 08:32:26

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Start Date                04-MAR-2008 08:29:03
Uptime                    0 days 0 hr. 3 min. 22 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /home/oracle/9.2.0.4/network/admin/listener.ora
Listener Log File         /home/oracle/9.2.0.4/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac2)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "esal" has 2 instance(s).
  Instance "rac1", status READY, has 1 handler(s) for this service...
  Instance "rac2", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@rac2 admin]$ lsnrctl service

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAR-2008 08:32:32

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "esal" has 2 instance(s).
  Instance "rac1", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         REMOTE SERVER
         (address=(protocol=tcp)(host=rac1)(port=1521))
  Instance "rac2", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
The command completed successfully
[oracle@rac2 admin]$ sqlplus

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Mar 4 08:32:45 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name


Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:
ERROR:
ORA-12154: TNS:could not resolve service name


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@rac2 admin]$ sqlplus

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Mar 4 08:32:59 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name


Enter user-name:


按照如下过程,一般都能解决:

在虚拟机内开cmd,用lsnrctl status查看监听器监听的服务
如看到监听服务“orcl”,那在本机的tns配置中(SERVICE_NAME = orcl)必须写orcl;如果想要自定义,则在虚拟机内的listener配置中就要加入自定义服务名,记得要重启监听服务:lsnrctl reload
最后形成的配置文件如下
虚拟机listener:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)      自定义服务名
      (ORACLE_HOME = E:oracleproduct10.2.0db_1) db_home
      (SID_NAME = test)      

    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:oracleproduct10.2.0db_1)  ##这个服务保证你可以使用外部过程,如C程序
    )
  )

本机tns:

ORCL_XNJ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)  与自定义服务名对应
    )
  )

再次连接,问题解决!

记住,一定从最简单的原因找起,不要一上去就看到网上的什么改process数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。

VS2008连接oracle 出现错误 ora-12154 tns 无法解析指定的连接标示符


在保证你的代码没有错误的前提下:
(一)检查OracleOraDb10g_home1TNSListener 服务有没有启动,即监听服务
(二)检查tnsnames.ora是否添加连接串(建议用SQLPLUS或者pl/sql测试),其路径一般是:%Oracle_home%product10.2.0db_1NETWORKADMINtnsnames.ora

以上答案供参考

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? May 10, 2024 am 03:27 AM

Der Aufbewahrungszeitraum von Oracle-Datenbankprotokollen hängt vom Protokolltyp und der Konfiguration ab, einschließlich: Redo-Protokolle: Wird durch die maximale Größe bestimmt, die mit dem Parameter „LOG_ARCHIVE_DEST“ konfiguriert wird. Archivierte Redo-Protokolle: Bestimmt durch die maximale Größe, die durch den Parameter „DB_RECOVERY_FILE_DEST_SIZE“ konfiguriert wird. Online-Redo-Logs: nicht archiviert, gehen beim Neustart der Datenbank verloren und der Aufbewahrungszeitraum stimmt mit der Instanzlaufzeit überein. Audit-Protokoll: Wird durch den Parameter „AUDIT_TRAIL“ konfiguriert und standardmäßig 30 Tage lang aufbewahrt.

Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle May 08, 2024 pm 07:45 PM

Die Funktion in Oracle zum Berechnen der Anzahl der Tage zwischen zwei Daten ist DATEDIFF(). Die spezifische Verwendung ist wie folgt: Geben Sie die Zeitintervalleinheit an: Intervall (z. B. Tag, Monat, Jahr) Geben Sie zwei Datumswerte an: Datum1 und Datum2DATEDIFF(Intervall, Datum1, Datum2) Gibt die Differenz in Tagen zurück

Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist May 10, 2024 am 01:48 AM

Die Startsequenz der Oracle-Datenbank ist: 1. Überprüfen Sie die Voraussetzungen. 3. Starten Sie die Datenbankinstanz. 6. Überprüfen Sie den Datenbankstatus . Aktivieren Sie den Dienst (falls erforderlich). 8. Testen Sie die Verbindung.

So verwenden Sie das Intervall in Oracle So verwenden Sie das Intervall in Oracle May 08, 2024 pm 07:54 PM

Der Datentyp INTERVAL wird in Oracle zur Darstellung von Zeitintervallen verwendet. Die Syntax lautet INTERVAL <Präzision> <Einheit>. Sie können Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen verwenden, um INTERVAL zu betreiben, was für Szenarien wie das Speichern von Zeitdaten geeignet ist Berechnung von Datumsdifferenzen.

So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle May 09, 2024 pm 09:33 PM

Um die Anzahl der Vorkommen eines Zeichens in Oracle zu ermitteln, führen Sie die folgenden Schritte aus: Ermitteln Sie die Gesamtlänge einer Zeichenfolge. Ermitteln Sie die Länge der Teilzeichenfolge, in der ein Zeichen vorkommt. Zählen Sie die Anzahl der Vorkommen eines Zeichens, indem Sie die Länge der Teilzeichenfolge subtrahieren von der Gesamtlänge.

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers May 10, 2024 am 04:00 AM

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers: Prozessor: Multi-Core, mit einer Hauptfrequenz von mindestens 2,5 GHz. Für große Datenbanken werden 32 Kerne oder mehr empfohlen. Speicher: Mindestens 8 GB für kleine Datenbanken, 16–64 GB für mittelgroße Datenbanken, bis zu 512 GB oder mehr für große Datenbanken oder hohe Arbeitslasten. Speicher: SSD- oder NVMe-Festplatten, RAID-Arrays für Redundanz und Leistung. Netzwerk: Hochgeschwindigkeitsnetzwerk (10 GbE oder höher), dedizierte Netzwerkkarte, Netzwerk mit geringer Latenz. Sonstiges: Stabile Stromversorgung, redundante Komponenten, kompatibles Betriebssystem und Software, Wärmeableitung und Kühlsystem.

Wie viel Speicher benötigt Oracle? Wie viel Speicher benötigt Oracle? May 10, 2024 am 04:12 AM

Die von Oracle benötigte Speichermenge hängt von der Datenbankgröße, dem Aktivitätsniveau und dem erforderlichen Leistungsniveau ab: zum Speichern von Datenpuffern, Indexpuffern, zum Ausführen von SQL-Anweisungen und zum Verwalten des Datenwörterbuch-Cache. Die genaue Menge hängt von der Datenbankgröße, dem Aktivitätsgrad und dem erforderlichen Leistungsniveau ab. Zu den Best Practices gehören das Festlegen der geeigneten SGA-Größe, die Dimensionierung von SGA-Komponenten, die Verwendung von AMM und die Überwachung der Speichernutzung.

So ersetzen Sie eine Zeichenfolge in Oracle So ersetzen Sie eine Zeichenfolge in Oracle May 08, 2024 pm 07:24 PM

Die Methode zum Ersetzen von Zeichenfolgen in Oracle besteht in der Verwendung der REPLACE-Funktion. Die Syntax dieser Funktion lautet: REPLACE(string, search_string, replacement_string). Verwendungsschritte: 1. Identifizieren Sie die zu ersetzende Teilzeichenfolge. 2. Bestimmen Sie die neue Zeichenfolge, um die Teilzeichenfolge zu ersetzen. 3. Verwenden Sie zum Ersetzen die REPLACE-Funktion. Zur erweiterten Verwendung gehören: Mehrfachersetzungen, Berücksichtigung der Groß-/Kleinschreibung, Ersetzung von Sonderzeichen usw.

See all articles