亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle 實(shí)例恢復(fù)

系統(tǒng) 2279 0

--=======================

-- Oracle 實(shí)例恢復(fù)

--=======================

一、Oracle實(shí)例失敗

Oracle實(shí)例失敗多為實(shí)例非一致性關(guān)閉所致,通常稱(chēng)為崩潰 ( crash ) 。實(shí)例失敗的結(jié)果等同于 shutdown abort。

實(shí)例失敗的原因

電源負(fù)載故障

硬件故障

后臺(tái)進(jìn)程失敗

異常關(guān)閉數(shù)據(jù)庫(kù)

實(shí)例失敗后的狀況

數(shù)據(jù)庫(kù)可能丟失已提交的事務(wù)以及存儲(chǔ)了未提交的事務(wù),導(dǎo)致數(shù)據(jù)庫(kù)出現(xiàn)不一致的情況

解決方案

使用startup重新啟動(dòng)實(shí)例。實(shí)例實(shí)現(xiàn)自動(dòng)恢復(fù),根據(jù)聯(lián)機(jī)日志文件前滾提交的事務(wù),回滾未提交的事務(wù)

查看告警日志、跟蹤日志等找出出現(xiàn)故障的原因

更多常見(jiàn)的故障請(qǐng)參考: Oracle常見(jiàn)故障及日常規(guī)劃

二、檢查點(diǎn)

檢查點(diǎn)在體系結(jié)構(gòu)中已經(jīng)討論,實(shí)例的恢復(fù)與檢查點(diǎn)息息相關(guān),因此再次討論檢查點(diǎn)進(jìn)程

1.什么是檢查點(diǎn)

是一個(gè)數(shù)據(jù)庫(kù)事件,用于減少崩潰恢復(fù)時(shí)間,檢查點(diǎn)位置決定了實(shí)例恢復(fù)的起始位置

由后臺(tái)進(jìn)程觸發(fā),觸發(fā)時(shí)ckpt進(jìn)程通知dbwn進(jìn)程將數(shù)據(jù)緩沖區(qū)的臟數(shù)據(jù)寫(xiě)入到數(shù)據(jù)文件

ckpt進(jìn)程同時(shí)負(fù)責(zé)更新數(shù)據(jù)文件的頭部信息及控制文件上的檢查點(diǎn)信息

2.檢查點(diǎn)的觸發(fā)條件

在日志切換的時(shí)候 ( 自動(dòng)切換或手動(dòng)切換 )

數(shù)據(jù)庫(kù)用immediate, transaction ,normal選項(xiàng) shutdown 數(shù)據(jù)庫(kù)的時(shí)候

用戶(hù)手動(dòng)觸發(fā) ( alter system checkpoint )

alter tablespace tablespace_name begin | end bakcup

alter tablespace tablespace_name offline

alter database datafile '<dir>' offline

alter tablespace | datafile read only

3.檢測(cè)點(diǎn)隊(duì)列

是一個(gè)臟數(shù)據(jù)庫(kù)鏈表

檢查點(diǎn)隊(duì)列中的每一條修改過(guò)的記錄包一個(gè)唯一的數(shù)據(jù)塊標(biāo)識(shí)符 ( 日志文件號(hào),塊編號(hào),偏移量 )

最早隊(duì)列將被優(yōu)先寫(xiě)入到數(shù)據(jù)文件 ( 而不論期間是否被多次修改 )

最早隊(duì)列被寫(xiě)入完成后將從隊(duì)列中清除

4.檢查點(diǎn)的分類(lèi)

完全檢查點(diǎn)

在Oracle 8i以前,當(dāng)檢查點(diǎn)發(fā)生時(shí),Oracle將臟緩沖列表上的數(shù)據(jù)全部寫(xiě)入到數(shù)據(jù)文件,稱(chēng)為完全檢查點(diǎn),又稱(chēng)常規(guī)檢查點(diǎn)

特定的觸發(fā)條件

alter system switch logfile

shutdown normal , immediate , transactional

alter system checkpoint

增量檢查點(diǎn) ( fast - start checkpoint )

主要是引入了檢查點(diǎn)隊(duì)列機(jī)制 , 每s,ckpt將檢查點(diǎn)隊(duì)列中最老的RBA更新到控制文件,RBA ( 重做日志塊地址 ) 同時(shí)將作為實(shí)例恢復(fù)的起點(diǎn)

