https://v.qq.com/x/page/a312354ftqa.html
這是關(guān)于PX-Backup的一個Demo蛔琅。在左側(cè)疾捍,有PX-Backup和兩個集群奈辰。我們使用上面那個集群,運行的是1.17.8版本的K8S乱豆。在右側(cè)有一個終端奖恰,也是訪問的那個集群,我們可以看到集群運行的是1.17.8版本的K8S宛裕。
我們要介紹如何對MySQL進行備份瑟啃,以及前置和后置規(guī)則。這部分是設(shè)置命名空間的揩尸,里面有一個MySQLns1的命名空間蛹屿,它里面運行的是MySQL的數(shù)據(jù)庫,也可以看到與數(shù)據(jù)庫關(guān)聯(lián)的PVC和PV疲酌。我們可以通過終端登錄到MySQL蜡峰,存在一個數(shù)據(jù)庫表,我們可以用來檢測我們的備份操作的過程是否正確朗恳。
我們有一個叫做“家”的數(shù)據(jù)庫湿颅,里有一個叫做“寵物”的表,在這個表里只有一行數(shù)據(jù)粥诫,描述了一只狗油航。我們會對這個數(shù)據(jù)庫進行備份操作,我們的第一步是填寫這個界面的信息怀浆,我們要介紹一下備份的前置和后置規(guī)則谊囚。我們可以在備份規(guī)則的界面管理這些規(guī)則,有兩個規(guī)則是針對MySQL應用的执赡,如果我們點擊進去镰踏,通過選擇器選擇MySQL,MySQL在我的右側(cè)沙合,有個標簽奠伪,前置規(guī)則是通過readlock來flush數(shù)據(jù)庫表,它會確保數(shù)據(jù)庫表是鎖定狀態(tài)首懈,沒有新的IO來改變數(shù)據(jù)庫表绊率,F(xiàn)lush數(shù)據(jù)到磁盤,后置規(guī)則是flush日志究履,并且解鎖數(shù)據(jù)庫表滤否。使得數(shù)據(jù)庫可以重新正常使用。
我們回到這個命名空間最仑,用這些規(guī)則配置我們的備份藐俺。我們會選擇MySQLns1命名空間炊甲,選擇備份,給備份起一個名字欲芹,選擇備份的位置蜜葱,我們這里選S3,選擇是否要按時間計劃來備份耀石,或者是現(xiàn)在備份,我們選現(xiàn)在爸黄。選擇前置和后置規(guī)則滞伟,完成后,可選的部分是標簽炕贵,一旦創(chuàng)建完成梆奈,就會顯示進展和狀態(tài),一開始是Pending称开,一旦備份開始亩钟,狀態(tài)就是In Progress,你可以查看細節(jié)信息鳖轰,你可以看到前置規(guī)則正在執(zhí)行清酥。即通過Read Lock萝衩,flush數(shù)據(jù)庫表爬舰,正在進行抵屿。接下來就會備份PV和其他資源仪壮,在細節(jié)信息里喜滨,我們可以看到甩苛,資源備份狀態(tài)是In Progress云石,包括PV箱残,PVCs, 數(shù)據(jù)狞膘,K8S對象等等揩懒,現(xiàn)在狀態(tài)是“成功”,表示我們的備份成功了挽封,后置規(guī)則開始運行了已球。
這樣我們就有了一個可以用來恢復的備份,現(xiàn)在我們加入一些數(shù)據(jù)场仲,來驗證我們的備份是否正確和悦,現(xiàn)在我們看到數(shù)據(jù)庫表中有兩條狗的記錄,我們繼續(xù)渠缕,點擊“恢復”鸽素,在備份這個菜單的旁邊,填寫恢復界面的相關(guān)信息亦鳞,首先是恢復的名稱馍忽,恢復到哪一個集群棒坏,可以恢復到原來的集群,也可以恢復到一個新的集群遭笋,在這里坝冕,我們就恢復到原來的集群,但是一個新的命名空間瓦呼,我們選擇定制化恢復喂窟,會從原來的命名空間央串,備份到一個新的“測試”命名空間磨澡。這個“測試”命名空間我們可以用來做一些測試质和,我們選擇覆蓋已經(jīng)存在在那個命名空間的資源,現(xiàn)在我們的恢復已經(jīng)完成了饲宿,我們登錄到新的Pod里厦酬,MySQLns1“測試”命名空間瘫想,我們選擇數(shù)據(jù)庫和數(shù)據(jù)庫表,我們可以看到數(shù)據(jù)庫表只有一條記錄国夜,表示我們的恢復是正確的霹菊。前置和后置規(guī)則支竹,確保了備份過程中應用的一致性。