ORACLE initialization or shutdown in progress
问题描述:
20100827(周五)下班前测试服务器的数据库还是好好的,周一上班本地启动tomcat马上就报异常信息:
2010-08-30 10:18:02,364 WARN [org.hibernate.cfg.SettingsFactory] - <could not obtain connection metadata>
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01033: ORACLE initialization or shutdown in progress
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:
Caused by: java.sql.SQLException:
ORA-01033: ORACLE initialization or shutdown in progress郁闷了,怎么会这样,搞得我们整个团队的部分开发、测试工作无法进行。
问题解决过程:
1:先用一个普通用户登录到测试服务器如:
ssh tomcat@192.168.0.88 进入/home目录发现没有oracle这个用户目录
2:查看/etc/passwd文件,发现有oracle这样一个用户
。。。。。
oracle:x:1001:1001::/usr/lib/oracle/xe:/bin/bash
。。。。。
3: sudo -i 切换到root用户,在/home目录下创建一个oracle用户目录
4:root用户 passwd oracle设置密码
5:修改/etc/passwd文件中oracle用户的内容为:
。。。。。
oracle:x:1001:1001::/home/oracle:/bin/bash
。。。。。
6: 编辑 /etc/profile文件添加oracle的环境变量如下:
。。。。。。
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export PATH=${ORACLE_HOME}/bin:$PATH
#export NLS_LANG=AMERICAN_AMERICA.AL16UTF8
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
。。。。。
补充:
/etc/profile文件中设置的变量对所有用户有效(针对系统所有用户)
/etc/enviroment文件中设置的变量对整个系统有效(针对整个系统)
7:用新建的oracle用户登录测试服务器 ssh oracle@cs
8: echo $PATH 查看环境变量信息,显示如下:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin表示oracle的环境路径,如path中没有这个oracle的路径设置,oracle用户在终端执行sqlplus 是会提示 command not found.
9:sqlplus /nolog (启动sqlplus但不进行连接操作)
10: conn sys/root as sysdba 用户sys作为dba用户连接数据库
11:shutdown immediate
12:startup 提示
Total System Global Area 591396864 bytes
Fixed Size 1260220 bytes
Variable Size 163579204 bytes
Database Buffers 423624704 bytes
Redo Buffers 2932736 bytes
数据库装载完毕。
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: '/opt/oracle/point.dbf'
13: 好吧,第12步告诉我要恢复/opt/oracle/point.dbf这个文件,那我就恢复它吧,
是什么原因造成这个文件要恢复呢? 由于我们在创建用户point的表空间的时候指定了该用户的表空间的大小为:512MB,而我查看了该文件的大小目前为527MB,超过了指定的表空间大小,导致报ORACLE initialization or shutdown in progress
14:恢复数据库介质
14.1:shutdown abort
14.2:startup nomount
14.3:recover datafile '/opt/oracle/point.dbf';
提示:
Linux Error: 13: Permission denied
Additional information: 3
又切换到root用户 执行
chown -R oracle /opt/oralce 将/opt/oracle/目录下的所有文件赋予oracle用户
14.4:重新执行 recover datafile ‘opt/oracle/point.dbf'
提示:完成介质恢复。
14.5: alter database open;
提示:
第 1 行出现错误:
ORA-01113: ?? 6 ??????
ORA-01110: ???? 6: '/opt/oracle/game.dbf'
shit原来还有game用户的表空间要恢复 再次执行
14.6:recover datafile '/opt/oracle/game.dbf'
提示:完成介质恢复。
14.7:alter database open
15:重新启动数据库
15.1:shutdown immediate
15.2:startup mount
15.3: lsnrctl start
提示:
SP2-0734: 未知的命令开头 "lsnrctl st..." - 忽略了剩余的行。
shit怎么会提示这个问题,原因是:lsnrctl 命令报不能在sqlplus环境中执行
退出sqlplus在命令行执行
lsnrctl start 即可启动oracle数据库的监听器了,或者重新启动数据库即可。
16:sudo reboot</could>
tomcat启动 ORACLE initialization or shutdown in progress
最新推荐文章于 2024-05-23 14:28:00 发布