增量檢查點(diǎn)則細(xì)分了完全檢查點(diǎn),使得數(shù)據(jù)可以周期性按最老的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)文件

每一個(gè)臟塊會(huì)被移到檢查點(diǎn)隊(duì)列里面去,按照LRBA(Low RBA第一次對(duì)此塊修改對(duì)應(yīng)的redo block address)來(lái)排列

最早寫(xiě)入檢查點(diǎn)隊(duì)列數(shù)據(jù)塊的low rba值是最小的,即便該隊(duì)列中的最小隊(duì)列被修改多次,但修改后它在檢查點(diǎn)隊(duì)列里的順序不會(huì)改變

當(dāng)執(zhí)行增量檢查點(diǎn)時(shí),DBWn從檢查點(diǎn)隊(duì)列按照LRBA的順序來(lái)保證先修改的數(shù)據(jù)可以按順序優(yōu)先被寫(xiě)出來(lái)實(shí)現(xiàn)檢查點(diǎn)的增進(jìn)

此時(shí)ckpt進(jìn)程使用輕量級(jí)的控制文件更新協(xié)議,將當(dāng)前最低的RBA寫(xiě)入控制文件

ckpt在進(jìn)行輕量級(jí)更新時(shí),并不會(huì)改寫(xiě)控制文件中數(shù)據(jù)文件的檢查點(diǎn)信息及數(shù)據(jù)文件頭信息

僅僅是記錄控制文件檢查點(diǎn)SCN并根據(jù)增量檢查點(diǎn)寫(xiě)出增進(jìn)RBA信息

通過(guò)將完全檢查點(diǎn)轉(zhuǎn)變?yōu)樵隽繖z查點(diǎn)將大大縮短實(shí)例的恢復(fù)時(shí)間

注:更新數(shù)據(jù)文件頭部及控制文件滯后于檢查點(diǎn)事件的發(fā)生

增量檢查點(diǎn)的觸發(fā)

滿(mǎn)足初始話(huà)文件log_checkpoint_interval、log_checkpoint_timeout、

fast_start_io_target、fast_start_mttr_target的設(shè)置的值

最小的日志文件的大小

Buffer Cacha中臟塊的數(shù)量

部分檢查點(diǎn)

表空間的臟數(shù)據(jù)寫(xiě)入到磁盤(pán)

alter tablespace tablespace_name offline觸發(fā)

5.完全檢查點(diǎn)與增量檢查點(diǎn)的差異

完全檢查點(diǎn)會(huì)將檢查點(diǎn)的信息同時(shí)寫(xiě)入到控制文件及數(shù)據(jù)文件

增量檢查點(diǎn)則只將RBA寫(xiě)入到控制文件

6.查看檢查點(diǎn)的信息 , 設(shè)置LOG_CHECKPOINTS_TO_ALERT參數(shù)為true

ALTER SYSTEM SET LOG_CHECKPOINTS_TO_ALERT = TRUE ;

-- 查看log_checkpoints_to_alert 參數(shù)

SQL > SHOW PARAMETER log_checkpoints_to_alert

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_checkpoints_to_alertbooleanFALSE

-- 設(shè)置log_checkpoints_to_alert 參數(shù)

SQL > ALTER SYSTEM set log_checkpoints_to_alert = TRUE ;

System altered .

-- 清空告警日志文件的內(nèi)容

SQL > ho cat / dev /null > / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log

-- 查看數(shù)據(jù)文件頭部信息中控制文件的信息為3037172

SQL > SELECT file# , status , tablespace_name ,

2dbms_flashback . get_system_change_number cur_scn ,

3to_char ( resetlogs_time , 'yyyy-mm-dd hh24:mi:ss' ) rst_dt ,

4resetlogs_change# rst_scn ,

5to_char ( checkpoint_time , 'yyyy-mm-dd hh24:mi:ss' ) ckpt_dt ,

6checkpoint_change# ckpt_scn , checkpoint_count ckpt_cnt

7 FROM v$datafile_header ;

FILE# STATUSTABLESPACE_NAMECUR_SCN RST_DTRST_SCN CKPT_DTCKPT_SCNCKPT_CNT

---------- ------- --------------- ---------- ------------------- ---------- ------------------- ---------- ----------

