始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle菜鸟的一次Oracle恢复笔记

发布时间:  2012/8/14 18:05:30

最近开发环境的Oracle服务器磁盘空间满了,于是又开始像以前一样,到处删东西,终于删无可删了,我又打起了oracle数据文件的主意,由于对oracle知之甚少,由此也引发了一系列的oracle错误,后来经过不懈努力,oracle终于又活了过来。成功之后,必然要将这次浪费了几个小时的事件记录下来,引以为戒吧。
由于不正常使用,Oracle服务器的硬盘磁盘空间满了,没法,到处删东西,发现某个表空间没什么用,但又不确定,于是,表空间没做任何修改,而是直接在linux下把表空间的数据文件从一个磁盘移动到另一个磁盘了(/data/挂载的是另一个磁盘):
-
 

[root@localhost ~]# cp /u01/app/Oracle/oradata/sj/sj_test.dbf /data/
[root@localhost ~]# rm /u01/app/Oracle/oradata/sj/sj_test.dbf
(移动可以用mv的,请各位高手原谅本菜。)
此时心里想的是Oracle应该在使用这个表空间的时候发现出错会报错,而不是启动就报错(无知真可怕!)

有空间啦,于是兴高采烈的开始制作样板库,结果半下不到,死逼!

Oracle死了!

此时必然要做的就是重启服务器:
SQL> Startup

没用啊!

强制重启:
SQL> Startup force;
Oracle instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  1223540 bytes
Variable Size             197133452 bytes
Database Buffers          868220928 bytes
Redo Buffers                7163904 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 12 - see DBWR trace file
ORA-01110: data file 12: '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf'

分步重启:
SQL> Startup mount;
SQL> Alter database open;
Alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 12 - see DBWR trace file
ORA-01110: data file 12: '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf'

晕了,开始到网上狂搜!

找到一篇文章

很符合,按照B情况来:
SQL> Shutdown immediate;
Oracle instance shut down.
SQL> startup mount;
Oracle instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  1223540 bytes
Variable Size             197133452 bytes
Database Buffers          868220928 bytes
Redo Buffers                7163904 bytes
Database mounted.

更改表空间数据文件位置:
SQL> alter database rename file '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf' to '/data/sourcejoy.com.test.dbf';

alter database rename file '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf' to
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 12 - new file
'/data/sourcejoy.com.test.dbf' not found
ORA-01110: data file 12: '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf'
ORA-27041: unable to open file
Linux Error: 13: Permission denied
Additional information: 2

怎么回事?文件找不到?没权限是啥?

退出sqlplus,到/data/下,文件存在啊,晕死。(这时是Oracle账户)

尝试把文件拷回原来的位置:
[Oracle@localhost data]# cp sourcejoy.com.test.dbf /u01/app/oracle/oradata/sourcejoy.com/
Permission denied!

权限不够,晕死!接下来肯定是要修改权限啦。

跳回root用户:
[Oracle@localhost data]# su - root
Password: 

输完密码,开始修改权限:
[root@localhost ~]# cd /data/
[root@localhost data]# chmod 777 sourcejoy.com.test.dbf

回到sqlplus:
SQL> alter database rename file '/u01/app/Oracle/oradata/sourcejoy.com/sourcejoy.com.test.dbf'
  2  to
  3  '/data/sourcejoy.com.test.dbf';
Database altered.

成功!

我打开数据库!
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 12 needs media recovery
ORA-01110: data file 12: '/data/sourcejoy.com.test.dbf'

我擦!

百度了一下,原来要recovery:
SQL> recovery database;
SP2-0734: unknown command beginning "recovery d..." - rest of line ignored.

暂时忍受,并按这厮的命令来(如果不行就打算骂娘啦!)

SQL> alter database datafile '/data/sourcejoy.com.test.dbf' online;
Database altered.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 12 needs media recovery
ORA-01110: data file 12: '/data/sourcejoy.com.test.dbf'

报错都和这哥们儿描述的一样!

SQL> recover database;
Media recovery complete.

SQL> alter database open;
Database altered.

成功!

教训、经验和总结:
1.别把Oracle当白痴,数据库有任何问题这家伙肯定第一个知道!

2.Oracle是博大精深地,应该好好扎实地了解它的基础知识和常用知识,哪怕你不是DBA,这样平时做事情的时候才会心中有数,不会像我一样像个无头苍蝇到处乱撞。

3.Oracle的好多操作并没有想象中那样复杂,别害怕去操作oracle,其实它很温柔,网上好多oracle操作都是很复杂的,考虑很多东西,所以会吓退一些初学oracle的哥们儿,就像移动oracle的表空间数据文件,网上的描述都是又是启动归档模式又是搞这又是搞那的,这些东西对于生产环境可能很重要,但对于初学者或者非DBA类的程序员,完全可以只考虑移走文件其他的都无所谓啦。


 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      1
     
     
     
     

    0371-60135900
    7*24小时客服服务热线