備份恢復技術_第1頁
備份恢復技術_第2頁
備份恢復技術_第3頁
備份恢復技術_第4頁
備份恢復技術_第5頁
已閱讀5頁,還剩115頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、備份恢復技術徐榮星備 份 方 法邏輯備份 exp/expdp物理備份 在線備份或者離線備份 實時備份 數據庫閃回物理備份和邏輯備份 物理備份在存儲級別實現(xiàn),采用RMAN、COPY等操作實現(xiàn)。而邏輯備份在SQL級別實現(xiàn),比如exp、expdp等工具。 物理備份是應付介質故障的最好方法,而邏輯備份是對付誤操作的最佳工具。熱備份和冷備份 熱備份不中斷業(yè)務運行,而冷備份必須在數據庫關閉狀態(tài)下運行。 熱備只有歸檔模式才可以執(zhí)行。 熱備份是不一致的備份,單獨一份熱備份無法實現(xiàn)數據庫的正常的Open,需要備份開始到結束的歸檔日志的支持。 冷備份是一致性備份,應該包含online Redo log文件。RMA

2、N備份 RMAN是Oracle提供的備份管理工具,整合在Oracle內核中,為一免費產品。 備份集可以存儲到磁帶。 Catalog為Rman的輔助產品,更好的完成Rman實現(xiàn)的功能。在Oracle 8i中,Catalog是一個建議配件,但Oracle 9i開始,Oracle開始弱化catalog的功能,逐步整合到控制文件中。 RMAN備份工具介紹RMAN 命令瀏覽Storedscripts生產庫生產庫REPORTLISTCatalog庫OEMRestore/Recover/FlashbackCatalog maintenanceCROSSCHECKDELETEEXPIRECHANGESPFIL

3、EBackup控制文件歸檔日志RMANRMAN 命令 RMAN 命令類型 單獨命令,在RMAN提示符下直接執(zhí)行 JOB命令,命令必須包含在run里執(zhí)行JOB命令: 案例 RUN 命令:RMAN RUN 2 BACKUP AS BACKUPSET 3 FORMAT /u01/db01/backup/%d_%s_%p 4 DURATION 10:00 MINIMIZE LOAD; 5 (DATABASE) 6 SQL alter system archive log current; 7 BACKUP 命令RMAN BACKUP AS BACKUPSET 2 FORMAT /BACKUP/df_%

4、d_%s_%p.bus 3 TABLESPACE hr_data;Backup setData file 1Data file 2Data file 3Data file 1Data file 2Data file 3Tablespace HR_DATABackup命令(續(xù)) 數據庫必須處于mounted or open. 不能備份Online redo log 在非歸檔模式下能備份”干凈”庫備份集分片 分配多個通道,可以指定具體數據文件.Data file 4Data file 1Data file 5ChannelMMLBackuppiece 1Backuppiece 2Data file

5、 2Data file 3Data file 9ChannelMMLData file 6Data file 7Data file 8BackupPiece 3ChannelMMLBackups壓縮RMAN BACKUP AS 2 COMPRESSED BACKUPSET 3 DATABASE;RMAN CONFIGURE DEVICE TYPE 2 DISK PARALLELISM 2 3 BACKUP TYPE TO 4 COMPRESSED BACKUPSET;Compressed backup filesDatabase filesBACKUP 命令(續(xù)) 檢查物理塊腐敗 設置允許塊腐

6、敗的上限 校驗輸入文件塊腐敗備份歸檔日志 能指定范圍備份歸檔日志 備份集僅僅包含歸檔日志文件RMAN BACKUP 2 FORMAT /disk1/backup/ar_%t_%s_%p 3 ARCHIVELOG FROM SEQUENCE=234 4 DELETE INPUT;整庫備份RMAN BACKUP DATABASE;Archived log file copiesSPFILEControlfileData file copies全備份和增量備份 只有存在全備份才有可能在介質損壞情況的下數據庫恢復。 增量備份依賴于全備份存在,備份從上次備份以來的變化數據。 增量備份可以分為: incr