1 ONLINESYSTEM3037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172531

2 ONLINEUNDOTBS13037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172493

3 ONLINESYSAUX3037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172532

4 ONLINEUSERS3037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172534

5 ONLINEEXAMPLE3037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172489

6 ONLINETBS13037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172412

7 ONLINETBS13037641 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 05 : 303037172407

7 rows selected .

SQL > save / u01 / app / oracle / oradata / query_1 . sql ;

Created file / u01 / app / oracle / oradata / query_1 . sql

SQL > ALTER SYSTEM SWITCH LOGFILE ; -- 切換日志

System altered .

SQL > ho cat / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log | more -- 查看告警日志

Sun Jul 25 19 : 14 : 29 2010

Beginning log switch checkpoint up to RBA [0xd.2.10] , SCN : 3037657

Thread 1 advanced to log sequence 13

Current log# 3 seq# 13 mem# 0 : / u01 / app / oracle / oradata / orcl / redo3a . rdo

Current log# 3 seq# 13 mem# 1 : / u01 / app / oracle / oradata / orcl / redo3b . rdo

SQL > @/u01 / app / oracle / oradata / query_1 . sql ; -- 數(shù)據(jù)文件頭部滯后分鐘后與告警日志記錄的SCN 相同

FILE# STATUSTABLESPACE_NAMECUR_SCN RST_DTRST_SCN CKPT_DTCKPT_SCNCKPT_CNT

---------- ------- --------------- ---------- ------------------- ---------- ------------------- ---------- ----------

1 ONLINESYSTEM3037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657532

2 ONLINEUNDOTBS13037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657494

3 ONLINESYSAUX3037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657533

4 ONLINEUSERS3037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657535

5 ONLINEEXAMPLE3037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657490

6 ONLINETBS13037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657413

7 ONLINETBS13037803 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 14 : 293037657408

SQL > SELECT TO_CHAR ( sysdate , 'yyyy-mm-dd hh24:mi:ss' ) FROM dual ; -- 時(shí)間滯后分鐘19:19:59 - 19:14:29

