操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    目錄

    本文主要介紹的備份恢復(fù)原理和技術(shù)。備份恢復(fù)是數(shù)據(jù)庫日常維護的一個例行活動,通過把數(shù)據(jù)庫數(shù)據(jù)備份到另外一個地方,可以抵御介質(zhì)類的損壞,增加數(shù)據(jù)庫數(shù)據(jù)的可靠性。數(shù)據(jù)庫的備份恢復(fù)主要分為邏輯備份恢復(fù)和物理備份恢復(fù)。

    邏輯備份是把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為文本文件,這些文本文件內(nèi)容一般來說是SQL語句。恢復(fù)數(shù)據(jù)時再把文本文件中的SQL語句導(dǎo)入數(shù)據(jù)庫中恢復(fù)。邏輯備份比較靈活,可以支持庫級、模式級和表級備份,但邏輯備份只讀取了某個時間點的數(shù)據(jù)庫快照對應(yīng)的數(shù)據(jù),很難實現(xiàn)增量備份,恢復(fù)時也無法恢復(fù)到指定的時間點。在中實現(xiàn)邏輯備份恢復(fù)的工具為/,具體使用方法參考官網(wǎng)《管理員指南》手冊。

    物理備份是直接復(fù)制數(shù)據(jù)庫的物理文件,性能比較高,對應(yīng)用的約束比較少,但只能對整個庫進行備份。物理備份又分為全量備份和增量備份。增量備份又有兩種方式,一種是結(jié)合數(shù)據(jù)庫的臟頁跟蹤實現(xiàn)的增量備份,另外一種是根據(jù)redo日志的增量實現(xiàn)的增量備份。根據(jù)臟頁進行的增量備份可以和歷史上的備份進行合并,減少存儲空間的占用,恢復(fù)時可以恢復(fù)到增量備份的時間點,無法恢復(fù)到任意時間點。根據(jù)redo日志進行的增量備份在恢復(fù)時可以恢復(fù)到指定時間點,但所有的redo日志都需要進行備份,占用的存儲空間較大。

    邏輯備份主要用于異構(gòu)數(shù)據(jù)庫的遷移,物理備份主要用于保障數(shù)據(jù)庫數(shù)據(jù)的可靠性。本章主要介紹的物理備份機制,包括全量備份技術(shù)和增量備份技術(shù)。

    10.1 全量備份技術(shù)

    有兩個備份工具和。只能進行全量備份,既可進行全量備份,也可進行增量備份。全量備份的原理和是類似的,本節(jié)以工具為例介紹全量備份的原理。

    10.1.1 備份工具

    是一個獨立的二進制程序,有自己的主函數(shù),代碼在src/bin/目錄下。在備份時,通過指定的IP地址連接數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器把需要備份的數(shù)據(jù)文件和redo日志文件發(fā)送給備份工具,收到后把文件存放到本地指定的目錄,從而完成數(shù)據(jù)庫的備份。

    主要有兩種備份格式:plain普通格式和tar壓縮包格式。普通格式就是以通常的數(shù)據(jù)文件進行備份,tar壓縮包格式就是把備份文件打包進行備份。的tar包頭是2048字節(jié),文件名最長支持1024個字節(jié)長度,不是標準的tar,所以需要自己解包,實現(xiàn)解包的命令為GsTar。

    的主干處理流程比較簡單,首先對支持的命令行參數(shù)進行解析,主要的命令行參數(shù)請參照表1。參數(shù)解析后進入備份主函數(shù),參照后面詳細介紹。在主函數(shù)之后是,釋放前面分配的內(nèi)存資源,整個備份流程就結(jié)束了。

    表1 命令參數(shù)

    參數(shù)

    描述

    -D

    備份的目的路徑

    -F

    備份的文件格式,plain普通格式和tar壓縮包格式

    -X

    是否進行流復(fù)制模式,當(dāng)前要求必須采用流復(fù)制模式,保證備份數(shù)據(jù)的正確性

    -Z

    壓縮級別

    -c

    備份時是否做快速檢查點

    -h

    進行備份的數(shù)據(jù)庫服務(wù)器監(jiān)聽IP地址

    -p

    進行備份的數(shù)據(jù)庫服務(wù)器監(jiān)聽端口號

    -U

    進行備份時連接數(shù)據(jù)庫服務(wù)器的用戶名

    -W

    進行備份時連接數(shù)據(jù)庫服務(wù)器的密碼

    -s

    備份時狀態(tài)更新時間間隔

    -v

    是否顯示備份詳細信息

    -P

    是否顯示備份進度信息

    10.1.2 備份交互流程

    1.plain普通格式備份

    普通格式備份的主函數(shù)為,具體交互流程如圖1所示。

    圖1備份交互流程

    從圖1可以看出,數(shù)據(jù)庫物理全量備份主要包括兩個流程,一個是數(shù)據(jù)文件的備份,一個是XLOG文件的備份。詳細過程如下。

    (1) 在函數(shù)中創(chuàng)建數(shù)據(jù)傳輸?shù)倪B接。

    (2) 執(zhí)行命令,獲取時間線和系統(tǒng)標識符。

    (3) 執(zhí)行 LABEL備份命令,獲取XLOG的存放路徑和備份開始時日志的位置。然后從數(shù)據(jù)庫服務(wù)器獲取表空間的路徑,創(chuàng)建對應(yīng)的路徑。

    (4) 在拷貝數(shù)據(jù)文件之前,創(chuàng)建一個單獨的子進程用于日志傳輸。日志傳輸處理的主函數(shù)為,在函數(shù)中,先調(diào)用函數(shù)創(chuàng)建一個日志傳輸?shù)倪B接,然后調(diào)用fork函數(shù)創(chuàng)建子進程,在子進程內(nèi)部通過函數(shù)調(diào)用執(zhí)行實際的日志傳輸。在中,也是先調(diào)用獲取系統(tǒng)標識并且進行校驗和前面獲取的系統(tǒng)標識是否一致。接著執(zhí)行,通知數(shù)據(jù)庫服務(wù)器日志傳輸?shù)钠鹗嘉恢谩U{(diào)用啟動心跳線程,保證能夠?qū)崟r監(jiān)控傳輸過程中的連接狀態(tài)。接下來進行日志接收循環(huán),接收數(shù)據(jù)庫服務(wù)器傳輸?shù)娜罩荆瑢懭氡镜厝罩韭窂剑钡浇邮盏酵ㄖ娜罩就V刮恢谩?/p>

    (5) 在主進程創(chuàng)建日志接收子進程之后,調(diào)用ile進行數(shù)據(jù)文件的拷貝,在這個函數(shù)中,有一個while (1)循環(huán),循環(huán)接收數(shù)據(jù)庫服務(wù)器傳輸?shù)臄?shù)據(jù)文件,直到接收完數(shù)據(jù)庫服務(wù)傳輸?shù)娜繑?shù)據(jù)文件。數(shù)據(jù)庫文件傳輸完畢后,數(shù)據(jù)庫服務(wù)器會返回一個備份結(jié)束時的日志位置。

    (6) 主進程接收這個位置,把這個位置通過管道發(fā)送給日志接收子進程,日志接收子進程把這個位置與當(dāng)前日志傳輸位置相比較,如果達到了這個位置,則日志接收結(jié)束,日志子進程退出。主進程等到日志傳輸子進程退出后,數(shù)據(jù)庫備份的主流程就基本結(jié)束了。這個過程保證了redo日志覆蓋到整個數(shù)據(jù)庫文件的復(fù)制過程,即使在復(fù)制數(shù)據(jù)文件時可能由于數(shù)據(jù)庫的并發(fā)刷盤導(dǎo)致數(shù)據(jù)頁可能不一致,但這些不一致可以通過redo日志進行恢復(fù),從而保證整個數(shù)據(jù)庫備份數(shù)據(jù)的一致性。

    (7) 后面兩個函數(shù),一個是函數(shù),這個函數(shù)備份MOT內(nèi)存表的數(shù)據(jù)文件,流程和前面基本相似;還有一個是函數(shù),在文件中,刪除存在的雙寫文件,然后寫入一個空的數(shù)據(jù)頁,這個只是一個空文件,避免啟動時的文件檢查異常。最后釋放前面獲得的系統(tǒng)標識符,至此,客戶端工具完成整個備份流程。

    在數(shù)據(jù)庫服務(wù)器端,備份主要在函數(shù)中進行,該函數(shù)主要接收客戶端命令,并根據(jù)命令標識符進行處理。

    (1) 命令對應(yīng)的標識符為,處理函數(shù)為,在中,構(gòu)造和的數(shù)據(jù)元組,返回給客戶端備份工具。

    (2) LABEL命令對應(yīng)的標識符為,對應(yīng)的主要處理函數(shù)為,在函數(shù)中,首先調(diào)用ions解析備份的命令參數(shù),包括備份標簽(label)、備份進度()、快速檢查點(fast)、是否等待()、是否包括redo日志(wal)等選項參數(shù),最后調(diào)用函數(shù)發(fā)送日志文件的路徑,接著調(diào)用函數(shù)執(zhí)行數(shù)據(jù)文件的備份。在函數(shù)中,首先調(diào)用執(zhí)行備份權(quán)限檢查,根據(jù)備份命令行參數(shù)決定是否請求檢查點(函數(shù)),然后生成備份標簽文件,是備份的重要文件master數(shù)據(jù)庫是,這個文件包括的內(nèi)容如下。

    ① START WAL :備份開始時日志的位置。

    ② :檢查點的位置。

    ③ :備份方法,方式還是方式。沒有指定備份標簽文件master數(shù)據(jù)庫是,整個數(shù)據(jù)庫只能同時運行一個備份。方式有備份標簽文件,可以同時運行多個備份。

    ④ FROM:備份源還是。

    ⑤ START TIME:備份開始的物理時間。

    ⑥ LABEL:備份標簽。

    文件最重要的作用是記錄數(shù)據(jù)庫恢復(fù)的起始位置,在數(shù)據(jù)庫恢復(fù)時使用,其次是對本次備份的一個標識及記錄一些備份的參考信息。

    最后調(diào)用函數(shù)把備份開始時的日志位置發(fā)送給客戶端。

    函數(shù)在/* about all */while ((de = (, "")) != NULL) 循環(huán)讀取每個表空間的數(shù)據(jù)文件,通過調(diào)用,把表空間目錄下的數(shù)據(jù)文件發(fā)送給客戶端備份工具。在把全部文件發(fā)送給客戶備份工具后,調(diào)用進行停止備份的處理,在函數(shù)中,先解析原來備份的文件,獲取備份起始的XLOG位置,寫入到日志文件,然后調(diào)用進行XLOG文件段切換,方便歸檔快速完成。請求一次新的檢查點,寫當(dāng)前備份的歷史文件“”.文件,調(diào)用清除歷史備份文件。如果需要等待歸檔則等待日志歸檔完成,停止備份結(jié)束后,調(diào)用把備份結(jié)束的XLOG位置發(fā)送給客戶端備份工具,服務(wù)器端備份命令的處理流程就結(jié)束了。

    對應(yīng)的標識符為d,處理函數(shù)為,在函數(shù)中,首先給客戶端工具發(fā)送響應(yīng)消息,然后調(diào)用設(shè)置流復(fù)制開始位置,然后設(shè)置為true,啟動正式的流復(fù)制過程。

    2. tar壓縮包格式備份

    tar壓縮包格式備份的處理函數(shù)為,具體過程如下。

    (1) 根據(jù)備份內(nèi)容(全部還是具體表空間)和是否壓縮,確定文件名稱是base.tar[.gz]還是.tar[.gz]。

    (2) 打開tar文件,接收數(shù)據(jù)庫服務(wù)器發(fā)送的COPY數(shù)據(jù)流,寫入tar文件,直到復(fù)制完整個內(nèi)容。數(shù)據(jù)庫服務(wù)器往發(fā)送的數(shù)據(jù)流就是一個壓縮后的tar流。

    如前所述,的tar包格式是自定義的,所以需要實現(xiàn)解包。解包的命令為GsTar,主要有兩個命令行參數(shù)。

    ① -D, --=,解壓后的文件存放路徑;

    ②-F, --=,需要解壓的tar包。

    以上內(nèi)容為備份恢復(fù)機制:全量備份技術(shù)的相關(guān)內(nèi)容,后續(xù)將接著分享“增量備份技術(shù)”的精彩內(nèi)容,敬請期待!

    END

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有