7、ement和CumulativeBackup increment level 0 database;Backup increment level 1 database;增量備份 0級備份 相當于全庫.累計備份備份自0級備份后 所有變化的塊.增 量 備份自上次增量備份后 所有的塊變化Full backup 增量備份累計增量備份增量備份:示例 增量備份僅僅備份自上次增量備份后變化的塊 累計備份,備份自上次0級備份后所有變化塊LvlDaySunMonTueWedThuFriSatSunLevel 0Level 0111c11001c塊變化跟蹤 通過跟蹤文件記錄變化塊 大大加快增量備份速度,避免全掃數

8、據文件List of changed blocksRedogenerationRedo log101100101011000011101001011010101110011Change trackingfileSGACTWR啟動變化塊跟蹤SQL ALTER DATABASE ENABLE 2 BLOCK CHANGE TRACKING 3 USING FILE /mydir/rman_change_track.f 4 REUSE;LIST 命令 List 顯示備份集體及保護的數據文件 List顯示備份歸檔日志RMAN LIST BACKUP OF DATAFILE 2 /db01/ORADAT

9、A/u03/users01.dbf;RMAN LIST BACKUP OF DATABASE;RMAN LIST BACKUP OF ARCHIVELOG 2 ; 物理備份數據庫恢復物理備份數據庫恢復Restore & Recover 備份是為了恢復。 恢復分為兩步: restore 從備份中還原到目標系統(tǒng)中去。 recover 應用歸檔日志實現(xiàn)數據恢復?;謴筒襟ERestored 數據文件數據文件包含未提交數據恢復好的數據庫應用日志回滾未提交數據54321ArchivedlogArchivedlogOnlineRedo log完 全 恢 復 完全恢復包含media recover和Cr

10、ash recover,恢復到數據庫Crash時的那一刻。Media recover應用歸檔日志,Crash recover應用Online Redo Log。 完全恢復可以完全恢復任何數據,這是最理想的狀況。 但有時候并不可行,比如誤操作或者日志文件丟失或者損壞等等情況。完全恢復 Restore database; recover database; alter database open;不完全恢復 不完全恢復為恢復到之前的某一個時間點,僅僅應用歸檔日志,不會進行Crash recover。 不完全恢復要丟失一部分數據,除非是特定的操作比如恢復表格。不完全恢復場合 由于缺少歸檔日志完全恢復

11、失敗 未歸檔的在線日志丟失或Current在線日志丟失 誤操作,要求數據庫恢復到之前某個時間點不完全恢復 Set until time ; restore database; recover database; alter database open resetlogs; restore database until scn recover database until scn alter database open resetlogs; restore database until sequence recover database until sequence alter database

12、 open resetlogs; Shut down and back up1Mount the database2UNTIL TIME 恢復案例Restore all data files3Open with Resetlogs5Back up the database6Database146Data file 1146Data file 2146Data file 3146Controlfiles146Redo logfile 1145Redo logfile 2OE.ORDERSRecovered Database1Data file 11Data file 21Data file 31

13、Controlfiles1Redo logfile 10Redo logfile 2OE.ORDERSRestored Database144Data file 1144Data file 2144Data file 3146Controlfiles146Redo logfile 1145Redo logfile 2144Archivedlog file4OE.ORDERS不完全恢復步驟1. Mount the database.2. Allocate multiple channels for parallelization.3. Restore all data files.4. Reco

14、ver the database by using UNTIL TIME, UNTIL SEQUENCE, or UNTIL SCN.5. Open the database by using RESETLOGS.6. Perform a whole database backup. 基于時間的不完全恢復RMAN RUN 2 set until time = to_date(2015-03-02 16:27:00,yyyy-mm-dd hh24:mi:ss); 3 RESTORE DATABASE; 4 RECOVER DATABASE; 5 ALTER DATABASE OPEN RESET

