1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于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.endtimedelusion.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线