日常问题解决记录三:记一次Win10安装Oracle11g后遇到的问题
环境:64位Win10,Oracle11g
1)INS-13001环境不满足最低要求
这是因为版本注册问题,默认oracle 11没有添加win10的注册信息,所以要将win10的注册信息添加到oracle的配置文件里。
在database\stage\cvu\cvu_prereq.xml新增:
<OPERATING_SYSTEM RELEASE="6.2"> <VERSION VALUE="3"/> <ARCHITECTURE VALUE="64-bit"/> <NAME VALUE="Windows 10"/> <ENV_VAR_LIST> <ENV_VAR NAME="PATH" MAX_LENGTH="1023" /> </ENV_VAR_LIST> </OPERATING_SYSTEM>
2)sqlPlus中文乱码
需要添加环境变量NLS_LANG。
查询环境变量语句:
select userenv('language') from dual;
例如设置环境变量:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3)shutdown transactional 后startup无法启动
- 现象
shutdown transactional显示:
数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
startup报错:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
再次startup mount ,则报错:
ORA-24324: 未初始化服务句柄 ORA-01041: 内部错误, hostdef 扩展名不存在
退出sqlplus后再次登录报错:
ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 进程 ID: 0 会话 ID: 0 序列号: 0
-
解决方法
①修改instantclient_11_2\NETWORK\ADMIN\listener.ora,新增orcl的监听配置
②重启侦听服务
③sysdba登录后starup
如下:
C:\Windows\system32>lsnrctl stop
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 17-9月 -2018 15:16:21
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
命令执行成功
C:\Windows\system32>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 17-9月 -2018 15:16:34
Copyright (c) 1991, 2010, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为D:\SDE\DB\oracle\instantclient_11_2\NETWORK\ADMIN\listener.ora
写入d:\sde\db\oracle11g\diag\tnslsnr\DESKTOP-Q00VK55\listener\alert\log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期 17-9月 -2018 15:16:35
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\SDE\DB\oracle\instantclient_11_2\NETWORK\ADMIN\listener.ora
监听程序日志文件 d:\sde\db\oracle11g\diag\tnslsnr\DESKTOP-Q00VK55\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Windows\system32>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 9月 17 15:16:57 2018
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect system/1234567@orcl as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 6797832192 bytes
Fixed Size 2188648 bytes
Variable Size 3523218072 bytes
Database Buffers 3254779904 bytes
Redo Buffers 17645568 bytes
数据库装载完毕。
数据库已经打开。
4)修改listener.ora文件被拒绝
修改文件-属性-安全-Authenticated Users权限-完全控制。
5)启动Scott用户
练习可以scott用户,不过scott用户默认锁定。我们可以解锁并更改登录口令。
C:\Windows\system32>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期二 9月 18 16:12:29 2018 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect /as sysdba 已连接。 SQL> alter user scott account unlock
用户已更改。
SQL> connect scott/tiger
ERROR
ORA-28001: the password has expired
更改 scott 的口令
新口令
重新键入新口令:
口令已更改
已连接。
SQL> show user
USER 为 "SCOTT"