15、LOGS; 基于序號的不完全恢復RMAN RUN 2 SET UNTIL SEQUENCE 120 THREAD 1; 3 ALTER DATABASE MOUNT; 4 RESTORE DATABASE; 5 RECOVER DATABASE; # recovers through log 119 6 ALTER DATABASE OPEN RESESTLOGS; 7 物理備份在各種失敗中應用 介質失敗 塊腐敗 數據災難 誤操作介質失敗 控制文件 數據文件 索引文件 臨時文件 回滾段 Online Redo log Archive log控制文件 一個失敗 簡單復制拷貝或者注釋掉。 全部失敗

16、 最好以SQL方式重新創(chuàng)建,但是需要重新同步控制文件。沒有創(chuàng)建腳本,從備份中恢復控制文件。 restore controle file from autobackup;Online Redo Logfile 已歸檔的 Online Redo logfile 簡單drop或clear 未歸檔的非Current Online Redo logfile 簡單drop或clear,要求立即全備 Current Redo Logfile 要執(zhí)行非完全恢復,意味著丟數據 丟失數據量,取決于redo log大小.Archive Log 丟失一個或者多個歸檔日志。 已經備份過,可以忽略 沒有備份過,之前全庫備

17、份將失效(或者全庫備份不能恢復到當前時間)如果數據庫正常,立即發(fā)起一次全備如果數據庫異常,數據庫只能恢復到歸檔日志丟失前時間,意味著數據丟失。案例、恢復丟失未歸檔的聯(lián)機重做日志 由于電源故障,使部分硬盤損壞。當硬盤修復以后,發(fā)現(xiàn)online redo log文件系統(tǒng)丟失,還丟失了其他一些數據文件。 擁有一份全備份和相應的歸檔日志,歸檔日志可能沒有完全被備份。 Select sequence from v$archive_log; Restore database; Recover database until sequence thread 1; Shutdown immediate Copy

18、 controlfile Startup mount; Alter database open resetlogs;系統(tǒng)表空間 Restore tablespace system; Recover tablespace system; Alter database open;案例、恢復系統(tǒng)表空間 Rman target / rman startup force mount; restore tablespace system; recover tablespace system; sql alter database open;臨時表空間 Simply Drop it數據文件 Alter da

19、tabase datafile offline; Restore datafile Recover datafile Alter database datafile online;案例、文件系統(tǒng)丟失導致恢復數據表空間恢復(archivelog) Rman target / Sql alter tablespace tbs1 offline; sql alter tablespace tbs2 offline; restore tablespace tbs1; restore tablespace tbs2; recover tablespace tbs1; recover tablespace

20、 tbs2; sql alter tablespace tbs1 online; sql alter tablespace tbs2 online; 索引文件 Restore and Recover OR recreate tablespace and recreate index數據塊腐敗數據塊腐敗類型 由于存儲等原因引起的塊損壞 由于Oracle Bug引起的塊腐敗塊一級恢復 從Oracle 9i開始,Oracle提供了塊一級的恢復,極大的提高了系統(tǒng)快速恢復能力。 Blockrecover datafile 19 block 44; Blockrecover database 19 blo

