⊙ 平均故障間隔時間(mtbf)
⊙ 平均恢復時間(mttr)
怎麼樣縮短mttr:
◎ 通過將歸檔日誌設定慢速介質和快速介質的方法進行多重歸檔,以實現「快速介質」上快速介質恢復。
◎ 通過設定備份的頻率及rman的增量和差量備份方式,減少恢復時間。
◎ 通過設定快速檢查點及並行恢復來提高崩潰恢復的平均恢復時間
常見故障的型別
⊙ 語句故障
語句故障的型別包括:
⊙ 應用程式中出現邏輯錯誤。
⊙ 使用者試圖向表中輸入無效資料,可能破壞完整性約束。
⊙ 使用者許可權不足卻試圖執行某個操作,例如只有select 許可權卻在表中執行插入操作。
⊙ 使用者試圖建立表,但超出了分配給該使用者的限額限制。
⊙ 使用者試圖對錶執行insert 或update 操作,導致分配了乙個區,但是表空間中的可用空間不足
注:如果遇到語句故障,oracle 伺服器或作業系統將返回錯誤**和錯誤訊息,可以根據錯誤**來解決問題
出現語句故障後,dba 進行干預的程度各不相同,這取決於故障的型別,可能包括以下內容:
⊙ 修復應用程式以使邏輯流正確無誤。
⊙ 修改並重新發出sql 語句。
⊙ 為使用者提供成功完成該語句所必需的資料庫許可權。
⊙ 發出alter user 命令以更改限額限制。
⊙ 向表空間中新增檔案空間。
怎麼樣來解決使用者程序的故障呢?
⊙ dba 很少需要執行操作來解決使用者程序錯誤。該使用者程序不能繼續工作,儘管oracle 伺服器和其它使用者程序會繼續正常執行。
⊙ pmon 後台程序出現異常終止的使用者程序後,pmon 後台程序通常足以清理該使用者程序。
⊙ pmon 程序檢測到異常終止的伺服器程序時,它將回退該異常終止程序的事務處理,並釋放它所獲得的任何資源和鎖
⊙使用者程序故障
⊙ 使用者錯誤
使用者錯誤的常見型別
⊙ 使用者意外地刪除或truncate表。
⊙ 使用者刪除表中的所有行。
⊙ 使用者提交了資料,但在其中發現乙個錯誤
⊙ 例項故障
崩潰恢復
前滾---open---回滾
那在開啟資料庫時,然後來保證資料庫一致性呢?
在開啟的時候會有2次檢查:◎ 第一次檢查資料檔案頭中的checkpoint cnt是否與對應控制檔案中的checkpoint cnt一致.如果相等,進行第二次檢查.◎ 第二次檢查資料檔案頭的開始scn和對應控制檔案中的結束scn是否一致
例項恢復(rac)來實現
⊙ 介質故障(需要dba進行干預)
與介質有關的問題的常見型別:
⊙ 包含某一資料庫檔案的磁碟驅動器出現磁頭損壞。
⊙ 對實現正常資料庫操作所需的檔案進行讀寫操作時存在物理問題。
⊙ 檔案被意外刪除。
介質故障解決方法:經過測試的恢復策略是解決介質故障問題的關鍵要素
恢復策略取決於以下因素:
⊙ 選擇的備份方法以及受到影響的檔案。
⊙ 資料庫操作的archivelog 模式。
⊙ 根據對系統可用性的期望,管理層是否權衡了所選備份策略的利弊?
⊙ 是否有專門的資源來確保成功實施備份和恢復策略?
⊙ 是否已明確了解進行備份和準備恢復的步驟的重要性?
⊙ 管理層要考慮成本投入和風險比.
⊙ 網路故障
改動向量
改動向量描述對資料庫中任何單個資料塊所做的一次改動,所以改動向量是資料塊變化的線索。改動向量中的資訊包括版本號、事務操作**以及被改動的資料塊的位址。改動向量中的資訊包括版本號、事務操作**以及被改動的資料塊的位址。當改動向量應用到資料塊時,該資料塊版本號(當前資料塊被修改次數的計數器)加1。
重做記錄
重做記錄是一組改動向量,用於描述對資料庫乙個原子改動,也就是這一組改動向量是集體行動的。同一條重做記錄的一組改動向量要麼同時都應用恢復,要麼都不應用。
無論發生何種型別的系統故障,恢復都是按重做記錄為單位來應用的,它保證或者同時運用重做記錄中的全部改動向量,或者不運用其中任何乙個改動向量。
檢查點
兩類:增量檢查點和完全檢查點
⊙ 完全檢查點
當關閉資料庫(異常關閉除外)或通過alter system checkpointa 命令手動啟動檢查點操作時,將執行稱為完全檢查點的過程。在完全檢查點操作中,dbwn 將資料庫緩衝區快取記憶體中的所有髒緩衝區資料寫入資料檔案。所以完全檢查點,寫入的資料最多。
⊙ 增量檢查點
增量檢查點(跟快速啟動檢查點相關)是持續活動的檢查點,是一種心跳機制,每3秒檢查一次,dbwn 定期從檢查點佇列寫出緩衝區資料,從而不斷推進記憶體中的增量檢查點操作。
增量檢查點不更新資料檔案頭,除了日誌切換外
增量檢查點記錄在控制檔案中
⊙ 部分檢查點
alter tablespace begin backup 命令僅對緩衝區快取記憶體中屬於該錶空間的髒緩衝區啟動部分檢查點操作。
◎ 檢查點用來確定應從何處開始恢復。
◎ 檢查點位置
恢復開始的位置
◎ 檢查點佇列
髒資料塊的鏈結列表
各種rba
⊙ rba
rba就是重做日誌記錄在重做日誌檔案中所對應的位置,相當於資料檔案中的rowid,通過這個位址來定位重做日誌條目,相當於重做日誌的位址。
乙個rba唯一標識一條重做記錄
rba由三個部分組成:
◎ 日誌檔案序列號(4位元組)
◎ 日誌檔案塊編號(4位元組)
◎ 重做日誌記錄在日誌塊中的起始偏移位元組數(2位元組)
◎ lrba:資料快取(buffer cache)中乙個髒塊
最早一次被更新的時候產生的重做日誌記錄在重做日誌檔案中所對應的位置就稱為lrba
◎ hrba:資料快取(buffer cache)中乙個髒塊
最近一次被更新的時候產生的重做日誌記錄在重做日誌檔案中所對應的位置就稱為hrba
◎ checkpoint rba:當乙個checkpoint事件發生的時候,checkpoint程序會記錄下當時所寫的重做日誌記錄的位址,即rba,此時記錄的rba被稱為checkpoint rba。從上乙個checkpoint rba和當前的checkpoint rba之間的日誌所保護的buffer cache中的髒塊接下來將會由dbwr寫入到資料檔案當中去。
◎ target rba:與增量檢查點密切相關。比如檢查點rba=100,而計算出來的target rba=105,那我們這次增量檢查點要寫的髒資料是100-105的數 據,然後檢查點rba被更新成105
checkpoint rba target rba
<---------------------------------------->
這一部分是要重新整理到資料檔案的,
等重新整理完後,target rba變成了checkpoint rba,並記錄在控制檔案中,作為崩潰恢復的起點
◎ on-disk rba 是指lgwr 已經寫到log file 中最後乙個rba的位址
檢視scn
資料庫檢查點scn
select checkpoint_change# from v$database;
各個資料檔案檢查點scn
select name,checkpoint_change# from v$datafile;
資料檔案啟動scn
select checkpoint_change# from v$datafile_header;
資料檔案結束scn
select name,last_change# from v$datafile;
系統scn
select current_scn from v$database;
或者用dbms_flashback包
select dbms_flashback.get_system_change_number from dual;
mysql的基本原理 Mysql 基本原理
mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...
8 2 1 基本原理
乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...
Csocket基本原理
我通過幾個採用 csocket 類編寫並基於 client server 客戶端 服務端 的網路聊天和傳輸檔案的程式 在除錯這些程式的過程中,追蹤深入至 csocket 類核心原始碼 sockcore.cpp 對於csocket 類的執行機制可謂是一覽無遺,並且對於阻塞和非阻塞方式下的 socket...