国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Oracle ASM鏡像冗余

IT那活兒 / 2607人閱讀
Oracle ASM鏡像冗余

點擊上方“IT那活兒”,關注后了解更多精彩內容??!


前  言

最近碰到個案例,某ASM環境同時損壞了多塊asmdisk,用戶非常擔心丟數據,經過核查發現該環境采用High模式冗余3份鏡像數據,一般來說是不會丟數據的,倘若不巧3份鏡像都在這幾個損壞的asmdisk中那就完蛋了。

今天我們就來研究一下ASM的鏡像冗余以及核驗數據的鏡像位置從而判斷某些asmdisk的損壞是否會引發數據丟失。


首先ASM使用failure group(FG)來實現數據的冗余,FG由一個或多個asmdisk構成它是ASM Diskgroup的一部分.ASM確保數據和它對應的鏡像冗余保存在不同的FG中,當FG中的一個或多個磁盤故障時,或整個FG故障時也不會有數據丟失保證數據的可用性。

F G


FG有2種模式
1. 在創建ASM diskgroup時,沒有指定FG,ASM默認每個asmdisk就是獨立的FG,比如有100個asmdisk那就是100個FG,數據以AU為單位在FG之間實現鏡像冗余。
2. 在創建ASM diskgroup時,指定了FG,還是100個asmdisk為例,可以指定4個FG,每個FG對應25個asmdisk,數據以AU為單位在FG之間實現鏡像冗余。
ASM有3種冗余級別,分別是External/ Normal/ High具體如下:
冗余級別(Redundancy)
描述
External
類似于傳統裸設備、文件系統模式,冗余由底層設備提供,ASM層不處理冗余。
Normal
ASM層為每一份數據(primary data)提供一份(mirror data),相當于存2份數據。
必須存在2個及以上的FG才可以創建Normal模式的diskgroup。
High
ASM層為每一份數據(primary data)提供二份(mirror data),相當于存3份數據。
必須存在3個及以上的FG才可以創建High模式的diskgroup。


注意這里External模式ASM層不做鏡像,數據的可用性依賴于底層設備的raid冗余,本文僅探討Normal與High模式。

FG模式1
創建diskgroup時沒有指定FG的冗余描述圖:
Normal:
圖中可以看到,每個asmdisk都是一個FG,Normal模式的2份數據存在不同的FG上,當某個asmdisk故障(FG故障)時,數據任然可以在鏡像FG中訪問。當某個asmdisk(FG)與對應的鏡像數據asmdisk(FG)同時故障時會丟失數據。
High:
圖中可以看到,每個asmdisk都是一個FG,High模式的3份數據存在不同的FG上,當某個asmdisk故障(FG故障)時,數據任然可以在其它2份鏡像FG中訪問。當某個asmdisk(FG)與對應的2份鏡像數據asmdisk(FG)同時故障時會丟失數據。
在normal或high模式下diskgroup里的asmdisk未指定FG時,默認每個asmdisk都是一個獨立的FG,AU在各個FG之間鏡像冗余,也就是我們平常說的創建Normal冗余需要至少2塊asmdisk(FG),High模式至少需要3塊asmdisk(FG)。
FG模式2
創建diskgroup時指定了FG的冗余描述圖:
Normal:
圖中可以看到一共有8塊asmdisk,每2塊指定為1個 FG,Normal模式的2份數據存在不同的FG上,當某個FG故障時,數據任然可以在鏡像FG中訪問。當某個FG與對應的鏡像數據FG同時故障時會丟失數據。
High:
圖中可以看到一共有8塊asmdisk,每2塊指定為1個 FG,High模式的3份數據存在不同的FG上,當某個FG故障時,數據任然可以在其他2份鏡像FG中訪問。當某個FG與對應的2份鏡像數據FG同時故障時會丟失數據。
圖中可以看到Normal冗余將2塊asmdisk都指向了FG1時,創建diskgroup報錯,提示只發現了1個FG,最少需要2個FG。High冗余同理。
這里指定2個及以上FG時就可以正常創建Normal冗余,High同理。注意當人工干預指定了FG時,注意各個FG的容量需要一致,以保證數據的冗余性。舉例Normal模式下,指定了FG1為100G,FG2為50G 相當于FG1里還有50G數據在FG2中沒有空間可以鏡像,這就失去了冗余安全性,部分環境里看到的lsdg顯示Usable_File_MB為負數就是失去了冗余的完整性,這種環境往往需要注意一旦出現asmdisk故障可能丟失數據。

分 隔


上文中我們搞清了diskgroup通過FG來實現鏡像冗余,接下來我們新建一個High模式的磁盤組并創建數據文件,來觀察數據以及鏡像數據的具體存放FG。如下:
通過dbca在我們的diskgroup中創建一個新實例,可以看到已經產生了數據文件。我們以asm file_number 260 users表空間文件為例來檢查該文件所在的FG地址。
在High模式下,每份數據會分為Primary copy/Mirror copy/2nd Mirrory 3份數據,且3份數據分布在不同的FG中。
這里我們先關閉diskgroup的重平衡,在模擬故障offline Primary Copy 與 Mirror copy 的FG,如下:
此時asm users260文件的extent#0只剩下2nd Mirror的FG可以訪問.DB層Useres表空間下的表訪問正常,asmdisk  offline無影響.
以上我們是使用asm文件號來進行查詢鏡像數據的存儲位置, 當我們出現asmdisk故障時也可以根據disk_number來進行核驗mirror數據所在的FG,如下:
通過帶入故障的group number和disk_number 查出該asmdisk內的文件涉及的鏡像FG,當故障的asmdisk涉及的鏡像FG狀態都正常時,我們就可以確保數據仍然是安全的,diskgroup 重平衡后就會自動恢復對應的鏡像冗余級別。
本文就到此為止。

END


本 文 原 創 來 源:IT那活兒微信公眾號(上海新炬王翦團隊)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129682.html

相關文章

  • #yyds干貨盤點#Java ASM系列:(091)冗余變量分析

    摘要:程序中定義的變量是存儲在當中。判斷和是否相同,如果相同,那么表示是冗余的變量。示例冗余變量分析預期目標在下面的代碼中,會提示和局部變量是多余的我們的預期目標識別出和是冗余變量。 本文屬于Java ASM系列三:Tree API當中的一篇。 1. 如何判斷變量是否冗余 如果在IntelliJ IDEA當中編寫如下的代碼,它會提示str2和str3局部變量是多余的: ...

    mengbo 評論0 收藏0
  • DBASK問答集萃第四期

    摘要:問題九庫控制文件擴展報錯庫的擴展報錯,用的是裸設備,和還是原來大小,主庫的沒有報錯,并且大小沒有變,求解釋。專家解答從報錯可以看出,控制文件從個塊擴展到個塊時報錯,而裸設備最大只支持個塊,無法擴展,可以嘗試將參數改小,避免控制文件報錯。 鏈接描述引言 近期我們在DBASK小程序新關聯了運維之美、高端存儲知識、一森咖記、運維咖啡吧等數據領域的公眾號,歡迎大家閱讀分享。 問答集萃 接下來,...

    SKYZACK 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<