TO_CHAR ( SYSDATE , 'YY'

-------------------

2010 - 07 - 25 19 : 19 : 59

SQL > ALTER SYSTEM CHECKPOINT ; -- 產(chǎn)生檢查點(diǎn)

System altered .

SQL > ho cat / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log | more -- 查看告警日志中的SCN: 3037881

Sun Jul 25 19 : 14 : 29 2010

Beginning log switch checkpoint up to RBA [0xd.2.10] , SCN : 3037657

Thread 1 advanced to log sequence 13

Current log# 3 seq# 13 mem# 0 : / u01 / app / oracle / oradata / orcl / redo3a . rdo

Current log# 3 seq# 13 mem# 1 : / u01 / app / oracle / oradata / orcl / redo3b . rdo

Sun Jul 25 19 : 19 : 34 2010

Completed checkpoint up to RBA [0xd.2.10] , SCN : 3037657

Sun Jul 25 19 : 21 : 55 2010

Beginning global checkpoint up to RBA [0xd.116.10] , SCN : 3037881

Completed checkpoint up to RBA [0xd.116.10] , SCN : 3037881

SQL > @/u01 / app / oracle / oradata / query_1 . sql ; -- 數(shù)據(jù)文件頭部同步與告警日志記錄的SCN 相同,為3037881

FILE# STATUSTABLESPACE_NAMECUR_SCN RST_DTRST_SCN CKPT_DTCKPT_SCNCKPT_CNT

---------- ------- --------------- ---------- ------------------- ---------- ------------------- ---------- ----------

1 ONLINESYSTEM3037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881533

2 ONLINEUNDOTBS13037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881495

3 ONLINESYSAUX3037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881534

4 ONLINEUSERS3037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881536

5 ONLINEEXAMPLE3037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881491

6 ONLINETBS13037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881414

7 ONLINETBS13037890 2010 - 07 - 20 11 : 59 : 232837290 2010 - 07 - 25 19 : 21 : 553037881409

-- 查看完全檢查點(diǎn)

SQL > SELECT addr , indx , rtckp_scn ,

2rtckp_tim ,

3rtckp_rba_seq , rtckp_rba_bno

4 FROM x$kccrt ;

ADDRINDX RTCKP_SCNRTCKP_TIMRTCKP_RBA_SEQ RTCKP_RBA_BNO

-------- ---------- ---------------- -------------------- ------------- -------------

B7D59C100 303788107 / 25 / 2010 19 : 21 : 5513278

SQL > show parameter log_check -- 查看log_checkpoint_timeout 的值

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_checkpoint_intervalinteger0

log_checkpoint_timeoutinteger1800

log_checkpoints_to_alertbooleanTRUE

ho cat / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log -- 告警日志文件中Incremental checkpoint

----------------------------------------------------------------------------------

Sun Jul 25 19 : 22 : 46 2010

Incremental checkpoint up to RBA [0xd.119.0] , current log tail at RBA [0xd.119.0]

Sun Jul 25 19 : 52 : 51 2010

Incremental checkpoint up to RBA [0xd.37a.0] , current log tail at RBA [0xd.420.0]

---------------------------------------------------------------------------------

SQL > select CPDRT , CPLRBA_SEQ|| '.' || CPLRBA_BNO|| '.' || CPLRBA_BOF "Low RBA" ,

2CPODR_SEQ|| '.' || CPODR_BNO|| '.' || CPODR_BOF "On disk RBA" , CPODS , CPODT , CPHBT

3 from x$kcccp where indx = 0 ; -- 獲得控制文件中增量檢查點(diǎn)的信息

CPDRT Low RBA On disk RBACPODSCPODTCPHBT

---------- ------------------- ------------- ------- ----------------------------

97 13.5574.013.6391.03041226 07 / 25 / 2010 22 : 16 : 37725323317

--CPDRT 列是檢查點(diǎn)隊(duì)列中的臟塊數(shù)目.

--CPODS 列是on disk rba 的scn

--CPODT 列是on disk rba 的時(shí)間戳

--CPHBT 列是心跳

7.更詳細(xì)的檢查點(diǎn)介紹: 針對(duì)checkpoint的概要分析

晶晶實(shí)驗(yàn)九之詳細(xì)論述增量檢查點(diǎn)篇

三、實(shí)例恢復(fù)

1.當(dāng)打開(kāi)非一致性關(guān)閉或 shutdown abort數(shù)據(jù)庫(kù)時(shí),將導(dǎo)致實(shí)例恢復(fù)

2.實(shí)例恢復(fù)過(guò)程為自動(dòng)

3.使用聯(lián)機(jī)重做日志文件中的信息來(lái)同步數(shù)據(jù)文件

4.涉及到兩類(lèi)不同的操作

前滾:數(shù)據(jù)文件被還原到實(shí)例失敗之前的狀態(tài)

回滾:已修改但未提交的數(shù)據(jù)將被撤銷(xiāo)到修改之前的狀態(tài)

四、實(shí)例恢復(fù)的過(guò)程

下面的圖片來(lái)自O(shè)racle官方教材

實(shí)例恢復(fù)過(guò)程

1.首先Oracle會(huì)比較控制文件中檢查點(diǎn)與數(shù)據(jù)文件頭部信息,發(fā)現(xiàn)數(shù)據(jù)不一致

2.從最后檢查點(diǎn)之后到日志文件尾部將被重新應(yīng)用到數(shù)據(jù)文件,同時(shí)產(chǎn)生undo信息 ( 回滾 ) ,此階段也稱(chēng)為cache recovery

3.數(shù)據(jù)文件中包含已提交或未提交的數(shù)據(jù),盡管存在未提交的數(shù)據(jù),此時(shí)數(shù)據(jù)庫(kù)已經(jīng)被打開(kāi),允許用戶(hù)連接

4.未提交的事務(wù)將被回滾

5.數(shù)據(jù)文件中僅包含已提交的數(shù)據(jù)

五、調(diào)整實(shí)例恢復(fù)

1.為參數(shù)文件中對(duì)恢復(fù)過(guò)程有影響的聯(lián)機(jī)日志記錄數(shù)量和數(shù)據(jù)塊設(shè)置合適的大小

2.調(diào)整聯(lián)機(jī)日志文件的大小來(lái)影響檢查點(diǎn)發(fā)生的頻率

3.使用SQL命令發(fā)生檢查點(diǎn)事件

4.使用Fast - start fault recovery

5.幾個(gè)恢復(fù)相關(guān)的參數(shù)

LOG_CHECKPOINT_TIMEOUT --> 兩次checkpoint 之間間隔的時(shí)間(單位是秒),該參數(shù)現(xiàn)已很少使用

LOG_CHECKPOINT_INTERVAL --> 兩次checkpoint 之間redo block數(shù)據(jù)塊的個(gè)數(shù)(不是db_block),

--redo block size = os block size 該參數(shù)現(xiàn)已很少使用

FAST_START_MTTR_TARGET --> 指定多長(zhǎng)時(shí)間完成實(shí)例恢復(fù)( 單位是秒) (后面演示中重點(diǎn)討論)

RECOVERY_PARALLELISM --> 指定前滾時(shí)的并發(fā)度

FAST_START_PARALLEL_ROLLBACK --> 回滾階段時(shí)預(yù)先UNDO 需要使用的塊,然后增加回滾并發(fā)度

-- 2 路CPU 建議設(shè)置為L(zhǎng)O,四路CPU建議設(shè)置為HI,否則缺省置為false

FAST_START_IO_TARGET --> 數(shù)據(jù)庫(kù)宕機(jī)所要做的恢復(fù)所需的IO 的數(shù)量,10g之后很少使用

六、實(shí)例恢復(fù)相關(guān)的視圖

V$INSTACE_RECOVERY --> 查看fast_start_mttr_target 設(shè)置以及系統(tǒng)MTTR相關(guān)信息

V$FAST_START_SERVERS --> 事務(wù)回滾時(shí)相關(guān)并發(fā)信息

V$FAST_START_TRANSACTION --> 正在恢復(fù)的事務(wù)的相關(guān)信息

完全檢查點(diǎn)

select * from X$KCCRT where indx = 0 ;

增量檢查點(diǎn)

SQL > select * from X$KCCCP where indx = 0 ;

七、實(shí)例恢復(fù)演示

-- 刪除告警日志

SQL > ho rm - f / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log

SQL > SELECT * FROM scott . emp WHERE ename = 'SCOTT' ;

EMPNO ENAMEJOBMGR HIREDATESALDEPTNO

---------- ------------------------------ --------- ---------- --------- ---------- ----------

7788 SCOTTANALYST7566 19 - APR - 87710020

-- 更新SCOTT 的薪水且提交事務(wù)

SQL > UPDATE scott . emp SET sal = sal / 2 WHERE ename = 'SCOTT' ;

1 row updated .

SQL > COMMIT ;

Commit complete .

-- 插入兩條新記錄且不提交事務(wù)

SQL > INSERT INTO scott . emp ( empno , ename , job ) SELECT '2001' , 'Mark' , 'Develpoer' FROM dual ;

1 row created .

SQL > INSERT INTO scott . emp ( empno , ename , job ) SELECT '2002' , 'Mary' , 'Designer' FROM dual ;

1 row created .

SQL > SELECT * FROM scott . emp WHERE empno IN ( 2001 , 2002 );

EMPNO ENAMEJOBMGR HIREDATESALDEPTNO

---------- ------------------------------ --------- ---------- --------- ---------- ----------

2001 MarkDevelpoer

2002 MaryDesigner

-- 強(qiáng)制關(guān)閉實(shí)例并重啟實(shí)例,則實(shí)例將自動(dòng)回滾

SQL > SHUTDOWN ABORT ;

ORACLE instance shut down .

SQL > STARTUP

ORACLE instance started .

Total System Global Area251658240 bytes

Fixed Size 1218796 bytes

Variable Size 88082196 bytes

Database Buffers159383552 bytes

Redo Buffers2973696 bytes

Database mounted .

Database opened .

-- 從告警日志中獲得回滾的相關(guān)信息

SQL > ho ls / u01 / app / oracle / admin / orcl / bdump

alert_orcl . log orcl_arc0_4016 . trcorcl_arc1_4018 . trcorcl_lgwr_3995 . trc

SQL > ho cat / u01 / app / oracle / admin / orcl / bdump / alert_orcl . log

----------------------------------------------------------------

ALTER DATABASE MOUNT

Thu Jul 22 12 : 44 : 40 2010

Setting recovery target incarnation to 10

Thu Jul 22 12 : 44 : 40 2010

Successful mount of redo thread 1 , with mount id 1252833332

Thu Jul 22 12 : 44 : 40 2010

Database mounted in Exclusive Mode

Completed : ALTER DATABASE MOUNT

Thu Jul 22 12 : 44 : 41 2010

ALTER DATABASE OPEN

Thu Jul 22 12 : 44 : 41 2010

Beginning crash recovery of 1 threads -- 開(kāi)始crash recovery

Thu Jul 22 12 : 44 : 41 2010

Started redo scan -- 掃描redo

Thu Jul 22 12 : 44 : 42 2010

Completed redo scan

142 redo blocks read , 58 data blocks need recovery

Thu Jul 22 12 : 44 : 42 2010

Started redo application at

Thread 1 : logseq 4 , block 3156

Thu Jul 22 12 : 44 : 42 2010

Recovery of Online Redo Log : Thread 1 Group 3 Seq 4 Reading mem 0

Mem# 0 errs 0 : / u01 / app / oracle / oradata / orcl / redo3a . rdo

Mem# 1 errs 0 : / u01 / app / oracle / oradata / orcl / redo3b . rdo

Thu Jul 22 12 : 44 : 42 2010

Completed redo application

Thu Jul 22 12 : 44 : 43 2010

Completed crash recovery at -- 完成恢復(fù)

Thread 1 : logseq 4 , block 3298 , scn 2921577

58 data blocks read , 58 data blocks written , 142 redo blocks read

Thu Jul 22 12 : 44 : 43 2010

LGWR : STARTING ARCH PROCESSES

ARC0 : Archival started

ARC1 : Archival started

LGWR : STARTING ARCH PROCESSES COMPLETE

ARC1 started with pid = 17 , OS id = 4018

ARC0 started with pid = 16 , OS id = 4016

Thu Jul 22 12 : 44 : 45 2010

Thread 1 advanced to log sequence 5

Thread 1 opened at log sequence 5

Current log# 1 seq# 5 mem# 0 : / u01 / app / oracle / oradata / orcl / redo1a . rdo

Current log# 1 seq# 5 mem# 1 : / u01 / app / oracle / oradata / orcl / redo1b . rdo

Successful open of redo thread 1

Thu Jul 22 12 : 44 : 45 2010

MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set --FAST_START_MTTR_TARGET 未設(shè)置

--------------------------------------------------------------------------------------------------

-- 對(duì)scott 用戶(hù)已提交,故恢復(fù)之后為已提交的狀態(tài)

SQL > SELECT * FROM scott . emp WHERE ename = 'SCOTT' ;

EMPNO ENAMEJOBMGR HIREDATESALDEPTNO

---------- ------------------------------ --------- ---------- --------- ---------- ----------

7788 SCOTTANALYST7566 19 - APR - 87355020

-- 新增加的兩條記錄未提交,實(shí)例恢復(fù)之后被回滾

SQL > SELECT * FROM scott . emp WHERE empno IN ( 2001 , 2002 );

no rows selected

八、設(shè)置FAST_START_MTTR_TARGET參數(shù)

/*

FAST_START_MTTR_TARGET 參數(shù)的作用就是減少cache recovery 的恢復(fù)時(shí)間。

當(dāng)設(shè)定了FAST_START_MTTR_TARGET 值后,數(shù)據(jù)庫(kù)管理增量檢查點(diǎn)寫(xiě)入嘗試達(dá)到設(shè)定的目標(biāo)恢復(fù)時(shí)間

如果設(shè)定的值合理,則整個(gè)恢復(fù)過(guò)程將接近所設(shè)定的時(shí)間

注:當(dāng)使用FAST_START_MTTR_TARGET 參數(shù)時(shí),應(yīng)當(dāng)關(guān)閉FAST_START_IO_TARGET, LOG_CHECKPOINT_INTERVAL,

LOG_CHECKPOINT_TIMEOUT 參數(shù)。如果設(shè)定這些參數(shù)將會(huì)妨礙cache recovery 滿(mǎn)足指定的FAST_START_MTTR_TARGET值

應(yīng)當(dāng)為FAST_START_MTTR_TARGET 設(shè)置合理的時(shí)間值

缺省值為0, 表示關(guān)閉檢查點(diǎn)自動(dòng)調(diào)整功能

最大值為3600, 當(dāng)設(shè)定值大于3600,將被自動(dòng)取整為3600

最小值為1, 當(dāng)設(shè)定為時(shí)1,事實(shí)上不切合實(shí)際因此,恢復(fù)時(shí)間也不能達(dá)到設(shè)定的目標(biāo)值*/

更多關(guān)于FAST_START_MTTR_TARGET參數(shù)的優(yōu)化: Instance Recovery Performance Tuning : Fast - Start Fault Recovery

-- 將fast_start_mttr_target 的值置為0

SQL > alter system set fast_start_mttr_target = 0 ;

System altered .

SQL > CREATE TABLE tb_test AS SELECT * FROM all_objects WHERE 1 = 2 ; -- 新建一張表

Table created .

SQL > INSERT INTO tb_test SELECT * FROM all_objects ; -- 插入記錄到新表

49945 rows created .

-- 下面的查詢(xún)中可以看到ESTIMATED_MTTR 為28

SQL > SELECT recovery_estimated_ios , actual_redo_blks , target_mttr , estimated_mttr ,

2optimal_logfile_size FROM v$instance_recovery ;

RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE

---------------------- ---------------- ----------- -------------- --------------------

76211661028

SQL > COMMIT ; -- 提交事務(wù)

Commit complete .

SQL > SELECT recovery_estimated_ios , actual_redo_blks , target_mttr , estimated_mttr ,

2optimal_logfile_size FROM v$instance_recovery ;

RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE

---------------------- ---------------- ----------- -------------- --------------------

76711669028

-- 由上可知,commit 僅僅是將日志緩沖區(qū)的內(nèi)容更新到日志文件

SQL > ALTER SYSTEM CHECKPOINT ; -- 手動(dòng)更新檢查點(diǎn)

System altered .

SQL > SELECT recovery_estimated_ios , actual_redo_blks , target_mttr , estimated_mttr ,

2optimal_logfile_size FROM v$instance_recovery ;

RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE

---------------------- ---------------- ----------- -------------- --------------------

00028

-- 上面的查詢(xún)可以看到字段RECOVERY_ESTIMATED_IOS 和ACTUAL_REDO_BLKS的值已經(jīng)減少到0

-- 檢查點(diǎn)的產(chǎn)生將database buffer 中的臟內(nèi)容寫(xiě)入到了數(shù)據(jù)文件中

--ESTIMATED_MTTR 沒(méi)有發(fā)生變化,因?yàn)樵摿袨榉菍?shí)時(shí)更新列

