亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        業(yè)務網(wǎng)核心數(shù)據(jù)庫及運行環(huán)境高可用改造實踐

        2021-01-04 12:45:36陳真玄范宇楠
        水利信息化 2020年6期
        關(guān)鍵詞:一致性數(shù)據(jù)庫故障

        陳真玄 ,范宇楠 ,張 怡 ,楊 柳

        (1. 水利部信息中心,北京 100053;2. 北京金水信息技術(shù)發(fā)展有限公司,北京 100053)

        0 引言

        隨著大數(shù)據(jù)時代的到來,水利信息化建設的不斷深化,信息化范圍逐步擴大,目前信息化建設已全面覆蓋了防汛抗旱、水資源管理、水土保持、河長制、農(nóng)村水利和電子政務等水利業(yè)務領(lǐng)域,大大提高了水行政管理和公共服務能力,提升了水利信息化水平。然而由于信息系統(tǒng)規(guī)模越來越大、應用范圍越來越廣,對數(shù)據(jù)可靠性的要求也越來越高,數(shù)據(jù)庫作為管理數(shù)據(jù)的核心系統(tǒng)也變得越來越重要。在此情況下,對數(shù)據(jù)庫系統(tǒng)進行高可用改造迫在眉睫。

        1 數(shù)據(jù)庫現(xiàn)狀及面臨的問題

        水利部信息中心數(shù)據(jù)庫在政務內(nèi)網(wǎng)、業(yè)務網(wǎng)、DMZ 區(qū) 3 個區(qū)域分別采用大集中管理方式,特別是業(yè)務網(wǎng)核心數(shù)據(jù)庫承載了水情、氣象、財務、水資源、河長制等幾十個重要業(yè)務應用,部分業(yè)務為全國大集中部署,一旦數(shù)據(jù)庫癱瘓,將嚴重影響水利業(yè)務系統(tǒng)的正常運轉(zhuǎn)和工作的正常開展。

        業(yè)務網(wǎng)核心數(shù)據(jù)庫目前已配置為 Oracle RAC 集群架構(gòu),運行在 2 臺 IBM P750 小型機上,數(shù)據(jù)存放在 1 臺 EMC VMAX 存儲上,數(shù)據(jù)量約 25 TB。當1 臺服務器硬件故障時,不影響數(shù)據(jù)庫使用。此外,數(shù)據(jù)庫配置了 RMAN 定期備份,可以為數(shù)據(jù)安全提供最后的保障。

        但是目前仍然存在以下幾個問題:

        1)數(shù)據(jù)庫集群只是實現(xiàn)了服務器冗余,數(shù)據(jù)庫系統(tǒng)仍是單點,由于數(shù)據(jù)庫 Bug、資源異常等原因引發(fā)的數(shù)據(jù)庫故障,仍會影響業(yè)務系統(tǒng)運行。

        2)數(shù)據(jù)庫打補丁、升級等變更操作需要停止數(shù)據(jù)庫,中斷應用系統(tǒng)運行,并且由于變更操作時間窗口較長,一旦過程中發(fā)生問題會影響應用的恢復時間。

        3)由于目前數(shù)據(jù)庫數(shù)據(jù)量較大,在數(shù)據(jù)庫損壞的情況下如果使用數(shù)據(jù)庫備份進行恢復的話,恢復時間很長,業(yè)務會長時間中斷,影響較大。

        4)由于數(shù)據(jù)庫是單存儲,數(shù)據(jù)庫的存儲硬件故障會導致數(shù)據(jù)丟失或數(shù)據(jù)庫不可用,嚴重影響業(yè)務系統(tǒng)運行。

        因此迫切需要改造業(yè)務網(wǎng)核心數(shù)據(jù)庫,提升數(shù)據(jù)庫的可用性,避免硬件故障導致數(shù)據(jù)庫不可用,縮短變更操作需要的停機時間,確保關(guān)鍵業(yè)務的連續(xù)性。

        2 數(shù)據(jù)庫高可用改造方案設計

        2.1 數(shù)據(jù)庫高可用概述

        高可用性,指系統(tǒng)無中斷地執(zhí)行其功能的能力,代表系統(tǒng)的可用性程度。實現(xiàn)高可用有以下 3 個原則:

        1)消除單點故障。通過增加系統(tǒng)冗余的方式,當系統(tǒng)部件故障時由其冗余部件接替,避免整個系統(tǒng)失效。

        2)可靠的交匯點。交匯點通常指不容易冗余的節(jié)點,比如負載均衡器、Master 節(jié)點等,一般來說主從結(jié)構(gòu)的系統(tǒng)中,交匯點本身往往會變成故障單點,可靠的系統(tǒng)中必須有可靠的交匯點。

        3)故障監(jiān)測。在遵循以上 2 個原則的基礎上,監(jiān)測故障,當發(fā)生故障時用冗余部件接替故障部件(Failover)實現(xiàn)高可用。

        2.1.1 數(shù)據(jù)庫可用性與一致性

        相對于 Web 服務器等無狀態(tài)系統(tǒng),數(shù)據(jù)庫作為有狀態(tài)系統(tǒng)其高可用存在更多挑戰(zhàn),難點之一就是冗余部件的數(shù)據(jù)一致性問題。

        數(shù)據(jù)一致性是指分布式系統(tǒng)中不同部件/節(jié)點/副本之間在相同時間點的數(shù)據(jù)相同,通常分為強、最終和弱一致性。

        強一致性是指同一時間點不同副本的數(shù)據(jù)是一致的,最終一致性是指經(jīng)過一定時間延遲后可以確保不同副本之間數(shù)據(jù)是相同的。如果數(shù)據(jù)庫采用異步復制方式,在 Failover 時數(shù)據(jù)沒有完全同步完、但能在 Failover 后將未同步完的數(shù)據(jù)復制過去則可以實現(xiàn)最終一致性;如果數(shù)據(jù)庫采用同步復制方式,可以保證數(shù)據(jù)的強一致性,但可能會導致系統(tǒng)性能問題,因此數(shù)據(jù)庫高可用的設計要根據(jù)業(yè)務需求在高可用和數(shù)據(jù)一致性進行權(quán)衡[1]。

        2.1.2 數(shù)據(jù)庫 RTO 與 RPO

        恢復時間目標(RTO)和恢復點目標(RPO)用來衡量故障發(fā)生后數(shù)據(jù)庫系統(tǒng)的恢復時間。RTO表示系統(tǒng)從故障發(fā)生到必須恢復的時間;RPO 是數(shù)據(jù)可用性指標,是指故障發(fā)生后系統(tǒng)和數(shù)據(jù)必須恢復到的時間點,與數(shù)據(jù)庫一致性相關(guān),數(shù)據(jù)強一致的冗余部件其 RPO 為 0,非強一致的冗余部件取決于其丟失的數(shù)據(jù)量[2]。

        2.1.3 數(shù)據(jù)庫可用性評價指標

        數(shù)據(jù)庫系統(tǒng)不可用通常分為 2 類場景:1)計劃停機。指無法通過系統(tǒng)設計避免而必須進行的有計劃停機,通常包括例行操作、周期維護、升級等操作,計劃停機通常對業(yè)務有影響但不會丟失數(shù)據(jù)。2)意外停機。指由于系統(tǒng)故障、數(shù)據(jù)或介質(zhì)錯誤、機房設施中斷等導致系統(tǒng)非正常中斷,通常會對業(yè)務和數(shù)據(jù)造成影響[3]。

        系統(tǒng)可用性表示為正常運行時間與期望時間的百分比,通常作為服務水平協(xié)議(SLA)的 1 個指標,不同量級的可用性用數(shù)字 9 的個數(shù)表示,從1 個 9(90)到 5 個 9(99.999)。傳統(tǒng)數(shù)據(jù)庫的可用性一般是 95%~98% 之間,通過高可用技術(shù)和管理手段可以提高至 99.999%。數(shù)據(jù)庫可用性及對應的停機時間如表 1 所示。

        表 1 數(shù)據(jù)庫可用性度量表 [3]

        從數(shù)據(jù)庫系統(tǒng)的組成來看,有以下幾種冗余方式可以提高其可用性:

        1)服務器冗余。通常采用雙機集群、集群等方式在服務器層進行冗余,集群相比雙機集群在切換時間及資源利用率方面更快更有效。

        2)存儲冗余。同一存儲中采用 RAID 進行磁盤間冗余,存儲之間采用存儲級鏡像、PV 復制、塊復制等技術(shù)實現(xiàn)冗余。

        3)網(wǎng)絡冗余。采用交換機雙活等網(wǎng)絡設備冗余技術(shù)。

        4)數(shù)據(jù)庫或站點冗余。通過存儲級和數(shù)據(jù)復制等進行站點間冗余,避免單個數(shù)據(jù)庫或站點因為電力等設施發(fā)生故障導致的數(shù)據(jù)庫不可用,新型的分布式數(shù)據(jù)庫可以通過數(shù)據(jù)分片、一致性數(shù)據(jù)復制等技術(shù)實現(xiàn)跨地域多活的站點冗余。

        2.2 數(shù)據(jù)庫高可用改造目標

        改造后的數(shù)據(jù)庫不同場景的 RTO 和 RPO 如表2 所示。

        數(shù)據(jù)庫每月期望的服務時間為 60×24×30 =43 200 min,如果假設數(shù)據(jù)庫每月各種事件都發(fā)生1 次,改造后意外和計劃停機時間約為 20 min,數(shù)據(jù)庫可用性可達到(43 200 - 20)/43 200 = 99.950%。

        2.3 數(shù)據(jù)庫高可用改造技術(shù)方案

        Oracle 數(shù)據(jù)庫主要的高可用技術(shù)如下[4]:

        1)Oracle Real Application Clusters(Oracle RAC)。Oracle RAC 對服務器進行冗余,提高了數(shù)據(jù)庫實例或服務器出現(xiàn)中斷時應用程序可用性。OracleRAC 的服務器故障切換瞬間完成,另外還消除了計劃維護任務造成的停機。

        表 2 數(shù)據(jù)庫 RTO 與 RPO 指標 [4]

        2)Oracle Data Guard。Oracle Data Guard 對站點進行冗余,在遠程位置維護一個同步物理副本(備用數(shù)據(jù)庫),用于消除生產(chǎn)數(shù)據(jù)庫(主數(shù)據(jù)庫)或站點的故障,在數(shù)據(jù)庫升級時可以轉(zhuǎn)換為邏輯備庫減少停機時間。

        3)Oracle ASM。Oracle ASM 通過雙存儲對數(shù)據(jù)庫存儲進行冗余,ASM 將數(shù)據(jù)組織成 Extent 連續(xù)數(shù)據(jù)塊,在每個存儲上各保留 1 份,替代傳統(tǒng)的存儲鏡像技術(shù),消除單臺存儲故障或數(shù)據(jù)損壞對數(shù)據(jù)庫的影響,簡化了數(shù)據(jù)庫存儲管理,并且能夠自動進行 I/O 平衡。各種數(shù)據(jù)庫高可用技術(shù)特點對比如表 3 所示。

        表 3 數(shù)據(jù)庫高可用技術(shù)特點對照表

        高可用設計考慮:

        1)Oracle RAC 數(shù)據(jù)庫作為對等架構(gòu)的集群式數(shù)據(jù)庫,沒有物理上的 master 節(jié)點,可以理解為master 節(jié)點能運行在任意節(jié)點,所以其交匯點是可靠的,負責集群管理的 CRS 組件會監(jiān)控包括數(shù)據(jù)庫實例在內(nèi)集群資源狀態(tài),發(fā)生故障時自動進行切換,可以實現(xiàn)高可用。

        2)Oracle ASM 也是 CRS 組件的集群資源,其高可用機制類似 RAC,能夠?qū)崿F(xiàn)高可用。

        3)考慮到現(xiàn)有的備用數(shù)據(jù)庫計算能力較弱,切換時需要停止部分業(yè)務,避免備庫過載,Oracle Data Guard 采用手工切換的方式,主庫發(fā)生故障時監(jiān)控系統(tǒng)報警,需要人工執(zhí)行腳本進行切換。

        數(shù)據(jù)一致性考慮:

        1)Oracle RAC 的服務器雖然有數(shù)據(jù),但其數(shù)據(jù)要寫入存儲持久化,所以可以理解為無狀態(tài)系統(tǒng),其通過私有網(wǎng)絡進行的數(shù)據(jù)同步可以提高速度,沒有一致性問題。

        2)Oracle ASM 在 2 個存儲間采用同步寫入,正常情況下,1 個數(shù)據(jù)塊寫到 2 個存儲才算成功,因此數(shù)據(jù)是強一致的。

        3)Oracle Data Guard 采用異步復制,主備庫是弱一致,主節(jié)點故障時如果日志沒有完全傳過去會丟失部分數(shù)據(jù),后期會探討在主庫宕機時將未傳過去日志通過其他手段發(fā)送到備庫,實現(xiàn)最終一致性。

        本次實踐在水利部現(xiàn)有 Oracle RAC 核心數(shù)據(jù)庫基礎上,利用 Oracle Data Guard 數(shù)據(jù)庫建立備份節(jié)點,利用 Oracle ASM 實現(xiàn)雙存儲冗余構(gòu)造高可用架構(gòu)。

        2.3.1 Oracle Data Guard 高可用改造

        利用 2 臺水利部信息中心現(xiàn)有的 IBM P570 小型機搭建 Data Gurad 備用數(shù)據(jù)庫,采用 IBM DS4800作為后端存儲。Data Guard 使用數(shù)據(jù)庫復制技術(shù)消除單點故障,并且為所有類型的意外中斷提供可靠的數(shù)據(jù)保護和高可用性級別,包括數(shù)據(jù)損壞、數(shù)據(jù)庫和站點故障。備用數(shù)據(jù)庫還為在計劃維護期間減少停機提供了實質(zhì)性優(yōu)勢,將 RTO 降低到了數(shù)秒或數(shù)分鐘,伴隨的 RPO 為 0 或近乎為 0。

        Oracle Data Guard 提供 3 種數(shù)據(jù)保護模式[5]平衡成本、可用性、性能和事務保護,Oracle Data Guard數(shù)據(jù)保護模式如表 4 所示。

        本次改造由于現(xiàn)有環(huán)境的備用數(shù)據(jù)庫性能較低,主備庫配置差距較大,且需優(yōu)先保證主數(shù)據(jù)庫的性能,因此選擇最大性能模式。

        通過 Data Guard 改造實施,當主數(shù)據(jù)庫由于存儲、服務器等發(fā)生故障不可用時,可以切換到備用數(shù)據(jù)庫,此時應用可以訪問備用數(shù)據(jù)庫繼續(xù)執(zhí)行業(yè)務,異步模式下備用數(shù)據(jù)庫通常最多只會丟失數(shù)秒或分鐘的數(shù)據(jù)。此外,通過 Data Guard 可以將打補丁、升級、遷移等變更操作的計劃停機時間減少到分鐘甚至秒級。

        表 4 Oracle Data Guard 數(shù)據(jù)保護模式

        2.3.2 Oracle ASM 高可用改造

        在此階段新增華為 6800 存儲,通過 Oracle ASM創(chuàng)建 Normal 冗余的雙存儲磁盤組,當一套存儲故障或數(shù)據(jù)丟失時,另一套存儲可以繼續(xù)提供服務不影響數(shù)據(jù)庫運行。

        Normal 冗余磁盤組在每套存儲上創(chuàng)建 1 個Failgroup,數(shù)據(jù)組織成 Extent 連續(xù)數(shù)據(jù)塊,在 2 個Failgroup 各保存 1 份,其中一個為 Primary Extent,另一個為 Second Extent,每個 Extent 在各自 Failgroup的位置并不相同。

        數(shù)據(jù)庫在將數(shù)據(jù)寫入磁盤時會以并行異步的方式同時寫入 2 個存儲,異步寫入請求發(fā)起后,數(shù)據(jù)庫可以繼續(xù)執(zhí)行其他 I/O 或操作,當 2 個存儲的異步 I/O 都返回后寫入操作才算完成。

        數(shù)據(jù)庫需要讀數(shù)據(jù)時,會先讀取 Primary Extent,如果 Primary Extent 不可用,則從另一個存儲中的Second Exten 中讀取[6]。

        當一套存儲的某塊磁盤連續(xù)幾次不可讀寫時,數(shù)據(jù)庫會 Offline 這塊盤,此時數(shù)據(jù)庫會將數(shù)據(jù)寫入同存儲其他可用磁盤,數(shù)據(jù)依然是雙份冗余。如果整個存儲不可用,數(shù)據(jù)庫會訪問另一個存儲的數(shù)據(jù),此時數(shù)據(jù)庫仍然可以正常運行。

        ASM 改造后整體架構(gòu)如圖 1 所示(紅色為新增部分)。

        3 水利部數(shù)據(jù)庫高可用改造實施過程

        3.1 Data Guard 改造實施

        Data Guard 改造主要實施步驟如下:

        1)主庫激活 Foreced Logging。

        圖 1 數(shù)據(jù)庫雙存儲系統(tǒng)改造實施后架構(gòu)圖

        2)設置主庫 LOG_ARCHIVE_DEST_2 參數(shù),控制數(shù)據(jù)同步方式:

        LOG_ARCHIVE_DEST_2 ='SERVICE = stdby LGWR ASYNC VALID_FOR = (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME = fxdbstb'。

        3)主庫創(chuàng)建 Standby Redo Log 日志,用于主庫切換為備庫后使用,其大小與主庫日志相同。

        4)拷貝主庫密碼文件到備庫,確保主備庫密碼一致。

        5)復制主庫參數(shù)到備庫并修改作為 standby 參數(shù)文件,主要參數(shù)設置如下:

        *.LOG_ARCHIVE_DEST_2 = 'SERVICE = fxdb LGWR ASYNC VALID_FOR = (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME = fxdb'。

        6)主備庫 4 個節(jié)點增加靜態(tài)監(jiān)聽,設置 fxdb,fxdbstb 等 tnsname,用于傳送歸檔時的 tnsname解析。

        7)備份主庫用以創(chuàng)建備庫,在主庫上創(chuàng)建備庫控制文件,并傳送到備庫服務器,命令如下:

        backup current controlfile for standby format '/backup/dg/ctlbak_%U'。

        8)采用 duplicate 方式通過主庫備份創(chuàng)建備庫:rman target sys/ @fxdb1 auxiliary/

        duplicate target database for standby nofilenamecheck dorecover。

        9)創(chuàng)建備庫后,通過同步日志方式追平備份主庫后產(chǎn)生的歸檔。主庫啟動日志同步:

        ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE SID = '*';

        備庫啟動 MRP 進程:

        ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION PARALLEL 8。

        10)檢查確認備庫同步完成。

        11)注冊備庫到 Oracle Clusterware,由 Oracle Clusterware 管理備庫。

        3.2 ASM 雙存儲系統(tǒng)改造實施

        ASM 雙存儲系統(tǒng)改造主要為創(chuàng)建新的磁盤組(CRS,DATA,RECO)并將原磁盤組的配置信息和數(shù)據(jù)復制到新磁盤組,實施步驟如下:

        1) 在 EMC VMX 和華為 6800 上各劃分相同數(shù)量及大小的新磁盤,用于創(chuàng)建各新磁盤組。

        2)在第三方 NAS 存儲上為 CRS 磁盤組創(chuàng)建用于仲裁的 NAS 盤,并 mount 到/fxdb_voting 目錄:

        dd if = /dev/zero of = /fxdbvote/quorum_vote bs =1024k count = 2048。

        3)在 2 臺存儲新劃磁盤及 NAS 盤上創(chuàng)建新的normal 冗余 CRS 磁盤組:

        create diskgroup CRS normal redundancy;

        failgroup fgemc disk'/dev/rhdiskpower180' size 20g;

        failgroup fghw disk'/dev/rhdiskpower290' size 20g;

        quorum failgroup fgnas disk'/fxdb_voting/quorum_vote' size 20g。

        4)遷移 ocr 和 vote 盤到新建 CRS 磁盤組:$ORACLE_HOME/bin/ocrconfig - add + CRS;$ORACLE_HOME/bin/crsctl replace votedisk +CRS。

        5)遷移 spfile 到 CRS 磁盤組,使用新的 spfile重啟 CRS 集群,確認 CRS 集群運行正常。

        6)在 2 臺存儲新劃磁盤上創(chuàng)建新的 DATA 磁盤組:

        create diskgroup DATA normal redundancy

        failgroup fgemc disk … failgroup fghw disk …

        7)拷貝參數(shù)及控制文件到新建 DATA 磁盤組,使用新的參數(shù)和控制文件啟動數(shù)據(jù)庫到 mount狀態(tài)。

        8)使用 rman 拷貝數(shù)據(jù)文件到 DATA,重建并打開數(shù)據(jù)庫:

        backup as copy database format '+ DATA';switch database to copy;

        recover database;

        alter database open resetlogs。9)修改 temp 和 redo log 文件到 DATA 磁盤組。10)在 2 臺存儲新劃磁盤上創(chuàng)建新的 RECO 磁盤組,設置 recovery 區(qū)到新的 RECO 磁盤組。

        4 結(jié)語

        通過本次數(shù)據(jù)庫高可用改造實施,消除了數(shù)據(jù)庫、存儲單點故障,可實現(xiàn)主備數(shù)據(jù)庫、雙存儲靈活切換,減少了數(shù)據(jù)庫恢復、打補丁、升級等操作對業(yè)務系統(tǒng)的影響,大大降低了業(yè)務中斷時間,數(shù)據(jù)庫從安全性、可用性方面都得到了大幅提升,能夠更好地為水利信息系統(tǒng)的穩(wěn)定運行做好支撐。

        猜你喜歡
        一致性數(shù)據(jù)庫故障
        關(guān)注減污降碳協(xié)同的一致性和整體性
        公民與法治(2022年5期)2022-07-29 00:47:28
        注重教、學、評一致性 提高一輪復習效率
        IOl-master 700和Pentacam測量Kappa角一致性分析
        故障一點通
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        奔馳R320車ABS、ESP故障燈異常點亮
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        基于事件觸發(fā)的多智能體輸入飽和一致性控制
        日韩女优精品一区二区三区| 色婷婷一区二区三区四区| 丰满人妻一区二区三区免费| 亚洲中文字幕久久精品色老板 | 日韩女优中文字幕在线| av中文字幕一区人妻| 又黄又爽又无遮挡免费的网站| 中国丰满熟妇av| 在线观看一区二区女同| 女同欲望一区二区三区| 日本精品一区二区高清| 色一情一乱一乱一区99av| 国产精品日韩欧美一区二区区| 国产一区二区三区四区色| 成人一区二区人妻少妇| 日本中文字幕一区二区高清在线 | 亚洲精品宾馆在线精品酒店| 中文字幕精品久久久久人妻红杏ⅰ | 综合五月激情二区视频| 国产成人av 综合 亚洲| 人妻少妇看A偷人无码电影| 国产女主播一区二区三区在线观看| 色偷偷久久久精品亚洲| 人禽伦免费交视频播放| 亚洲欧洲日韩另类自拍| av黄色大片久久免费| 24小时日本在线视频资源| 久久精品国产一区二区电影| 淫欲一区二区中文字幕| 干日本少妇一区二区三区| 欧洲女人性开放免费网站| 中文字幕无码日韩欧毛| 日本国产一区二区在线观看| 国自产拍偷拍精品啪啪一区二区 | 97福利视频| 三级网站亚洲三级一区| 亚洲精品国产精品国自产| 日本高清www午色夜高清视频| 亚洲成a v人片在线观看| 无遮挡十八禁在线视频国产制服网站| 亚洲另类国产精品中文字幕|