qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          閃回數據庫(Flashback Database)

            Flashback Database閃回數據庫
            使用閃回數據庫可以將數據庫快速的閃回到過去某個時間點。在啟用閃回數據時,會將修改過的塊的前映像作為閃回數據庫日志保存在閃回恢復區中,如出現邏輯壞塊或用戶錯誤操作需要恢復到過去的時間點,閃回數據庫將還原數據庫的前映像,然后使用歸檔日志和redo前滾到期望恢復的時間點,因為無需還原數據庫的數據文件,所有此過程速度比較傳統的還原恢復通常快很多。
            啟動閃回數據庫時,會將前映像數據保存在“閃回緩沖區”中,然后由恢復寫入器(Recovery Writer,RVWR)后臺進程,將閃回緩沖區的前映像數據保存在閃回恢復區的閃回數據庫日志中。
            配置閃回數據庫相關參數:
            db_recovery_file_dest  決定閃回恢復區路徑
            db_recovery_file_dest_size  決定閃回恢復區大小
            db_flashback_retention_target  保留恢復最近多長時間的數據,單位為分鐘。
            閃回數據庫必須在歸檔模式下
            開啟歸檔
            1、SQL> alter system set  log_archive_dest_1='location=+oradg/b1/recovery/' scope=both;
            2、SQL> shutdown immediate
            3、SQL>  startup mount
            4、SQL> alter database archivelog;
            5、SQL> alter database open;
            6、SQL> archive log list
            設置閃回區大小,路徑,閃回保留時間
          SQL> alter system set db_recovery_file_dest_size=5G;
          System altered.
          SQL> alter system set db_recovery_file_dest='+ORADG';
          System altered.
          SQL> alter system set db_flashback_retention_target=2880;
          System altered.
          開啟閃回功能
          SQL> startup mount exclusive
          SQL> alter database flashback on;
          Database altered.
          SQL> select flashback_on from v$database;
          FLASHBACK_ON
          ------------------
          YES
            關閉閃回功能
          SQL> startup mount exclusive
          ORACLE instance started.
          Total System Global Area  839282688 bytes
          Fixed Size                  2217992 bytes
          Variable Size             557844472 bytes
          Database Buffers          276824064 bytes
          Redo Buffers                2396160 bytes
          Database mounted.
          SQL> ?alter database flashback off;
          Database altered.
          SQL> alter database open ;
          Database altered.
          SQL> alter system set db_recovery_file_dest='';
          System altered.

          閃回數據庫的步驟
            1、關閉數據庫
            2、啟動數據庫到mount狀態[exclusive模式]
            3、閃回至某個時間點,SCN或還原點
            4、使用resetlogs打開數據庫
            閃回數據庫的方法
            1、sqlplus下基于SCN閃回
            FLASHBACK  DATABASE [<database_name>]  TO  SCN <system_change_number>
            2、sqlplus下基于時間戳閃回
            FLASHBACK  DATABASE [<database_name>]  TO  TIMESTMP <system_timestamp_value>
            3、sqlplus下基于還原點閃回
            FLASHBACK  DATABASE [<database_name>]  TO  RESTORE POINT <restore_point_name>
            4、RMAN下基于時間戳閃回
            RMAN> FLASHBACK DATABASE TO TIME = "TO_DATE('2013-10-10 19:25:21','YYYY-MM-DD HH24:MI:SS')";
            5、RMAN下基于SCN閃回
            RMAN> FLASHBACK DATABASE TO SCN=1121679;
            6、RMAN下基于:歸檔序號
            RMAN> FLASHBACK DATABASE TO SEQUENCE=56 THREAD=1;
            運用閃回功能示例:
            示例1:刪除表的部分數據后,使用閃回數據庫的方法恢復
          SQL> create table test_flashback as select * from emp;  --創建表
          Table created.
          SQL> select dbms_flashback.get_system_change_number from dual; --記錄刪除數據前scn
          GET_SYSTEM_CHANGE_NUMBER
          ------------------------
          1069396
          SQL> delete from test_flashback where deptno=20;      --刪除數據
          5 rows deleted.
          SQL> commit;
          Commit complete.
          SQL> startup mount exclusive              --啟動到mount exclusive狀態
          ORACLE instance started.
          Total System Global Area  839282688 bytes
          Fixed Size                  2217992 bytes
          Variable Size             557844472 bytes
          Database Buffers          276824064 bytes
          Redo Buffers                2396160 bytes
          Database mounted.
          SQL> flashback database to scn 1069396;  --閃回到刪除數據之前,還可以用時間戳閃回如:
          Flashback complete.                                    --flashback database to to_timestamp('2013-10-8 18:02:34','YYYY-MM-DD HH24:MI:SS')
          SQL> alter database open read only;    ?--以read only 方式打開檢查數據庫是否閃回成功,如不成功考慮其他形式的閃回
          Database altered.
          SQL> select * from scott.test_flashback where deptno=20;
          EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7566 JONES      MANAGER         7839 02-APR-81       2975                    20
          7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
          7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
          SQL> startup
          ORACLE instance started.
          Total System Global Area  839282688 bytes
          Fixed Size                  2217992 bytes
          Variable Size             557844472 bytes
          Database Buffers          276824064 bytes
          Redo Buffers                2396160 bytes
          Database mounted.
          ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
          SQL> alter database open resetlogs;
          Database altered.
            --閃回數據庫之后,最后做一次全備

          posted on 2013-10-15 11:21 順其自然EVO 閱讀(235) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2013年10月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绥滨县| 来凤县| 特克斯县| 荔浦县| 万安县| 阿合奇县| 庄浪县| 莱芜市| 崇礼县| 乡宁县| 普宁市| 文安县| 兴安盟| 德保县| 贵南县| 山西省| 桦川县| 金寨县| 会同县| 吉首市| 龙游县| 图们市| 乐东| 日喀则市| 南岸区| 正蓝旗| 湖南省| 莫力| 双鸭山市| 大连市| 南宁市| 同心县| 社旗县| 岫岩| 嘉兴市| 万安县| 沂水县| 武穴市| 华池县| 荔波县| 沿河|