jra*_*ara 12 oracle windows installation
我在 Windows 2008 R2 服务器上安装了 Oracle 11G。我还使用单独的安装介质安装了 Oracle 客户端库。客户端安装后,当我尝试使用以下方法登录数据库时:
C:\>sqlplus / as sysdba
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ORA-01031: 权限不足
这在客户端安装之前有效。我的账号在ORA_DBA
群里。我的帐户也在管理员组中。ORACLE_SID
我的环境变量列表中没有设置。必须是吗?这在客户端安装之前有效,当时我也没有那个变量。
UAC 处于最低级别,我始终cmd
以管理员身份运行。
我sqlnet.ora
在文件夹中有一个这样的文件:
C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN
Run Code Online (Sandbox Code Playgroud)
# sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
Run Code Online (Sandbox Code Playgroud)
# tnsnames.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.mydb.com)
)
)
Run Code Online (Sandbox Code Playgroud)
# listener.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\myaccount\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\myaccount\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\myaccount
Run Code Online (Sandbox Code Playgroud)
从 Windows 注册表(使用 regedit),从路径中Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLE
我可以找到两个键:
KEY_OraClient11g_home1
KEY_OraDb11g_home1
Run Code Online (Sandbox Code Playgroud)
在这些键下,我可以找到ORACLE_HOME
变量。所以看起来客户端安装也生成了,ORACLE_HOME
所以我现在有两个ORACLE_HOME
s。不知道和这个问题有没有关系?
如何在我的 Windows 机器上解决此错误?
问题是您的 Oracle 客户端安装在安装 Oracle Server 之前位于系统 PATH 中(实际上,您甚至提到它在安装客户端之前就可以工作)。
进行如下操作:
删除 Oracle Client,因为它只是令人困惑的事情。使用卸载选项,但随后检查目录和 Oracle 客户端注册表项是否已消失并在必要时手动删除。
(可以通过将 Oracle 客户端主目录放在服务器主目录之后的路径中来使其工作,但仅进行单个安装要简单得多。无论如何,Oracle 服务器安装已经包含完整的 Oracle 客户端)。
确保服务器主目录的路径在您的 PATH 中。路径中没有其他 Oracle 主目录。
确保您的帐户在 ORA_DBA 组中。仔细检查这一点,特别是如果您使用域。
如果所有其他方法都失败了,您可以SQLNET.AUTHENTICATION_SERVICES=(NTS)
从 sqlnet.ora 中删除,因为这将强制您使用密码身份验证。
归档时间: |
|
查看次数: |
368111 次 |
最近记录: |