Home >Database >Mysql Tutorial >Linux下Oracle删除表空间引发错误的解决方法
当来电之后,再次打开机器,在登录oracle用户时,报ldquo;用户的$home/.dmrc已被忽略,这将无法保存 默认会话和语言。该文件应
由于表空间容量不足,需要增加表空间容量,于是在原表空间上新建一个表空间并增加到原表空间上,由于不熟练,导致没有建成功。在创建的过程中,对新添加的表空间进行了多次添加和删除。当时,没有重启机器。所以,没有发现什么问题,用着一切正常。但事事难料,由于夏季用电量大,导致保险丝烧掉,于是造成大面积断电。这台主机也没有幸免。就是这次断电,导致了悲剧的发生。
当来电之后,再次打开机器,在登录Oracle用户时,报“用户的$home/.dmrc已被忽略,这将无法保存 默认会话和语言。该文件应该由用户所有,并且权限设置为644。用户的$home目录应由用户自己所有,别的用户也无法写入”错误。当时没有解决,直接忽略进入系统。进入系统打开sqlplus连接不上指定用户。于是就开始连接sys用户,sys用户可以连接上去,这说明oracle服务打开了。测试监听和em都打开了。打开em一看,监听正常,实例没有打开。而且报出“ora-01033:oracle initialization or shutdown in progress”。这时,就想到了,shutdown oracle之后再startup一次,,看看能不能打开oracle实例。于是,按着自己的想法就测试一下。在关闭重启之后,问题依旧。于是,就在网上搜索一下。
自己总结一下,需要先修正登录oracle用户时的错误。于是就按照网上所说的修改权限的方法,于是就用解决办法:
chmod 755 -R /home/用户名
chmod 644 /home/用户名/.dmrc
来修改登录oracle用户的错误。解决完这一错误之后,接着需要解决oracle实例的错误。
这是需要先用sqlplus sys/密码 as sysdba, 登录sqlplus之后,
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01122: 数据库文件 11 验证失败
ORA-01110: 数据文件 11: 'E:\APP\DATABASE\STU_DB.DBF'
ORA-01203: 此文件的原型错误 - 创建 SCN 错误
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> alter database datafile 11 offline drop; //(这里的“11”就是前面的“数据库文件 11”)
数据库已更改。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> alter database open;
数据库已更改。
SQL> shutdown normal;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
到此,问题解决了。