九、更多

Oracle實(shí)例和Oracle數(shù)據(jù)庫(kù)(Oracle體系結(jié)構(gòu))

Oracle用戶(hù)、對(duì)象權(quán)限、系統(tǒng)權(quán)限

Oracle角色、配置文件

Oracle聯(lián)機(jī)重做日志文件(ONLINE LOG FILE)

Oracle控制文件(CONTROLFILE)

Oracle表空間與數(shù)據(jù)文件

Oracle 實(shí)例恢復(fù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 老司机精品在线播放 | 欧美宗合网 | 中文字幕区 | 亚洲精品国产乱码在线播 | 国产三级日产三级日本三级 | 日韩中文字幕在线 | 久久久久久久久66精品片 | 成人小视频免费 | 日本成人中文字幕 | 一级爱爱片一级毛片-一毛 一级白嫩美女毛片免费 | 成人午夜精品网站在线观看 | 起碰成人免费公开网视频 | 亚洲国产欧美日韩 | 天天爽影院一区二区在线影院 | 99九九热 | 全免费午夜一级毛片一级毛 | 成人综合婷婷国产精品久久免费 | 老师粗又长好猛好爽视频 | 日本中文字幕在线看 | 香蕉视频在线免费 | 毛片爱爱| 一级毛毛片 | 日韩福利影院 | 综合亚洲精品一区二区三区 | 久久99精品久久久久久综合 | 一级一毛片a级毛片 | 九九久久九九 | 国产一区二区在线不卡 | 免费在线中文字幕 | 乱码一区二区三区完整视频 | 欧美激情视频二区三区 | 尤物91| 久草在线在线视频 | 激情久久久久久久久久 | 老年人一级特黄aa大片 | 四虎国产精品免费久久影院 | 久久免费区一区二区三波多野 | 免费一级特黄 欧美大片 | 夜夜女人国产香蕉久久精品 | 极品福利在线 | 福利视频网 |