我的JAVA

          從頭來(lái)
          隨筆 - 19, 文章 - 0, 評(píng)論 - 6, 引用 - 0
          數(shù)據(jù)加載中……

          ORACLE歸檔模式下恢復(fù)----UNDO,數(shù)據(jù)文件損壞

          有個(gè)同學(xué)在MSN和我聊起ORACLE維護(hù)的事,他對(duì)歸檔文件的概念不是很熟。我就叫他看書,他講看書暈糊糊,叫我做個(gè)實(shí)例給他看。我就在MSN上一步步的示范,順便貼出來(lái)。不過(guò),我記得好像我以前也是看別人的,不要鄙視我哦!!
          他很仰慕哦,我回答:“無(wú)它,手熟耳!”
          呵呵,是不是好巒顛的
          SQL> archive log list;
          數(shù)據(jù)庫(kù)日志模式            存檔模式
          自動(dòng)存檔             啟用
          存檔終點(diǎn)            d:\oracle\oradata\test\archive
          最早的概要日志序列     26
          下一個(gè)存檔日志序列   28
          當(dāng)前日志序列           28
          ORACLE要在歸檔模式下
          建個(gè)用戶zb
          CONNECT zb/zb
          建個(gè)表
          CREATE TABLE family
                 (seq NUMBER(2),
           NAME VARCHAR2(14) ,
           LOC VARCHAR2(13) ) ;
          INSERT INTO family VALUES
           (1,'周斌','爸爸');
          commit;
          SQL> select * from family;

                 SEQ NAME           LOC
          ---------- -------------- -------------
                   1 周斌           爸爸

          做備份恢復(fù)時(shí),把undo改小一點(diǎn)
          SQL>CREATE UNDO TABLESPACE undo1
          DATAFILE 'D:\oracle\oradata\test\undo01.dbf'
          SIZE 6M AUTOEXTEND ON;
          SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDO1;
          SQL>DROP TABLESPACE UNDOTBS1;
          commit
          shutdown immediate;
          冷備哦
          startup;
          con sys as sysdba
          alter system switch logfile;
          產(chǎn)生日志
          INSERT INTO zb.family VALUES
           (2,'楊','媽媽');
          commit;
          alter system switch logfile;
          INSERT INTO zb.family VALUES
           (3,'陽(yáng)','兒子');
          SQL> select * from zb.family;

                 SEQ NAME           LOC
          ---------- -------------- -------------
                   1 周斌           爸爸
                   2 楊             媽媽
                   3 陽(yáng)             兒子
           SQL> shutdown abort
          3) 此時(shí),把undo破壞
             在‘服務(wù)‘中,將OracleServicetest停止
              刪除(OS)undo01文件
          4) 在‘服務(wù)‘中,將OracleServicetest啟動(dòng)

          看警告日志D:\oracle\admin\a00215\bdump\alert_test.log,
          Errors in file d:\oracle\admin\test\bdump\test_dbw0_5764.trc:
          ORA-01157: cannot identify/lock data file 19 - see DBWR trace file
          ORA-01110: data file 19: 'D:\ORACLE\ORADATA\TEST\UNDO01.DBF'
          ORA-27041: unable to open file
          OSD-04002: 無(wú)法打開(kāi)文件
          O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。


          6) 恢復(fù):
          SQL> SHUTDOWN ABORT
          將備份的undo01.dbf copy回去
          SQL> STARTUP MOUNT
          SQL> recover database(或者recover datafile 19//或者 recover'D:\ORACLE\ORADATA\test\UNDO01.DBF')
          SQL> alter database open;

          數(shù)據(jù)庫(kù)已更改。

          SQL> select * from zb.family;

                 SEQ NAME           LOC
          ---------- -------------- -------------
                   1 周斌           爸爸
                   2 楊             媽媽

          OK
          如果在INSERT后COMMIT,則數(shù)據(jù)不會(huì)丟失
          SQL> select * from zb.family;

                 SEQ NAME           LOC
          ---------- -------------- -------------
                   1 周斌           爸爸
                   2楊             媽媽
                   3 陽(yáng)             兒子
          數(shù)據(jù)文件一樣。
          數(shù)據(jù)文件的丟失和損壞可以恢復(fù)到COMMIT的狀態(tài)

          posted on 2005-08-30 21:30 周斌 閱讀(1920) 評(píng)論(0)  編輯  收藏 所屬分類: ORACLE

          主站蜘蛛池模板: 五峰| 陆川县| 黔东| 满城县| 浦北县| 朔州市| 苏州市| 彭州市| 碌曲县| 桃园市| 宁晋县| 朔州市| 达拉特旗| 正镶白旗| 涿鹿县| 秦安县| 南郑县| 普宁市| 德清县| 定结县| 黄冈市| 原平市| 永德县| 吉水县| 旬阳县| 呈贡县| 抚顺市| 济南市| 温泉县| 盘锦市| 云和县| 新泰市| 始兴县| 洛隆县| 西贡区| 合作市| 米泉市| 玉溪市| 社旗县| 紫金县| 梅州市|