<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        數據文件的三個創建SCN一點點探討

        來源:懂視網 責編:小采 時間:2020-11-09 13:06:28
        文檔

        數據文件的三個創建SCN一點點探討

        數據文件的三個創建SCN一點點探討:在給一個朋友數據庫恢復的過程中語句該庫大量刪除表空間,然后創建表空,由于在創建控制文件的時候,列出來不正確文件,導致出現v$datafile_header.error出現WRONG FILE CREATE錯誤.通過試驗重現了該錯誤,并且進一步測試如果真的需要歷史數據文件,該如何貍貓換太
        推薦度:
        導讀數據文件的三個創建SCN一點點探討:在給一個朋友數據庫恢復的過程中語句該庫大量刪除表空間,然后創建表空,由于在創建控制文件的時候,列出來不正確文件,導致出現v$datafile_header.error出現WRONG FILE CREATE錯誤.通過試驗重現了該錯誤,并且進一步測試如果真的需要歷史數據文件,該如何貍貓換太

        在給一個朋友數據庫恢復的過程中語句該庫大量刪除表空間,然后創建表空,由于在創建控制文件的時候,列出來不正確文件,導致出現v$datafile_header.error出現WRONG FILE CREATE錯誤.通過試驗重現了該錯誤,并且進一步測試如果真的需要歷史數據文件,該如何貍貓換太

        在給一個朋友數據庫恢復的過程中語句該庫大量刪除表空間,然后創建表空,由于在創建控制文件的時候,列出來不正確文件,導致出現v$datafile_header.error出現WRONG FILE CREATE錯誤.通過試驗重現了該錯誤,并且進一步測試如果真的需要歷史數據文件,該如何貍貓換太子(本實驗為了進一步理解數據文件創建scn相關信息)
        創建xifenfei表空間,然后刪除表空間,但不刪除數據文件,然后創建重名表空間

        SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') today,'www.xifenfei.com' xifenfei from dual;
        TODAY XIFENFEI
        ------------------- ----------------
        2014-07-16 15:54:26 www.xifenfei.com
        SQL> create tablespace xifenfei datafile '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf' size 10m;
        Tablespace created.
        SQL> select file#,name from v$datafile;
         FILE# NAME
        ---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593520 2014-07-16 16:00:54
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593520 2014-07-16 16:00:54
        SQL> drop tablespace xifenfei;
        Tablespace dropped.
        SQL> create tablespace xifenfei datafile '/u01/app/oracle/oradata/ORCL/xifenfei_new.dbf' size 10m;
        Tablespace created.
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593613 2014-07-16 16:02:45
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593613 2014-07-16 16:02:45
        

        rename xifenfei表空間數據文件到老數據文件

        SQL> alter database datafile 5 offline drop;
        Database altered.
        SQL> alter database rename file '/u01/app/oracle/oradata/ORCL/xifenfei_new.dbf'
         2 to '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'; 
        Database altered.
        SQL> alter database datafile 5 online;
        alter database datafile 5 online
        *
        ERROR at line 1:
        ORA-01122: database file 5 failed verification check
        ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
        ORA-01203: wrong incarnation of this file - wrong creation SCN
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593613 2014-07-16 16:02:45
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593520 2014-07-16 16:00:54
        SQL> select file#,error from v$datafile_header;
         FILE# ERROR
        ---------- -----------------------------------------------------------------
         1
         2
         3
         4
         5 WRONG FILE CREATE
        

        至此今天數據庫恢復的故障已經模擬出來,就是因為數據文件頭的scn和控制文件中scn不一致,從而出現了v$datafile_header.error報WRONG FILE CREATE的現象.

        因為控制文件中數據文件scn和數據文件頭scn不一致,因此通過重建控制文件來實現兩者scn一致

        SQL> alter database backup controlfile to trace as '/tmp/ctl';
        Database altered.
        SQL> shutdown immediate;
        Database closed.
        Database dismounted.
        ORACLE instance shut down.
        SQL> STARTUP NOMOUNT
        ORACLE instance started.
        Total System Global Area 718225408 bytes
        Fixed Size 2292432 bytes
        Variable Size 373294384 bytes
        Database Buffers 339738624 bytes
        Redo Buffers 2899968 bytes
        SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
         2 MAXLOGFILES 16
         3 MAXLOGMEMBERS 3
         4 MAXDATAFILES 100
         5 MAXINSTANCES 8
         6 MAXLOGHISTORY 292
         7 LOGFILE
         8 GROUP 1 '/u01/app/oracle/oradata/ORCL/redo01.log' SIZE 50M BLOCKSIZE 512,
         9 GROUP 2 '/u01/app/oracle/oradata/ORCL/redo02.log' SIZE 50M BLOCKSIZE 512,
         10 GROUP 3 '/u01/app/oracle/oradata/ORCL/redo03.log' SIZE 50M BLOCKSIZE 512
         11 DATAFILE
         12 '/u01/app/oracle/oradata/ORCL/system01.dbf',
         13 '/u01/app/oracle/oradata/ORCL/sysaux01.dbf',
         14 '/u01/app/oracle/oradata/ORCL/undotbs01.dbf',
         15 '/u01/app/oracle/oradata/ORCL/users01.dbf',
         16 '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
         17 CHARACTER SET ZHS16GBK
         18 ;
        Control file created.
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593520 2014-07-16 16:00:54
        SQL> select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;
         FILE# CREATION_CHANGE# CREATION_TIME
        ---------- ---------------- -------------------
         1 18 2014-07-14 21:53:05
         2 2338 2014-07-14 21:53:42
         3 3130 2014-07-14 21:53:51
         4 15268 2014-07-14 21:54:25
         5 593520 2014-07-16 16:00:54
        SQL> select file#,error from v$datafile_header;
         FILE# ERROR
        ---------- -----------------------------------------------------------------
         1
         2
         3
         4
         5
        

        通過重建控制文件消除了v$datafile_header.error報WRONG FILE CREATE錯誤,繼續嘗試online文件

        SQL> recover datafile 5;
        Media recovery complete.
        SQL> alter database datafile 5 online;
        Database altered.
        SQL> select file#,name from v$datafile;
         FILE# NAME
        ---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf
        SQL> alter database open;
        ORA-01092: ORACLE instance terminated. Disconnection forced
        ORA-01177: data file does not match dictionary - probably old incarnation
        ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
        Process ID: 7437
        Session ID: 7 Serial number: 5
        

        出現這個錯誤,是由于數據庫中,還有file$中也記錄了數據文件創建scn,而這個scn現在和數據文件頭和控制文件中的scn不相等,因此無法啟動數據庫成功.現在需要做的就是在數據庫未啟動狀態下修改file$中的數據文件創建scn相關值,讓其和數據文件頭(控制文件中記錄)一致

        使用第三方工具定位file$記錄

        1|2|89600|0|1|4194302|1280|0|18||4194306|0x004000e9|0
        2|2|70400|1|2|4194302|1280|0|2338||8388610|0x004000e9|1
        3|2|25600|2|3|4194302|640|0|3130||12582914|0x004000e9|2
        4|2|640|4|4|4194302|160|0|15268||16777218|0x004000e9|3
        5|2|1280|7|5|0|0|0|593613||20971522|0x004000e9|4 
        6|1|3840|||0|0|0|586295||25165826|0x004000e9|5
        7|1|3840|||3932160|1280|0|587030||29360130|0x004000e9|6
        對應file$結構確定每列含義,以及確定需要修改的列
        每行倒數第二列為rdba地址,可以通過轉換為file and block,這里對應的就是file 1 block 233
        每行最后一列為該條記錄在該rdba中的記錄順序
        

        使用工具修改593613為593520,使得file$中的scn與現在控制文件和數據文件頭一致,具體參考bbed修改數據內容

        修改好file$中數據文件創建scn后,嘗試繼續操作

        SQL> alter database open;
        alter database open
        *
        ERROR at line 1:
        ORA-01113: file 5 needs media recovery
        ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
        SQL> recover datafile 5;
        Media recovery complete.
        SQL> alter database open;
        Database altered.
        SQL> select file#,name from v$datafile;
         FILE# NAME
        ---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf
        

        通過這里的簡單測試,發現幾個問題
        1.v$datafile_header.error報WRONG FILE CREATE錯誤 不一定就是數據文件異常,而其本質是數據文件頭scn和控制文件中scn不一致
        2.數據文件online需要file$,v$datafile_header,v$datafile中關于數據文件創建scn都一致
        3.通過該分析,證明在一些極端情況下,考慮考慮該替換思路實現刪除數據文件重新加入數據庫

      1. 記錄一次ORA-600 3004 恢復過程和處理思路
      2. 誤drop tablespace后使用flashback database閃回異常處理
      3. 分享一次ORA-01113 ORA-01110故障處理過程
      4. ORA-00600[kcrf_resilver_log_1]異常恢復
      5. 記錄一次ORA-00316 ORA-00312 redo異常恢復
      6. 數據文件的CREATION_TIME來源和算法
      7. Oracle安全警示錄:加錯裸設備導致redo異常
      8. ORACLE 12C 控制文件異常恢復
      9. 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        數據文件的三個創建SCN一點點探討

        數據文件的三個創建SCN一點點探討:在給一個朋友數據庫恢復的過程中語句該庫大量刪除表空間,然后創建表空,由于在創建控制文件的時候,列出來不正確文件,導致出現v$datafile_header.error出現WRONG FILE CREATE錯誤.通過試驗重現了該錯誤,并且進一步測試如果真的需要歷史數據文件,該如何貍貓換太
        推薦度:
        標簽: 一個 創建 文件
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品一区二区三区无码免费直播| 亚洲午夜无码久久久久软件| 中文字幕一区二区三区免费视频| 国产男女猛烈无遮档免费视频网站 | 亚洲男人天堂2018av| 久久久久免费看黄A片APP| 亚洲成a人片77777群色| 四虎永久在线观看免费网站网址| 亚洲人成激情在线播放| 毛片免费视频观看| 激情无码亚洲一区二区三区 | 国产精品免费观看| 国产v亚洲v天堂a无| 免费无码看av的网站| 暖暖免费中文在线日本| 亚洲熟妇丰满多毛XXXX| 99爱免费观看视频在线| 美女被免费视频网站a| 国产jizzjizz免费视频| 一级午夜免费视频| 久久精品国产99精品国产亚洲性色| 色欲A∨无码蜜臀AV免费播| 亚洲伊人久久大香线焦| 国产又大又黑又粗免费视频| 国产JIZZ中国JIZZ免费看| 亚洲成人中文字幕| 免费看a级黄色片| 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲一区二区三区免费在线观看 | 免费人成在线观看播放a| 亚洲AV午夜成人影院老师机影院| www.黄色免费网站| 美女扒开屁股让男人桶爽免费 | 亚洲人成77777在线观看网| 免费jlzzjlzz在线播放视频| 成全视频高清免费观看电视剧| 亚洲同性男gay网站在线观看| 亚洲不卡AV影片在线播放| 日本免费一区二区久久人人澡| 亚洲午夜在线播放| 亚洲日韩欧洲乱码AV夜夜摸|