簡體   English   中英

使用sqlplus但無密碼連接到Oracle XE版

[英]Connecting to Oracle XE edition with sqlplus but without password

是的,我見過https://dba.stackexchange.com/a/140147

在這個答案和 web 的其他地方提到的命令sqlplus / as sysdba仍然要求我在安裝時輸入密碼:

Oracle Linux 7.7

oracle-database-xe-21c-1.0-1.x86_64

但是,該命令仍然要求我輸入密碼:

[root@localhost ~]# su - oracle
Last login: Fri Sep  2 09:01:34 EDT 2022 on pts/0

[oracle@localhost bin]$ export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE

[oracle@localhost bin]$ cd /opt/oracle/product/21c/dbhomeXE/bin/

[oracle@localhost bin]$ ./sqlplus  / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Sep 2 09:02:24 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name: 

我真的不需要任何數據庫。 我的工作是收集有關 Oracle 安裝的一些元信息,例如版本、配置文件、數據庫文件目錄等。

是的,我可以從 RedHat 上的 oracle 系統文件和類似文件中讀取一些信息(Oracle Linux 是從 RH 源編譯的,它與 RH 非常相似)。 不過,某些信息僅在sqlplus中可用。

更新

關於 shell 環境,我作為oracle用戶完成的是:

export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE

[oracle@localhost bin]$ ./oraenv 
ORACLE_SID = [oracle] ? 
ORACLE_HOME = [/home/oracle] ? /opt/oracle/product/21c/dbhomeXE
The Oracle base has been set to /opt/oracle

但是,以下命令仍然要求我輸入密碼:

[oracle@localhost bin]$ ./sqlplus -l / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Sep 2 09:24:55 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified


SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus
[oracle@localhost bin]$ 
[oracle@localhost bin]$ ./sqlplus  / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Sep 2 09:24:59 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name: 

由於初始登錄嘗試失敗,出現“輸入用戶名:”提示,出現 ORA-12162。 默認情況下,它最多會嘗試登錄 3 次,每次都提示輸入憑據 - 第一次除外,因為您提供了第一個在命令行上嘗試的設置。

如果您執行./sqlplus -l / as sysdba那么它只會嘗試登錄一次,而不是重新提示錯誤(稍微解釋一下使用說明)。

但它仍然會在第一次出現 ORA-12162 錯誤。

您的環境設置不正確。 您手動設置了ORACLE_HOME ,但沒有設置任何其他Oracle 相關的環境變量 特別是這里ORACLE_SID (或者可能是TWO_TASK遠程連接)。 您可能還想正確設置PATH等其他內容。

Oracle 主bin目錄包含一個oraenv腳本,您可以獲取該腳本(而不僅僅是執行它)來為特定的本地數據庫設置環境,使用

. ${ORACLE_HOME}/bin/oraenv

或者

source ${ORACLE_HOME}/bin/oraenv

...但您可能更喜歡手動設置。

我真的不需要任何數據庫。 我的工作是收集有關 Oracle 安裝的一些元信息,例如版本、配置文件、數據庫文件目錄等。

您已經從ORACLE_HOME路徑有效地知道了數據庫軟件版本 21c,但是bin目錄中有一個oraversion可執行文件,可讓您獲得有關該主目錄中 Oracle 二進制文件版本的更多詳細信息。

信息的 rest 特定於數據庫。 您可能能夠找到一個文本pfile ,或者更可能是一個二進制spfile ,但是您使用的 ASM 可能不在正常的本地文件系統上。 真的,你確實需要連接到數據庫來詢問它的文件和目錄位置等。

(數據庫版本也可能與二進制版本略有不同 - 它不應該是真的,但我認為如果某些升級腳本尚未運行,則可能會在升級中進行。不過我可能是錯的。但是無論如何查詢v$version以確定。)

目標是檢測安裝在代理工作的所有端點上的軟件系統,例如 Oracle

如果服務器充當 Oracle 數據庫服務器,那么它應該有一個oratab文件,通常是/etc/oratab/var/opt/oracle/oratab或類似文件 - 您可能需要locate它。

這以冒號分隔的形式列出了所有本地數據庫,例如orcl:/opt/oracle/product/21c/dbhomeXE:Y ,前兩個元素是ORACLE_SIDORACLE_HOME值。 (第三個是自動啟動標志)。 因此,您可以解析該文件以識別 Oracle 主目錄(或多個目錄;可能有多個),以及為每個版本傳遞給oraenv並且您可以嘗試登錄的 SID 值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM