Mic*_*ael 6 database oracle oracle11g windows-7-x64
我是一个刚开始使用 Oracle 数据库的新手,Oracle XE 11g在将 x64的最后一个版本安装到 Microsoft Windows 7 x64 Enterprise 时遇到了这个问题。
在安装过程中没有任何错误,Windows 服务(OracleXETNSListener和OracleServiceXE)已成功创建并启动。

但是,当我尝试获取可用数据库列表时收到错误
ORA-01034: ORACLE 不可用
出于某种原因,XE 数据库没有被创建到%ORACLE_BASE%\oradata\XE.

我的 listener.ora 与 localhost 的内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Run Code Online (Sandbox Code Playgroud)
我通过设置 localhost IP 地址修复了 tnsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
Run Code Online (Sandbox Code Playgroud)
sqlnet.ora 包含两个服务:
SQLNET.AUTHENTICATION_SERVICES = (NONE;NTS)
Run Code Online (Sandbox Code Playgroud)
来自“%ORACLE_HOME%\server\log\myhost\client”的日志文件包含以下错误:
Oracle 数据库 11g 集群件 11.2.0.2.0 版 - 生产 版权所有 1996、2010 Oracle。版权所有。2016-01-20 19:51:43.920: [ default][5096]ut_read_reg:2:ocr 注册表项 SOFTWARE\Oracle\olr 无法打开。错误 2 [
CLSE][5096]clse_get_crs_home:检索 OLR 配置时出错 [0] [打开 olr 注册表项时出错。?? ??????? ????? ????????? ????. ]
如何找出问题所在并解决问题?
在为这个问题苦苦挣扎了将近一个星期后,我找到了一个解决方案,即如何从此源提供 XE 数据库。它是俄语的,我在这里用英语提供解决方案。
c:\oraclexe使用默认密码admin从 Oracle 站点将最新版本的 Oracle XE 11gR2 安装到默认位置。如果不是默认值,那么您应该在使用它们之前编辑下面的脚本(路径和密码)。
在管理员权限下运行cmd命令行并使用它直到重新配置结束。首先,为您的数据库设置环境变量:
set ORACLE_SID=XE
set ORACLE_BASE=c:\oraclexe\app\oracle
set ORACLE_HOME=c:\oraclexe\app\oracle\product\11.2.0\server
Run Code Online (Sandbox Code Playgroud)通过命令删除XE数据库:
oradim -delete -sid XE
Run Code Online (Sandbox Code Playgroud)删除PWDXE.ORA file:
del %ORACLE_HOME%\database\PWDXE.ORA
Run Code Online (Sandbox Code Playgroud)init.ora从%ORACLE_HOME%\config\scriptsto复制%ORACLE_HOME%\database,而不是现有,将其重命名为initXE.ora并添加以下配置:
open_cursors=300
db_name=XE
control_files=("C:\oraclexe\app\oracle\oradata\XE\control.dbf")
job_queue_processes=4
compatible=11.2.0.0.0
diagnostic_dest=C:\oraclexe\app\oracle\.
memory_target=1G
sessions=100
audit_file_dest=C:\oraclexe\app\oracle\admin\XE\adump
remote_login_passwordfile=EXCLUSIVE
dispatchers="(PROTOCOL=TCP) (SERVICE=XEXDB)"
shared_servers=4
undo_management=AUTO
undo_tablespace=UNDOTBS1
DB_RECOVERY_FILE_DEST_SIZE = 10G
DB_RECOVERY_FILE_DEST=C:\oraclexe\app\oracle\fast_recovery_area
#optional
nls_language="RUSSIAN"
nls_territory="RUSSIA"
Run Code Online (Sandbox Code Playgroud)从前面带有 admin 特权的cmd行运行命令以创建 Oracle 服务和文件%ORACLE_HOME%\database\PWDXE.ORA:
oradim -new -sid %ORACLE_SID% -intpwd admin -startmode auto -srvcstart system
Run Code Online (Sandbox Code Playgroud)运行以下命令以停止 Windows Oracle XE 服务,删除它们和其他 XE 文件:
sqlplus /nolog
connect sys/admin as sysdba;
shutdown immediate;
exit;
del %ORACLE_BASE%\oradata\XE\CONTROL.DBF
del %ORACLE_BASE%\fast_recovery_area\XE\ONLINELOG\*.LOG
Run Code Online (Sandbox Code Playgroud)在一个目录下创建两个文件:
set ORACLE_SID=XE
set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
set ORACLE_BASE=C:\oraclexe\app\oracle
sqlplus /nolog @createXE.sql
Run Code Online (Sandbox Code Playgroud)
set ORACLE_SID=XE
set ORACLE_BASE=c:\oraclexe\app\oracle
set ORACLE_HOME=c:\oraclexe\app\oracle\product\11.2.0\server
Run Code Online (Sandbox Code Playgroud)
从具有管理员权限的命令行运行createdXE.cmd。
完毕。
| 归档时间: |
|
| 查看次数: |
14130 次 |
| 最近记录: |