国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle數(shù)據(jù)庫(kù)聯(lián)機(jī)熱備份的原理簡(jiǎn)介

2024-08-29 13:34:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
    要求歸檔模式
SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 14Next log sequence to archive 16Current log sequence 16
先看用戶(hù)治理的熱備份 看看下面這個(gè)要害的操作,將備份的內(nèi)容置于backup模式,用戶(hù)治理的聯(lián)機(jī)熱備份必需的操作, 不然copy備份的數(shù)據(jù)文件不能用來(lái)恢復(fù),即使用某些放時(shí)恢復(fù)了也會(huì)丟數(shù)據(jù)
SQL> alter tablespace users begin backup;Tablespace altered.SQL> list 1 select d.file_name filename,d.tablespace_name ts_name,b.status 2 from dba_data_files d,v$backup b 3* where d.file_id=b.file#SQL> /FILENAME TS_NAME STATUS---------------------------------------- ---------- ------------------/u02/oradata/sales/system01.dbf SYSTEM NOT ACTIVE/u02/oradata/sales/undotbs01.dbf UNDOTBS1 NOT ACTIVE/u02/oradata/sales/sysaux01.dbf SYSAUX NOT ACTIVE/u02/oradata/sales/users01.dbf USERS ACTIVE/u02/oradata/sales/example01.dbf EXAMPLE NOT ACTIVE/u02/oradata/sales/perfstat.dbf PERFSTAT NOT ACTIVE
USERS表空間現(xiàn)在處于backup模式,究竟這時(shí)候怎么了? 在我們alter tablespace users begin backup 的時(shí)候是 鎖定了users表空間對(duì)應(yīng)的數(shù)據(jù)文件頭的change scn。 首先考慮一下數(shù)據(jù)庫(kù)怎么用日志文件做恢復(fù):查找不一致的數(shù)據(jù)文件(根據(jù)文件頭中舊的scn) 假如鎖定了文件頭,這個(gè)文件頭中的scn就不會(huì)改變(當(dāng)然了數(shù)據(jù)塊還是會(huì)變化的,還可以做讀寫(xiě))。 然后就會(huì)應(yīng)用這個(gè)scn到現(xiàn)在的日志。那我鎖定了scn,不管你后邊怎么修改, 總之做恢復(fù)的時(shí)候是應(yīng)用鎖定的時(shí)候的scn一直到現(xiàn)在的日志(完全恢復(fù)的話) 舉個(gè)例子: a,b兩個(gè)數(shù)據(jù)文件,把a(bǔ)置于備份模式,b正常 這時(shí)候兩個(gè)change scn都是100,然后開(kāi)始備份 這期間有數(shù)據(jù)庫(kù)的修改,備份完成的時(shí)候,Scn變成了200。但是由于a的備份模式, 所以a的文件頭中記錄的scn還是100,b是200。 某個(gè)時(shí)間,假設(shè)scn 500 這時(shí)候a丟失 copy回a的備份,然后recover,完全恢復(fù)的話數(shù)據(jù)庫(kù)就應(yīng)用100—500這段的日志,自然也就不會(huì)丟失數(shù)據(jù)了。 因?yàn)椴还茉谖襝opy備份的過(guò)程中你做什么操作,總之都在鎖定的時(shí)change scn之后, 所以應(yīng)用的日志就不會(huì)有遺漏了。這時(shí)候應(yīng)該能理解為什么要數(shù)據(jù)庫(kù)處于archived模式了 看看數(shù)據(jù)文件頭的change scn
SQL>select NAME,TABLESPACE_NAME,STATUS,CHECKPOINT_CHANGE# from v$datafile_header;NAME TABLESPACE STATUS CHECKPOINT_CHANGE#-------------------------------- ---------- -------------- ------------------/u02/oradata/sales/system01.dbf SYSTEM ONLINE 545926/u02/oradata/sales/undotbs01.dbf UNDOTBS1 ONLINE 545926/u02/oradata/sales/sysaux01.dbf SYSAUX ONLINE 545926/u02/oradata/sales/users01.dbf USERS ONLINE 545498/u02/oradata/sales/example01.dbf EXAMPLE ONLINE 545926/u02/oradata/sales/perfstat.dbf PERFSTAT ONLINE 5459266 rows selected.
顯然,在將users表空間置于backup狀態(tài)的時(shí)候,相應(yīng)的datafile的文件頭的scn就不會(huì)再發(fā)生改變, 發(fā)生檢查點(diǎn)也不會(huì)改變。
SQL> alter system checkpoint;System altered.SQL> select NAME,TABLESPACE_NAME,STATUS,CHECKPOINT_CHANGE# from v$datafile_header;
NAME TABLESPACE STATUS CHECKPOINT_CHANGE#-------------------------------- ---------- -------------- ------------------/u02/oradata/sales/system01.dbf SYSTEM ONLINE 546196/u02/oradata/sales/undotbs01.dbf UNDOTBS1 ONLINE 546196/u02/oradata/sales/sysaux01.dbf SYSAUX ONLINE 546196/u02/oradata/sales/users01.dbf USERS ONLINE 545498/u02/oradata/sales/example01.dbf EXAMPLE ONLINE 546196/u02/oradata/sales/perfstat.dbf PERFSTAT ONLINE 5461966 rows selected.
下面end backup,看看scn
SQL> alter tablespace users end backup;Tablespace altered.SQL> alter system checkpoint;System altered.SQL>select NAME,TABLESPACE_NAME,STATUS,CHECKPOINT_CHANGE# from v$datafile_header;NAME TABLESPACE STATUS CHECKPOINT_CHANGE#-------------------------------- ---------- -------------- ------------------/u02/oradata/sales/system01.dbf SYSTEM ONLINE 546467/u02/oradata/sales/undotbs01.dbf UNDOTBS1 ONLINE 546467/u02/oradata/sales/sysaux01.dbf SYSAUX ONLINE 546467/u02/oradata/sales/users01.dbf USERS ONLINE 546467/u02/oradata/sales/example01.dbf EXAMPLE ONLINE 546467/u02/oradata/sales/perfstat.dbf PERFSTAT ONLINE 5464676 rows selected.
------------------ 再說(shuō)說(shuō)rman備份 個(gè)人認(rèn)為理解了用戶(hù)治理的熱備份,rman就已經(jīng)理解了一大半了 rman 備份是針對(duì)塊一級(jí)的,支持增量備份,稍后說(shuō)怎么做的增量備份 Rman備份并不需要將數(shù)據(jù)庫(kù)或者表空間置于backup狀態(tài),但是它會(huì)把scn記錄 在catalog中對(duì)應(yīng)你的backupset預(yù)備在恢復(fù)的時(shí)候來(lái)使用 對(duì)users表空間做一個(gè)完全備份
$ rman target sys/Oracle nocatalogRMAN> run {2> allocate channel d1 type disk;3> backup4> format='/u03/oraclebk/%d_%N_%s.bk' tablespace users;5> release channel d1;6> }
看一下備份集里都有什么,注重看Ckp SCN 546792,
RMAN> list backup of tablespace users;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------3 Full 1M DISK 00:00:02 31-MAR-05 BP Key: 3 Status: AVAILABLE ComPRessed: NO Tag: TAG20050331T153729 Piece Name: /u03/oraclebk/SALES_USERS_4.bk List of Datafiles in backup set 3 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 4 Full 546792 31-MAR-05 /u02/oradata/sales/users01.dbf
恢復(fù)的時(shí)候應(yīng)用546792開(kāi)始到現(xiàn)在的歸檔日志和重做日志.
--------------- rman的增量備份的基本原理 其實(shí)原理很簡(jiǎn)單,主要就是弄明白怎么樣在做增量備份時(shí)確定某個(gè)數(shù)據(jù)塊需要備份,哪個(gè)不需要 rman在做1級(jí)備份的時(shí)候怎么來(lái)確定0級(jí)備份之后都有哪些數(shù)據(jù)塊做了修改呢?看下面一段 Each data block in a datafile contains a system change number (SCN), which is the SCN at which the most recent change was made to the block. During an incremental backup, RMAN reads the SCN of each data block in the input file and compares it to the checkpoint SCN of the parent incremental backup. If the SCN in the input data block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies the block. 原來(lái)block里邊也有一個(gè)change scn 也就是說(shuō)在做level 1級(jí)備份的時(shí)候,需要掃描所有的數(shù)據(jù)塊并且用塊中記錄修改的SCN 跟level 0備份時(shí)的SCN做比較(備份記錄中的Ckp SCN),來(lái)確定這個(gè)塊是否需要備份。 所以掃描整個(gè)數(shù)據(jù)文件是不可避免的 ! 這是傳統(tǒng)的rman做增量備份 在10g中rman做增量備份不再需要掃描整個(gè)數(shù)據(jù)文件了 10g引入的新特性 block change tracking: Block change tracking進(jìn)程記錄自從上一次備份以來(lái)數(shù)據(jù)塊的變化,并把這些信息記錄在跟蹤文件中。 RMAN使用這個(gè)文件判定增量備份中需要備份的變更數(shù)據(jù)。這極大的促進(jìn)了備份性能, RMAN可以不再掃描整個(gè)文件以查找變更數(shù)據(jù)。 RMAN's change tracking feature for incremental backups improves incremental backup performance by recording changed blocks in each datafile in a change tracking file. If change tracking is enabled, RMAN uses the change tracking file to identify changed blocks for incremental backup, thus avoiding the need to scan every block in the datafile. 估計(jì)是使用的位圖文件做的記錄! 附: 有愛(ài)好的可以看看dump的數(shù)據(jù)塊 通過(guò)下面的查詢(xún)找一個(gè)表對(duì)應(yīng)的數(shù)據(jù)塊
SQL> select file_id,block_id,blocks 2 from dba_extents 3 where segment_name='EMPLOYEES'; FILE_ID BLOCK_ID BLOCKS---------- ---------- ---------- 5 81 8
dump一個(gè)塊到udump的trc文件
SQL> alter system dump datafile 5 block 81;System altered.
在udump目錄找到對(duì)應(yīng)的trc文件,找到dump那段
Start dump data blocks tsn: 6 file#: 5 minblk 81 maxblk 81buffer tsn: 6 rdba: 0x01400051 (5/81)scn: 0x0000.00086c4d seq: 0x01 flg: 0x04 tail: 0x4b502001
后面省略了 scn: 0x0000.00086c4d是16進(jìn)制你可以換算過(guò)來(lái)552013 你可以嘗試做一下修改,不過(guò)一定要保證對(duì)應(yīng)的塊被修改了,并且被寫(xiě)了,才能反映出來(lái)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郑州市| 柳林县| 逊克县| 乌兰县| 盱眙县| 扬州市| 房山区| 垫江县| 宁国市| 正蓝旗| 治多县| 广州市| 屯门区| 新龙县| 铁力市| 合川市| 台北县| 额尔古纳市| 屏东县| 句容市| 方城县| 宁远县| 雷州市| 英山县| 巫山县| 仙居县| 敖汉旗| 宁阳县| 青冈县| 格尔木市| 馆陶县| 安吉县| 瑞丽市| 蓬莱市| 调兵山市| 汕头市| 乡宁县| 游戏| 镇雄县| 抚宁县| 宁明县|