本oracle菜鳥的一次oracle恢複筆記

來源:互聯網
上載者:User

最近開發環境的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'

 

暈了,開始到網上狂搜!

 

找到一篇文章
http://blog.csdn.net/nini1109/archive/2009/04/24/4105637.aspx
很符合,按照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.

 

我XXX!
狂搜!

 

發現一哥們的雷人恢複筆記
http://yhailcy.blog.163.com/blog/static/36353229200910333716783/
暫時忍受,並按這廝的命令來(如果不行就打算罵娘啦!)

 

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類的程式員,完全可以只考慮移走檔案其他的都無所謂啦。

來自:http://www.sourcejoy.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.