21、ck 44,66,127壞塊ORA-1578 當一個塊被讀入到數據庫高速緩沖區(qū)的時候,通過檢查塊的封裝信息(block wrapper information )來確定該塊是否有效。這個檢查包括校驗操作系統(tǒng)傳遞給oracle的塊是否就是所請求的塊,存儲在塊頭的信息是否和存儲在塊尾中的信息是一致的。 壞塊ORA-1578 從磁盤讀取數據塊的時候,假如發(fā)現(xiàn)該信息的不一致性,那么這個塊就被認為是個壞塊,升起一個:ORA-1578錯誤:Oracle data block corrupted (file # %s, block # %s )。 file是oracle數據文件的文件號 block是在這個數

22、據文件中的塊號 壞塊對象 根據file#,block#查找壞快所屬對象。 SELECT TABLESPACE_NAME,SEGMENT_NAME, SEGMENT_TYPE, OWNER FROM DBA_EXTENTS WHERE FILE_ID = AND BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1; 是文件號 是塊號。壞塊校驗 數據庫處于OPEN狀態(tài)下可以使用命令 Analyze table/index .validate structure 用來分析掃描每一個塊,遇到任何潛在的壞塊則作出一個錯誤報告。CASCADE 選項,檢查所有相關的索引,在

23、數據塊和索引行之間進行一對一的校驗。DBV校驗 DB Verify 是一個工具,用來掃描數據文件的每一個塊,并產生一個關于潛在壞塊的報告。DB Verify 執(zhí)行基本的塊檢查步驟,但是它不提供數據和索引行的1對1校驗的能力。DB Verify可以在數據庫CLOSE狀態(tài)下運行。 Export會讀取分配給每個表的塊,報告任何遇到的壞塊。 使用命令:dbv file=/dev/roraxx blocksize=8192DBV校驗D:oracleoradataora8dbv file=tools01.dbf blocksize=8192DBVERIFY: Release 8.1.7.0.0 - Pro

24、duction on Tue Dec 14 09:24:07 2004(c) Copyright 2000 Oracle Corporation. All rights reserved.DBVERIFY - Verification starting : FILE = tools01.dbfPage 5526 is marked corrupt*Corrupt block relative dba: 0 x01401596 (file 5, block 5526)Bad header found during dbv:Data in bad block - type: 6 format: 2

25、 rdba: 0 x0140159a last change scn: 0 x0000.000501bc seq: 0 x1 flg: 0 x02 consistency value in tail: 0 x01bc0601 check value in block header: 0 x0, block checksum disabled spare1: 0 x0, spare2: 0 x0, spare3: 0 x0*DBVERIFY - Verification completeTotal Pages Examined : 7656Total Pages Processed (Data)

26、 : 2129Total Pages Failing (Data) : 0Total Pages Processed (Index): 98Total Pages Failing (Index): 0Total Pages Processed (Other): 99Total Pages Empty : 5329Total Pages Marked Corrupt : 1Total Pages Influx : 0壞塊在索引上 對象是個索引且不是數據字典的一部分,基表中不包含任何壞塊,那么您能簡單地刪除和重建索引就可以了 查出索引建立在那張基表上:SELECT table_owner, tab

27、le_nameFROM dba_indexes WHERE owner= AND index_name= 壞塊對象 如果壞塊在數據字典上,系統(tǒng)必須做恢復。 壞快在用戶表上,不影響整個系統(tǒng),需要對表進行恢復 如果這個對象是一個回滾段,備份中恢復數據庫 假如段的類型是TEMPORARY,那么塊損壞不影響任何永久對象 ,假如發(fā)生問題的表空間是個臨時表空間,重建臨時表空間。然后,刪除發(fā)生問題的表空間。假如發(fā)生問題的表空間不是一個臨時表空間,那么這個塊不應該再次被讀取,應該在下次讀取這個塊的時候,重新格式化該塊 獨立對象恢復 表格失敗或者其他對象失敗,需要進行表空間級的不完全恢復,物理備份將會非常麻煩,

28、并且需要額外的存儲或者主機來恢復。 物理備份并沒有任何對象的概念。所以為了應付對象失敗,最好建立其他的備份恢復方法。 Exp/imp是最為常用的方法,遺憾的是可能無法獲得全部數據。 其他方法:Logminer,F(xiàn)lashback以及其他從表中搶救數據 從包含有壞塊的表中提取數據有很多的方法。下面詳細介紹了最適合的方法。這些方法的目的是從能訪問的表塊中提取盡可能的數據 從表中搶救數據 10231事件,跳過壞塊讀取數據alter session set events 10231 trace name context forever, level 10 Create table salvage_ta

29、ble as select * from bad_table;使用ROWID案例 在Oracle8/8i中使用ROWID 范圍掃描的一個例子 :SQL select * from scott.partitionexample; ORA-01578: ORACLE data block corrupted (file # 7, block # 12698) ORA-01110: data file 7: /oracle1/oradata/V816/oradata/V816/users01.dbf = 7 , = 12698 , = 7 使用ROWID案例第一步:找出壞塊所在對象SQL SELEC

30、T tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id =7 AND 12698 between block_id AND block_id + blocks - 1 ; TABLESPACE_NAME SEGMENT_TYPE OWNER SEGMENT_NAME - - - - USERS TABLE PARTITION SCOTT PARTITIONEXAMPLE 使用ROWID案例找出object_id SQL SELECT data_object_id FROM dba_o

31、bjects WHERE object_name = PARTITIONEXAMPLE and owner=SCOTT AND subobject_name= PARTEX2; DATA_OBJECT_ID - 88145 使用ROWID案例 找出相映的ROWID 壞塊第一行的ROWID- SQL select dbms_rowid.rowid_create(1, 88145,7,12698,0) from dual; DBMS_ROWID.ROWID_C - AAAVhRAAHAAADGaAAA 壞塊號+1第一行的ROWID- SQL select dbms_rowid.rowid_crea

32、te(1, 88145,7,12699,0) from dual; DBMS_ROWID.ROWID_C - AAAVhRAAHAAADGbAAA 使用ROWID案例 數據搶救CREATE TABLE salvage_table AS SELECT /*+ ROWID(A) */ * FROM scott.partitionexample A WHERE rowid = AAAVhRAAHAAADGbAAA ; 使用ROWID案例 壞塊里的數據,根據索引搶救部分壞塊數據。SQL SELECT /*+ INDEX_FFS(A PARTEXAM) */ column1 FROM scott.par

33、titionexample A WHERE rowid = AAAVhRAAHAAADGaAAA AND rowid AAAVhRAAHAAADGbAAA ; 表 格 Incompelete recover Event 10231 and Rowid fetch But will lose one block rows Blockrecover誤操作誤操作的考慮 有近40%的災難是由于誤操作造成的,并且有逐年上升的趨勢。 容災系統(tǒng)對于誤操作完全無能為力。 傳統(tǒng)的備份和恢復對誤操作的策略也比較有限。 由于誤操作的頻繁和重大危害,必須把誤操作的恢復作為備份系統(tǒng)的一個重點建設目標。索引被DROP R

34、ecreate it表格被truncate 10g全庫閃回 Export/import 不完全恢復DML操作失誤 閃回查詢 Logminer挖掘 邏輯恢復imp/impdp 不完全恢復表空間誤刪除 不完全恢復 Export/import其他誤操作 文件被刪除,文件誤修改,一致性校驗失效等等誤操作,依據操作的不同性質采用不同的方法進行恢復。Oracle10g閃回技術Flashback 功能Flashback QueriesFlashback TableFlashback DropFlashback Database閃回查詢 閃回查詢用途: 誤操作修補數據 查看表格數據變化CREATE TABLE

35、 changes_today AS SELECT * FROM employees MINUS SELECT * FROM employees AS OF TIMESTAMP TRUNC(SYSDATE);獲取新增加數據SQLSELECT * FROM department AS OF TIMESTAMP TO_TIMESTAMP(03-MAY-2005 09:30:00); 閃回查詢SQL使用閃回查詢設置配置參數:UNDO_MANAGEMENT = AUTOUNDO_RETENTION = 定義了可以閃回時間,缺省15分鐘。合理規(guī)劃回滾段表空間大小閃回查詢設置 確保未過期數據不被覆蓋,需要使

36、用GUARANTEE之句強制限制 查詢dba_tablespaces確認 ALTER TABLESPACE RETENTION GUARANTEE;閃回查詢限制 Sys用戶不支持SESSION級別 閃回查詢支持最低粒度為3秒,系統(tǒng)每3秒記錄一次SCN變化 不能閃回表格最后一次DDL之前Flashback FeaturesFlashback QueriesFlashback TableFlashback DropFlashback Database表格閃回 恢復表格到誤操作之前,在線快速完成數據修復 避免了復雜的不完全恢復表格閃回 恢復表格到指定的時間或者SCN之前 自動恢復所有關聯(lián)對象: Au

37、tomatically restores all dependent objects 索引自動閃回 統(tǒng)計信息不會閃回表格閃回使用 關鍵怎么查找誤操作發(fā)生的時間 可以使用閃回行記錄變化確定SCN 可以使用LOGMNR日志挖掘確定SCN 閃回查詢SQL Triggers are not enabled by default during a flashback operationFLASHBACK TABLE t1 TO TIMESTAMP TO_TIMESTAMP(2005-05-01 12:05:00) ENABLE TRIGGERS;FLASHBACK TABLE t1 TO SCN 123

38、45;表格閃回步驟閃回步驟:1 Enable row movementFLASHBACK TABLE ef TO TIMESTAMP TO_TIMESTAMP();2、執(zhí)行閃回ALTER TABLE ef ENABLE ROW MOVEMENT;表格閃回限制 不能閃回最后一次DDL之前 SYS用戶表格不能閃回 表格上事物未結束前,不能閃回 表格閃回利用UNDO表格控件數據,確保UNDO表格控件保留時間足夠長Flashback FeaturesFlashback QueriesFlashback TableFlashback DropFlashback Database閃回DROP 在10G以后

39、,DROP對象放在垃圾箱里 這使DROP表格閃回恢復,變得異常簡單 在垃圾箱里表格沒重新命名,并且控件不被釋放 閃回表格命令FLASHBACK TABLE . TO BEFORE DROP 一些限制: SYS,SYSTEM用戶表格不適用 數據字典表空間不適用 SYSTEM表空間不適用閃回DROP 被DROP表格可以被閃回 TRUNCATE表格不能被閃回 DROP閃回不適用UNDO表空間 犧牲用戶表空間的空間作為代價清理垃圾箱Purged objects cannot be flashed back (recovered) Objects are purged using the PURGE s

40、tatement or automatically by Oracle when there is space pressure in their tablespaceOracle will purge dropped tables in preference to extending autoextensible files Dependent objects (indexes) are purged before tables Purging is performed on a first-in, first-out basisDropping a tablespace, or a use

41、r does not place any objects in the bin Purges the bin of any objects belonging to that tablespace or userRecycle bin feature can be turned offALTER SYSTEM SET “_recyclebin” = FALSE SCOPE = BOTH;dba_recyclebin 視圖記錄了所有被DROP對象(未清理前)SQL desc dba_recyclebin Name Null? Type - - - OWNER NOT NULL VARCHAR2(

42、30) OBJECT_NAME NOT NULL VARCHAR2(30) ORIGINAL_NAME VARCHAR2(32) OPERATION VARCHAR2(9) TYPE VARCHAR2(25) TS_NAME VARCHAR2(30) CREATETIME VARCHAR2(19) DROPTIME VARCHAR2(19) DROPSCN NUMBER PARTITION_NAME VARCHAR2(32) CAN_UNDROP VARCHAR2(3) CAN_PURGE VARCHAR2(3) RELATED NOT NULL NUMBER BASE_OBJECT NOT

43、NULL NUMBER PURGE_OBJECT NOT NULL NUMBER SPACE NUMBERNO/YESNO/YES查詢垃圾箱 查詢dba_recyclebin ,user_recyclebin SHOW RECYCLEBIN 檢查放在垃圾箱里表格的數據內容SELECT * FROM “BIN$xyWe0+q+SniItJ0pn/u54A=$0” AS OF .;清理垃圾箱對象 清理垃圾箱語句PURGE DBA_RECYCLEBIN; Users with SYSDBA privilege, can purge the entire recycle binPURGE RECYCL

44、EBIN;PURGE TABLE emp;PURGE TABLE “BIN$xyWe0+q+SniItJ0pn/u54A=$0”;PURGE TABLESPACE user1;PURGE INDEX BIN$FTX34MN88J7=$0”;PURGE TABLESPACE user1 USER fred;Flashback FeaturesFlashback QueriesFlashback TableFlashback DropFlashback DatabaseFlashback DatabaseFLASHBACK DATABASE TO BEFORE SCN .FLASHBACK DAT

45、ABASE TO SCN .FLASHBACK DATABASE TO BEFORE TIMESTAMP .FLASHBACK DATABASE TO TIMESTAMP .整庫閃回到之前某個時間點整庫閃回到之前某個時間點 相當于做了一個相當于做了一個RMAN 不完全恢復不完全恢復 數據庫必須處于歸檔模式,及數據庫必須在數據庫必須處于歸檔模式,及數據庫必須在MOUNT狀態(tài)狀態(tài) Needs SYSDBA privilegeFlashback at Tablespace Level關閉部分不需要的表空間閃回 減少閃回日志產生 查看v$tablespace.flashback_on字段ALTER T

46、ABLESPACE expt FLASHBACK OFF;ALTER TABLESPACE users FLASHBACK ON*ERROR at line 1:ORA-01126: database must be mounted in this instance and not open in any instanceFlashback LoggingRecommended to store both flashback and archived logs in a common recovery area NOLOGGING operations are recorded in the

47、flashback logsDatabaseFlashback logsArchived logsLGWRRVWRRVWR = Recovery Writer設置閃回數據庫Configure the recovery area by setting the following dynamic parametersDB_RECOVERY_FILE_DEST Oracle writes flashbacks logs to the specified recovery area (destination) Default value is ORACLE_BASEflash_recovery_are

48、aDB_RECOVERY_FILE_DEST_SIZE Default size is 2GB Both of the above parameters must be setDB_FLASHBACK_RETENTION_TARGET (default 1440 minutes) Oracle will try to keep enough flashback information to rollback through 1440 minutes COMPATIBILITY needs to be 10.0 + (database version can not go down once s

49、et to 10.0)啟動閃回數據庫1. Connect using sys AS SYSDBA 2. Find the current SCN of the database in case you need to perform a subsequent flashback to the current stateSELECT current_scn FROM v$database;3.SHUTDOWN4.STARTUP MOUNT EXCLUSIVE5.ALTER DATABASE FLASHBACK ON;6.ALTER DATABASE OPEN;Flashback Logs Fla

50、shback data requires a lot of space On Windows, logs are 4MB on a quiet system with names like O1_MF_0B87CPH6_.FLB Size and frequency of generation depends on locality of database changes in a given interval Any change within a block means the whole block is logged On Windows, logs are actually stor

51、ed ind:oracleflash_recovery_areaflashbackFlashback MechanismFlashback information jumps the database back in timeArchive log data is then applied to perform a point in time recovery Example : FLASHBACK DATABASE TO SCN 53297DatabaseSCN 69633Flashbacklog 23Flashbacklog 22Flashbacklog 21Flashbacklog 20

52、67234629835561750614Archive stream5329750617Recovery Area Storage 恢復區(qū)域用于存儲閃回日志,備份集 在保留時間內需要配置足夠的存儲空間 如果空間使用率達到85%,alert日志會發(fā)出警告信息 如果空間使用率達到100%,Oracle自動刪除選擇最老閃回日志 閃回日志不能通過手工刪除,如果空間滿需要調整保留空間大小或者保留時間閃回視圖SELECT name ,space_limit ,space_used ,reclaimable_space reclaim ,number_of_files files FROM v$recove

53、ry_file_dest;NAME SPACE_LIMIT SPACE_USED RECLAIM FILES- - - - -D:oracleflash_recovery_area 2147483648 364353536 0 86 v$recovery_file_dest顯示閃回空間使用情況顯示閃回空間使用情況閃回視圖SELECT TO_CHAR(begin_time,ddth hh24:mi) start_time ,TO_CHAR(end_time,ddth hh24:mi) end_time ,db_data ,redo_data ,flashback_data fl_data ,es

54、timated_flashback_size est_fl_sizeFROM v$flashback_database_stat;START_TIME END_TIME DB_DATA REDO_DATA FL_DATA EST_FL_SIZE- - - - - -15th 15:59 15th 16:48 20234240 9678336 12361728 015th 14:59 15th 15:59 19652608 7720960 10272768 39849984015th 13:59 15th 14:59 21643264 8264704 12541952 44740608015th

55、 12:59 15th 13:59 20897792 7571968 12435456 51683328015th 11:52 15th 12:59 46702592 32384000 33333248 712679424 v$flashback_database_stat顯示每小時日志量顯示每小時日志量 estimated_flashback_size is the value found in v$flashback_database_log at the end of the time interval閃回視圖SELECT name ,TO_CHAR(first_time,ddth hh

56、24:mi:ss) first_time ,bytesFROM v$flashback_database_logfile;NAME FIRST_TIME BYTES- - -D:ORACLEFLASH_RECOVERY_AREAORAC 15th 14:42:30 3981312FLASHBACKO1_MF_0B7W0MGC_.FLBD:ORACLEFLASH_RECOVERY_AREAORAC 15th 15:01:06 3981312FLASHBACKO1_MF_0B7W0WX4_.FLBD:ORACLEFLASH_RECOVERY_AREAORAC 15th 15:27:31 39813

57、12FLASHBACKO1_MF_0B7XLT9Z_.FLB v$flashback_database_logfile 查看閃回日志數據庫閃回小結 介質失敗,不能通過閃回恢復 數據庫結構發(fā)生變化,如數據文件strink,DROP表空間不能閃回進行恢復 數據庫RESETLOGS OPEN后,不能使用閃回進行恢復閃回和只讀打開 有時候需要反復閃回數據庫以獲取準確數據 可以使用只讀模式來完成此操作 如: 1、shutdown 2、startup mount 3、flashback database to scn; 4、alter database open read only;-進行數據校驗如果需要

58、重復以上操作邏輯備份備份方法 導入導出導入導出exp/impexp/imp備份條件:數據庫打開,導入與導出的數據庫表空間盡可備份條件:數據庫打開,導入與導出的數據庫表空間盡可能一致,只能同版本導入或低版本導入到高版本數據庫能一致,只能同版本導入或低版本導入到高版本數據庫 數據泵數據泵expdp/impdpexpdp/impdp備份條件:數據庫打開,導入與導出的數據庫表空間盡可備份條件:數據庫打開,導入與導出的數據庫表空間盡可能一致,只能同版本導入或低版本導入到高版本數據庫,能一致,只能同版本導入或低版本導入到高版本數據庫,效率高但只能在效率高但只能在10g10g以上的版本上使用以上的版本上使用

59、1. 1. 目錄目錄/ORACLE_HOME/bin/ORACLE_HOME/bin下,一個二進制系統(tǒng)文件下,一個二進制系統(tǒng)文件. .2. EXP2. EXP有三種模式:有三種模式:用戶模式:導出用戶所有對象以及對象中的數據;用戶模式:導出用戶所有對象以及對象中的數據;表模式:導出用戶所有表或者指定的表;表模式:導出用戶所有表或者指定的表;表空間:導出表空間所有內容,可能包含多個用戶的對象;表空間:導出表空間所有內容,可能包含多個用戶的對象;整個數據庫:整個數據庫: 導出數據庫中所有對象。導出數據庫中所有對象。3 3. . 導出工具導出工具expexp非交互式命令導出用戶的例子:非交互式命令導

60、出用戶的例子: $exp scott/tiger tables=(emp,dept)$exp scott/tiger tables=(emp,dept)owner=scottowner=scott file=/directory/scott.dmpfile=/directory/scott.dmp 導出工具export 3 3. . 導出工具導出工具expexp非交互式命令行導出表格的例子非交互式命令行導出表格的例子 $exp scott/tiger tables=(emp,dept) $exp scott/tiger tables=(emp,dept) file=/directory/scott.d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論