<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 310, comments - 6939, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    oracle 10g數據庫備份與還原總結(ZZ)

    Posted on 2009-08-17 08:55 詩特林 閱讀(767) 評論(0)  編輯  收藏 所屬分類: Oracle

    oracle 10g數據庫備份與還原總結
    一.總述

    1.數據庫歸檔模式:

            * 非歸檔模式:當數據庫數據只讀不會改變時,數據不會改變,數據庫適合用非歸檔模式,                     這樣提高性能

            * 歸檔模式:對于數據庫數據經常變動,數據庫最好用歸檔模式,這樣可以盡量避免數據庫                   數據丟失,使出現問題時災害降到最低

    2.非歸檔模式與歸檔模式間的切換(在命令窗口下):

            @檢查當前日志操作模式
                  f:\>sqlplus sys/dba as sysdba
                  連接數據庫
                  sql>select log_mode from v$database;

            @關閉數據庫,后裝載數據庫,只能在mount狀態下改變日志操作模式
                  sql>startup mount

            @改變日志模式
                  sql>alter database achivelog;(變為歸檔方式,否則為nochivelog)
                  sql>alter database open;
     
    3.查看歸檔模式相關信息:

            @若采用默認設置,歸檔日志位置在快速恢復區

            @配置歸檔日志位置 log_archive_dest_n  (n=[1:10])
                  sql>alter system set
                      log_archive_dest_1 = 'location =c:\demo\archive [optional]';
                  sql>alter system set
                      log_archive_dest_2 = 'service =standby [mandatory] [reopen]';
             其中:location 是本地
                  service  是遠程
                  optional 無論歸檔是否成功,都會覆蓋重做日志
                  mandatory只有成功歸檔才會覆蓋重做日志
                  reopen 重新歸檔時間間隔 默認是300s

            @顯示歸檔信息,即顯示顯示日志操作模式
                  sql>select name,log_mode from v$database;

            @顯示歸檔日志信息
                  sql>select name,sequence#,first_change# from v$archive_log;
             sequence#: 歸檔序列號
             first_change# : 起始SCN值

            @顯示歸檔日志位置
                  sql>select dest_name,destination,status from v$archive_dest;
             dest_name 歸檔位置參數名
             destination 位置

            @顯示日志歷史信息
                  sql>select * from v$loghist;
             threade# : 重做線程號
             sequence# : 日志序列號
             first_change# : 起始SCN值
             first_time : 起始SCN發生時間
             switch_change : 切換SCN值
           
    二.非歸檔模式下的備份與還原

       . 日志采用覆蓋原有日志的方式存儲

       . 出現介質失敗時,只能恢復到過去的完全備份點
       . 數據庫OPEN狀態是,不能備份數據庫

       . 必須先關閉數據庫,再備份,且必須備份所有數據,控制文件

      1.備份==冷備份

           @ 先關閉數據庫
                 sql>shutdown immediate

           @ 拷貝所有數據文件,和控制文件

      2.恢復

           * 數據文件出現丟失,但備份以來的重做日志內容尚未被覆蓋,此時可以完全恢復

               @裝載數據庫
                   sql>startup force mount

               @復制數據文件備份

               @恢復數據文件
                   sql>recover datafile 1

               @打開數據庫
                   sql>alter database open;

           * 備份文件的重做日志內容已經被覆蓋,則只能還原到備份點

               @關閉數據庫

               @復制所有數據和控制備份文件至原位置

               @裝載數據庫,執行恢復命令
                   sql>startup mount
                   sql>recover database until cancel
                   提示控制文件不再使用原有重做日志

               @用resetlogs選項打開數據庫
                    sql>alter database open resetlogs;


    三.歸檔模式

       . 可以防止數據丟失

       . 數據處于OPEN狀態時可以進行備份

       . 當出現介質失敗時,除了SYSTEM表空間中的數據文件外其他的都可以在open狀態下恢復

       . 可執行完全恢復,也可以恢復到備份點與失敗點之間的某時刻
     
      1.備份

          1)冷備份
                shutdown后拷貝所需數據文件和控制文件

          2)熱備份
                @將數據庫設置為歸檔模式
                @在數據庫上發出全局檢查點,在所有的數據文件頭塊上加鎖
                    sql>alter database begin backup ;
                @備份數據文件及控制文件
                    數據文件直接拷貝至其他目錄
                    控制文件需使用alter database backup controlfile
                        sql>alter database backup controlfile to 'd:\backup\demo.ctl';
                @結束數據備份,為確保數據文件備份的同步性,還應該歸檔當前日志組
                        sql>alter database end backup;
                        sql>alter system archive log cuurent;

          3)備份表空間
                *脫機備份(表空間處于OFFLINE狀態,SYSTEM表空間和正在使用的UNDO空間不能脫機)
                     @確定表空間包涵的數據文件,如空間USERS
                          sql>select file_name from dba_data_files
                              where tablespace_name = 'users';
                     @設置表空間為脫機狀態
                          sql>alter tablespace users offline;
                     @復制數據文件
                     @設置表空間聯機
                          sql>alter tablespace users online;
                *聯機備份
                     @確定對應關系
                     @設置表空間為備份模式
                          sql>alter tablespace users begin backup ;
                     @復制數據文件
                     @設置表空間為正常模式
                          sql>alter tablespace users end backup ;
                *處理聯機備份失敗
                    當執行聯機備份時,若出現例程失敗,再次打開數據庫時,如果數據文件仍處于備                份狀態,則會出錯,此時需要結束備份
                     @裝載數據庫
                        sql>startup force mount
                     @查看處于聯機備份狀態的所有數據文件
                        sql>select file# from v$backup where status = 'active';
                     @結束聯機備份狀態
                        sql>alter tablespace end backup
                          或alter tablespace datafile backup;
                          或recover datafile 序號
                     @打開數據庫
                        sql>alter database open;
         2.還原
             1)完全恢復
                 相關命令:
                    recover database :恢復數據庫的多個數據文件(在MOUNT狀態下運行)
                    recover tadaspace :恢復多個表空間的所有數據文件(在open狀態下運行)
                    recover datafile :恢復一個或多個數據文件(在mount,open狀態下都可)
                 *在mount狀態下恢復數據文件(用于SYSTEM表空間恢復)
                     @裝載數據庫 mount狀態
                     @確定需要恢復的數據文件
                         sql>select file#,error from v$recover_file
                     @拷貝備份至原位置
                     @恢復數據庫 recover..上述命令
                     @打開數據庫 alter database open;
                 *在open狀態下恢復關閉后意外對視的數據文件,此時數據庫將無法打開
                     @裝載數據庫 mount
                     @確定需要恢復的數據文件
                     @使相應的數據文件脫機
                         sql>alter database datafile 4 offline;
                     @打開數據庫
                         sql>alter database open
                     @復制數據備份文件
                     @恢復數據文件
                     @是數據文件聯機 alter database datafile 4 online;
                 *在open狀態下恢復打開時意外丟失的數據文件
                     @確定要恢復的數據文件
                     @使數據文件脫機
                     @復制數據文件
                     @恢復相應的表空間或數據文件
                     @使相應的表空間或數據文件聯機
                 *在open狀態下恢復未備份的數據文件(要求在歸檔模式下,新建數據文件,其從簡歷              開始的所有歸檔日志必須全部存在)
                     @裝載數據庫
                     @確定要恢復的數據文件
                     @是數據文件脫機
                     @打開數據庫
                     @重新建立數據文件
                         sql>alter database create datafile 'd:\demo\users01.dbf';
                     @恢復數據文件
                     @使數據文件聯機
           2)不完全恢復
               使用已備份的數據文件,歸檔日志,和重做日志,將數據庫恢復到備份點與失敗點之間           某個時刻的狀態
                  *恢復分類
                      基于時間的恢復:誤刪除表,誤截斷表,提交了錯誤的數據
                      基于取笑恢復:恢復到某個日志序列號之前的狀態
                      基于SCN的恢復:恢復到特定SCN值的狀態
                      基于備份控制文件恢復:表空間被意外刪除,或所有控制文件全部損壞
                  *不完全恢復指令
                      recover database until time
                      recover database until change
                      recover database until cancel
                      recover database .. using backup controlfile
                  *基于時間的恢復
                      @關閉數據庫(為防止備份失敗,應備份當前數據庫所有文件
                      @裝載數據庫 startup mount
                      @復制所有備份數據文件,并確定備份文件的時間點
                          sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)
                              from v$recover_file;
                      @執行recover database until time
                          sql>recover database until time "2006-09-26 16:40:33'
                      @以resetlogs方式打開數據庫,并檢查恢復結果
                          sql>alter database open resetlogs;
                      @備份數據庫所有數據文件和控制文件,因為當以resetlogs方式打開數據庫后                  會重新建立重做日志,清空原有重做日志的所有內容,并將日志序列號復位為1
                          sql>select name from v$datafile;
                          sql>alter database begin backup;
                          拷貝數據文件
                          sql>alter database end backup;
                          sql>alter database backup controlfile
                              to 'd:\backup\demo.ctl' reuse;
                          sql>alter system archive log cuurent;
                   *基于SCN恢復
                       @關閉數據庫
                       @裝載數據庫 mount
                       @復制所有備份數據文件,確定備份文件SCN值
                           sql>select file#,change#, from v$recover_file;
                       @執行recover database until change
                           sql>recover database until change 675978;
                       @以resetlogs方式打開數據庫
                       @備份數據庫所有數據文件和控制文件
                   *基于取消恢復
                       @關閉數據庫
                       @裝載數據庫
                       @復制所有備份的數據文件,確定備份文件的SCN值
                           sql>select file#,change# from v$recover_file;
                       @執行recover database until cancle
                           sql>recover database until cancel
                       @以resetlogs方式打開數據庫
                       @備份所有數據文件和控制文件
                   *基于備份控制文件的恢復
                       @通過查看alert文件,確定誤操作時間
                       @關閉數據庫
                       @復制所有備份的數據文件,控制文件
                       @裝載數據庫
                       @執行recover database ..using backup controlfile
                           sql>recover database until time '2004-09-26 19:51:06'
                               using backup controlfile
                       @以resetlogs 方式打開數據庫
                       @備份所有數據文件和控制文件

     

    主站蜘蛛池模板: 三年片在线观看免费大全电影| 中文在线观看国语高清免费| 91成年人免费视频| 亚洲天天做日日做天天看| 91精品全国免费观看青青| 亚洲宅男天堂在线观看无病毒| 美女羞羞视频免费网站| 免费a级毛片无码av| 免费国产a理论片| 色久悠悠婷婷综合在线亚洲| 91视频免费观看高清观看完整| 亚洲无线码一区二区三区| 久久爰www免费人成| 亚洲天堂电影在线观看| 免费观看美女用震蛋喷水的视频| 91丁香亚洲综合社区| 四虎影视精品永久免费网站| 一个人看的免费观看日本视频www| 国内精品99亚洲免费高清| 免费A级毛片在线播放| 亚洲1区1区3区4区产品乱码芒果 | 亚洲国产精品日韩专区AV| aa级毛片毛片免费观看久| 亚洲av日韩综合一区在线观看| 久久99国产综合精品免费| 亚洲精品国产精品国自产网站| 噜噜嘿在线视频免费观看| 一级做a爱片特黄在线观看免费看| 亚洲AV无码一区二区乱孑伦AS| 久草视频免费在线观看| 免费的黄色网页在线免费观看| 亚洲AV日韩精品久久久久| 99精品全国免费观看视频| 国产精品黄页免费高清在线观看| 亚洲综合无码一区二区三区| 午夜dj在线观看免费视频| a毛片免费全部播放完整成| 亚洲高清一区二区三区| 亚洲熟女一区二区三区| 午夜高清免费在线观看| a级毛片毛片免费观看久潮|