我的linux oracle中UNDOTBS1.DBF文件被rm删了,现在数据库起不来,怎么办?
首先,undo表空间满是正常的,oracle自然会重用或者扩展它,一般不用管它。
然后,现在要解决的话,需要先把undo tablespace设置成手动,启动数据库,创建新的undo tablespace。把新的设置成默认的。
假设你的库现在是mounted状态
1 创建PFILE(如果已有就是更新)
SQL>create pfile from spfile;
2 关闭数据库
SQL>shutdown immediate
3 在你的$ORACLE_HOME/dbs目录下面找个叫做
init.ora的文件,把其中有undo_management=AUTO的一行改成
undo_management=MANUAL
如果没有就在文件末尾填一行
4 以sysdba身份连接数据库
SQL>connect "/ as sysdba"
用刚才改过的文件启动数据库
SQL> startup pfile=
这步是最关键的,如果成功,后面就没问题了
5 drop掉原来的表空间
SQL> drop tablespace including contents;
6 创建新的undo表空间
SQL> create UNDO tablespace undotbs2 datafile '/u01/app/oracle/oradata/orcl/undotbs02.dbf' size 100M autoextend on;
7 关闭数据库,
SQL>shutdown immediate
在开始那个init文件里设置UNDO_MANAGEMENT=AUTO
和 UNDO_TABLESPACE=UNDOTBS2
8 再做一次第四步
9 更新spfile
SQL>create spfile from pfile;
10 关闭数据库,正常重新启动
SQL>shutdown immediate
SQL>startup
11 去网上教你删undo那个地方骂它。非常想当然的做法。没有任何理由这么做
12 让你的工程师去学oracle 培训
以上步骤的中的第5步可能会出问题。我不确认。。。 但是即使第5步不成功,问题应该也不大
修改默认的undo表空间。需要修改一下参数的把。修改完参数后。新的undo信息就会写到新的undo表空间了。
Oracle DBA神器:PRM-DUL灾难恢复工具可以直接从这种受损的Oracle数据库中将数据拯救出来。当你的数据库因为ORA-00600/ORA-07445或其他ORA-报错,或丢失关键的system表空间数据文件,或ASM diskgroup损坏时均可以考虑采用PRM-DUL来做恢复。PRM-DUL采用独创的DataBridge恢复技术,直接从数据文件中抽取数据后可以像DBLINK那样直接插入到新建数据库中,而无需数据落地成为DMP文件占用空间。
shutdown abort
startup mount
alter database datafile 15 offline;
alter database open;
直接drop这个undo 表空间然后重新创建一个新的就行了
之成氢溴: 你的java支持环境问题,oracle安装程序是java写的,如果没有java运行环境是不能启动的
南康市13341301388: Oracle Linux 5远程telnet时提示Unencrypted connection怎么办 - ?
之成氢溴: 看看 /etc/xinetd.d/ekrb5-telnet 中 是否有 disable=yes 如果不是改成 disable=yes 重启xinetd服务 service xinetd restart
南康市13341301388: 我的linux oracle中UNDOTBS1.DBF文件被rm删了,现在数据库起不来,怎么办? - ?
之成氢溴: Oracle DBA神器:PRM-DUL灾难恢复工具可以直接从这种受损的Oracle数据库中将数据拯救出来.当你的数据库因为ORA-00600/ORA-07445或其他ORA-报错,或丢失关键的system表空间数据文件,或ASM diskgroup损坏时均可以考虑采用PRM-DUL来做恢复.PRM-DUL采用独创的DataBridge恢复技术,直接从数据文件中抽取数据后可以像DBLINK那样直接插入到新建数据库中,而无需数据落地成为DMP文件占用空间.
南康市13341301388: linux下怎么启动oracle数据库,命令是什么? - ?
之成氢溴: 我用的是Redhat Linux,用下面的步骤来启动oracle数据库. 首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令: 第一步:打开Oracle监听 $ lsnrctl start 第二步:进入sqlplus $ sqlplus /nolog SQL> 第三步:使用sysdab角色登录sqlplus SQL> conn /as sysdba 第四步:启动数据库 SQL> startup 经过上面的四个步骤,oracle数据库就可以启动了.
南康市13341301388: linux下的oracle导入数据出问题,我是第一次使用linux,请高手帮忙啊!谢谢! - ?
之成氢溴: ora-12154通常的检查和处理办法:1、首先查看客户端的tnsnames.ora文件,找到数据库连接的描述中,sid= 或service_name=之后的名称,假设这个名称是orcl.2、然后在客户端用tnsping命令,测试刚才找到的实例名,命令:tnsping orcl 如果不通,则要从网络环境、数据库环境等方面找原因,看是否实例名错误、数据库是否启动、数据库监听是否启动、网络是否通畅
南康市13341301388: linux下oracle数据库怎么登陆? - ?
之成氢溴: 1. 设置ORACLE_SID 默认的ORACLE_SID是orcl,我个人强烈建议起个唯一、且意义的名字,比如**testdb,**proddb等等,在Oracle用户下执行:export ORACLE_SID=lxdbtest. 2. 启动/关闭服务 输入 startup.startup参数 不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式.3. nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用.
南康市13341301388: linux下oracle服务命令的使用 - ?
之成氢溴: netca 全称是Oracle Net Configuration Assistant,用来启动配置网络服务的图形化向导程序,软件安装阶段会自动启动;netmgr全称是Oracle Net Manager,功能与前者相似,个人用前者比较多;以上两个软件的具体使用可参考文档:Oracle ...
南康市13341301388: linux里 oracle数据库的密码怎么改 - ?
之成氢溴: 如果是操作系统的oracle用户密码,直接用root改.#passwd oracle,输入新密码;如果是oracle数据库用户比如user1的密码.可以用sysdba权限的用户登录数据库,如sqlplus '/as sysdba' 在SQL提示符下输入alter user user1 identified by 新密码;
南康市13341301388: 如何查看linux下mysql安装目录 - ?
之成氢溴: 一、查看文件安装路径由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址).这里以mysql为例.比如说我安装了mysql,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可以用下面的命令查看所有的文件路...
南康市13341301388: linux 怎么在sql语句里加入 \n' - ?
之成氢溴: 1,进入sqlplus:sqlplus /nolog2,以sysdba的身份连接到数据库,并启动Oracle数据库引擎:SQL> conn /as sysdba SQL> startup3,退出sqlplus,运行Listener SQL> exit$ lsnrctl start 这样数据库的TNS也启动了,可以通过网络连接数据库了.一...