IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁數(shù)據(jù)庫Oracle → oracle菜鳥的一次oracle恢復(fù)筆記

oracle菜鳥的一次oracle恢復(fù)筆記

時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  最近開發(fā)環(huán)境的oracle服務(wù)器磁盤空間滿了,于是又開始像以前一樣,到處刪東西,終于刪無可刪了,我又打起了oracle數(shù)據(jù)文件的主意,由于對oracle知之甚少,由此也引發(fā)了一系列的oracle錯(cuò)誤,后來經(jīng)過不懈努力,oracle終于又活了過來。成功之后,必然要將這次浪費(fèi)了幾個(gè)小時(shí)的事件記錄下來,引以為戒吧。

  由于不正常使用,oracle服務(wù)器的硬盤磁盤空間滿了,沒法,到處刪東西,發(fā)現(xiàn)某個(gè)表空間沒什么用,但又不確定,于是,表空間沒做任何修改,而是直接在linux下把表空間的數(shù)據(jù)文件從一個(gè)磁盤移動(dòng)到另一個(gè)磁盤了(/data/掛載的是另一個(gè)磁盤):

  [root@localhost ~]# cp /u01/app/oracle/oradata/sj/sj_test.dbf /data/

  [root@localhost ~]# rm /u01/app/oracle/oradata/sj/sj_test.dbf

 。ㄒ苿(dòng)可以用mv的,請各位高手原諒本菜。)

  此時(shí)心里想的是oracle應(yīng)該在使用這個(gè)表空間的時(shí)候發(fā)現(xiàn)出錯(cuò)會(huì)報(bào)錯(cuò),而不是啟動(dòng)就報(bào)錯(cuò)(無知真可怕。

  有空間啦,于是興高采烈的開始制作樣板庫,結(jié)果半下不到,死逼!

  oracle死了!

  此時(shí)必然要做的就是重啟服務(wù)器:

  SQL> Startup

  沒用!

  強(qiáng)制重啟:

  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'

  暈了,開始到網(wǎng)上狂搜!

  找到一篇文章

  https://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.

  更改表空間數(shù)據(jù)文件位置:

  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

#p#副標(biāo)題#e#

  怎么回事?文件找不到?沒權(quán)限是啥?

  退出sqlplus,到/data/下,文件存在啊,暈死。(這時(shí)是oracle賬戶)

  嘗試把文件拷回原來的位置:

  [oracle@localhost data]# cp sourcejoy.com.test.dbf /u01/app/oracle/oradata/sourcejoy.com/

  Permission denied!

  權(quán)限不夠,暈死!接下來肯定是要修改權(quán)限啦。

  跳回root用戶:

  [oracle@localhost data]# su - root

  Password:

  輸完密碼,開始修改權(quán)限:

  [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.

  成功!

  我打開數(shù)據(jù)庫!

  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!

  狂搜!

  發(fā)現(xiàn)一哥們的雷人恢復(fù)筆記

  https://yhailcy.blog.163.com/blog/static/36353229200910333716783/

  暫時(shí)忍受,并按這廝的命令來(如果不行就打算罵娘啦。

  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'

  報(bào)錯(cuò)都和這哥們兒描述的一樣!

  SQL> recover database;

  Media recovery complete.

  SQL> alter database open;

  Database altered.

  成功!

  教訓(xùn)、經(jīng)驗(yàn)和總結(jié):

  1.別把oracle當(dāng)白癡,數(shù)據(jù)庫有任何問題這家伙肯定第一個(gè)知道!

  2.oracle是博大精深地,應(yīng)該好好扎實(shí)地了解它的基礎(chǔ)知識(shí)和常用知識(shí),哪怕你不是DBA,這樣平時(shí)做事情的時(shí)候才會(huì)心中有數(shù),不會(huì)像我一樣像個(gè)無頭蒼蠅到處亂撞。

  3.oracle的好多操作并沒有想象中那樣復(fù)雜,別害怕去操作oracle,其實(shí)它很溫柔,網(wǎng)上好多oracle操作都是很復(fù)雜的,考慮很多東西,所以會(huì)嚇退一些初學(xué)oracle的哥們兒,就像移動(dòng)oracle的表空間數(shù)據(jù)文件,網(wǎng)上的描述都是又是啟動(dòng)歸檔模式又是搞這又是搞那的,這些東西對于生產(chǎn)環(huán)境可能很重要,但對于初學(xué)者或者非DBA類的程序員,完全可以只考慮移走文件其他的都無所謂啦。

關(guān)鍵詞標(biāo)簽:oracle恢復(fù)

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限