ORACLE安装报错解决

  今天在虚拟机中安装了一个WINDOWS系统,用于安装oracle服务器;从安装到使用中出现了很多的问题,把这些问题解决掉,花了不少时间,查了不少的资料。

第一个,我在安装过程中,出现了ORA-00922和ORA-28000报错,这是前面的口令设置上太随意了,没有按照oracle的要求设置口令导致;

  ORA-00922选项缺失或无效

错误原因:一般是语句的语法有问题。比如命名不对,关键字写错等等。对于非标准的命名,一般采用双引号来创建。

解决办法:

标识符命名规则:(密码设定规则)

1、必须以字母开始。

2、长度不能超过30个单字节字符。

3、只能包括A-Z,a-z,0-9,_,$和#。

4、不能在相同用户下建立两个同名的对象。

5、不能使用保留字和关键字

  ORA-28000:the account is locked

这是属于在前面配置管理员密码的时候,采用了数字开头的密码,Oracle貌似对此不支持。据说包含其他非法特殊字符也可能产生此问题。

即密码开头不能是数字,只能用标识符命名规则的字符,密码要最少要包含大写字母,小写字母和数字。

 

根据规则设定密码,Oracle实例安装时就不会出现ORA-28000和ORA-00922错误。

我当时是直接重新安装了,查了一下,也有不重新安装的解决办法,我没有尝试过,

方法1:

第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;

第二步:选择myjob,查看users;

第三步:选择system,右击点击“编辑”;

第四步:修改密码,把“帐户被锁住”的勾去掉;

第五步:点击“应用”再点击“关闭”;

第六步:重新登录就可以通过验证了;

 

第二个,解锁SCOTT用户,此用户是ORACLE自带的一个学习用户,不能直接使用,需要先进行解锁才行;

第一步,进入sqlplus,开始菜单>>所有程序>>Oracle - OraDb11g_home1(oracle的安装文件夹名)>>应用程序开发

 ORACLE安装报错解决

点击进去之后就会要求输入用户名和口令,登陆进去之后,执行下面的命令:
    SQL> alter user scott account unlock;

解完以后,使用下面的命令来查看:

 SQL>select username,account_status from dba_users WHERE USERNAME='SCOTT'

可以看到scott账户已经解锁,但是状态还是"expired”(密码过期)的意思。

给其赋一个新的口令

  SQL>alter user scott identified by xinkouling;
这样就ok了,以后可以使用SCOTT用户了;

第三个,在远程连接SCOTT用户时,报错ORA-12170:TNS:连接超时
第一步,检查网络是否可以PING通,打开oracle客户端的cmd,ping一下服务端IP,ping不通就设置两台电脑的IP与网管,保持一致;
第二步,如果可以ping通,服务器监听服务是否启动,进入服务器cmd,输入命令:lsnrctl status
返回如下信息:

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-DEC-2012 15:51:13

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 14-DEC-2012 13:15:28
Uptime 0 days 2 hr. 35 min. 45 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /database/oracle/product/dbhome/network/admin/listener.ora
Listener Log File /database/oracle/product/dbhome/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wgods)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "gsp" has 2 instance(s).
Instance "gsp", status UNKNOWN, has 1 handler(s) for this service...
Instance "gsp", status READY, has 1 handler(s) for this service...
Service "gspXDB" has 1 instance(s).
Instance "gsp", status READY, has 1 handler(s) for this service...
Service "gsp_XPT" has 1 instance(s).
Instance "gsp", status READY, has 1 handler(s) for this service...
The command completed successfully

说明没有问题;

第三步,检查防火墙,在客户端打开cmd使用命令:tnsping ip(服务端ip)

 

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-12月-2012 15:47:15

 

Copyright (c) 1997, 2010, Oracle. All rights reserved.

 

已使用的参数文件:
E:\app\kerry\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

 

已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.150.105)(PORT=1521)))
TNS-12535: TNS: 操作超时

返回了一个报错,说明是防火墙的问题;

解决办法1:关闭服务器防火墙,自己学习使用的,防火墙就无所谓了,可以关闭;别的时候不建议关闭防火墙。

解决办法2:开放oracle的1521端口,允许1521端口被连接;

1.端口的连接命令,telnet,使用方法,telnet ip port(例:192.168.150.105 1521)

一般第一次使用这个命令,会提示telnet不是内部或者外部命令;

解决办法:

1.进入控制面板

2.进入程序和功能

3.从打开的“程序或功能”界面中,点击左上角的“打开或关闭Windows功能”按钮,如图所示:

ORACLE安装报错解决

 

4.此时将弹出“Windows功能”窗口,从列表中选中“Telnet客户端”项,点击“确定”按钮。

ORACLE安装报错解决

 

5.接下来“Windows功能”窗口将显示“正在应用所做的更改”界面,耐心等待一会,待更改操作完成后,点击“关闭”按钮即可。

6.“telnet”命令正常运行。

7.再使用telnet ip port报错,连接失败,
解决办法:打开服务器的1521端口。

1>.在弹出的控制面板信息中选择【系统和安全】,然后选择【Windows 防火墙】,如图。

ORACLE安装报错解决

 

2>.在弹出的防火墙信息中,选择左侧的【高级设置】,如图。

ORACLE安装报错解决

 

3>.在弹出的【高级安全Windows防火墙】设置中,选择左侧的【入站规则】,在右侧选择【新建规则】,如图。

ORACLE安装报错解决

 

4>.进入新建入站规则向导中,选择【端口】,点击下一步,如图。

ORACLE安装报错解决

 

5>.进入新建入站规则向导中,选择TCP规则,然后输入端口号,点击下一步,如图。

ORACLE安装报错解决

 

6>.在接下来弹出的向导信息中,全部默认选择,点击下一步,在最后一步中吗,输入名称和描述,如图。

ORACLE安装报错解决

 

ORACLE安装报错解决

 

 ORACLE安装报错解决

 

7>.查看开放端口的信息,如图使用netstat  -a  -n命令。查看oracle端口是否开启。

ORACLE安装报错解决

 

8>.然后使用telnet ip port不在报错,进入一个新的DOS窗口。

8.数据库客户机可以成功连接服务器了。