openGauss一主兩備集群異常斷電后不能正常啟動的解決過程簡記

背景

因異常斷電后opengauss 5.0.0版本,一主兩備集群啟動失敗。

報錯不是主機,由于當時沒有截圖,查看日志后發現報錯是:

定位過程

Day1

1. 嘗試用另外兩臺機器啟動每臺機器

發現都報錯自己不是主機,像極了唐僧被妖怪抓走后互相帥鍋的猴子哥仨。

2.手動啟動

于是向openGauss交流群里的大佬求助,@半夏提供了一個手動啟動的命令。

gs_ctl start -D /opt/huawei/install/data/dn -M primary

執行的時候提示已經有服務在,建議用restart,于是改為用restart執行。

gs_ctl restart -D /opt/huawei/install/data/dn -M primary

同時在兩臺備機上面執行手動啟動,模式為standby。

gs_ctl restart -D /opt/huawei/install/data/dn -M standby

?繼續:

執行完后查看集群狀態,仍然是不可用。

3.連接上了

嘗試本地連接數據庫,是可以連接上了。

4. 導出數據

于是第一時間用gs_dump命令把數據先導出來了一份,這樣最差的情況也可以卸載重裝來恢復。

5. 改成單機版

但是雖然本地能連上,卻不能創建表,是個只讀事務(read-only transaction),業務還是不可用,期間還想著把業務代碼改成單機版的數據庫連接先應付應用,因為只讀作罷。

6. 業務代碼及datastudio工具也都連接不上。

起初我還以為是配置文件的問題,檢查和確認了postgres.conf及pg_hba.conf的配置。期間還執行過gs_install,以及gs_preinstall,但是install過程提示集群已安裝(因未截圖所以無法得到確切的提示,大意是已安裝)。

Day2

周一和大佬@半夏連線

1. 檢查磁盤空間

首先檢查了磁盤空間,也檢查了互信,互信正常,篇幅起見截圖就只截一個服務器的。

2. 修改為自動切換失敗

cm_ctl switchover -a

3. 強制升主

因為不可讀,于是把123服務器的數據庫又執行了一次強制升主。

cm_ctl set --cmsPromoteMode=PRIMARY_F -I 1

執行后確實改為了Primary,但仍然是不可讀,遠程也無法連接。

4. 斷電后操作

后來求助cm的大佬恩哥,恩哥提供了如下斷電后需要執行的操作

4.1??kill掉cm和om的相關進程:

gs_ssh -c "pkill -9 om_monitor -U omm; pkill -9 cm_agent -U omm; pkill -9 cm_server -U omm; touch $GAUSSHOME/bin/cluster_manual_start"

4.2. rm掉cmserver下的gstor, dcf_data和bin下面的配置文件

cd $GAUSSLOG
cd /opt/huawei/data/cmserver/cm_server
gs_ssh -c "rm /opt/huawei/data/cmserver/gstor /opt/huawei/data/cmserver/dcf_data $GAUSSHOME/bin/cluster_dynamic_config -rf"

4.3 rm掉bin下的集群手動啟動

3. gs_ssh -c "rm $GAUSSHOME/bin/cluster_manual_start"

Day3

1. 執行切換啟動模式為AUTO

cm_ctl set --cmsPromoteMode=AUTO -I 1

2. 于是直接拉恩哥上線

2.1?查看dcc日志:

cd $GAUSSLOG/cm/dcc

vim debug/dcc.dlog

命令截圖:

日志截圖:

?2.2 看到這個日志后,我提出懷疑是防火墻導致的連接建立失敗。

于是在三臺服務器上都執行了關防火墻的操作(生產環境不建議這樣操作,因是測試環境驗證問題,所以關掉防火墻,生產環境開放端口白名單)。

systemctl stop firewalldsystemctl disable firewalld

2.查詢防火墻狀態

systemctl status firewalld

3. 再查詢集群狀態,狀態即為正常:

cm_ctl query -Cvidp

四、成功解決!

緊張焦慮的兩天半,問題終于在兩位大佬的幫助下得到了解決,趁熱打鐵流水賬先記錄下過程,供各位專家同仁指導參考,再次感謝@半夏和恩哥(音)。

五、總?結

影響集群啟動的主要因素:

1. 防火墻是否關閉(或者是否打開端口白名單);

2. 刪除進程和文件的3步命令,至于手動啟動,并不是必須的步驟;

3. 斷電前預先stop集群。

附:一些Linux命令總結:

gs_ssh -c "ps x"

echo $GAUSSHOME

cm_ctl start

cm_ctl stop

cm_ctl query -Cvidp

cd $GAUSSLOG

source .bashrc –加載用戶的bash配置文件

ps ux

歡迎小伙伴們交流~

本文作者:趙鋒

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13265.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法刷題day55】Leetcode:583. 兩個字符串的刪除操作、72. 編輯距離

文章目錄 Leetcode 583. 兩個字符串的刪除操作解題思路代碼總結 Leetcode 72. 編輯距離解題思路代碼總結 草稿圖網站 java的Deque Leetcode 583. 兩個字符串的刪除操作 題目:583. 兩個字符串的刪除操作 解析:代碼隨想錄解析 解題思路 dp數組的含義是&a…

哪款桌面便簽app能幫助我提升工作效率

作為上班族,我們每天都要處理大量的工作事項,從策劃方案到處理郵件,每一個環節都需高效且有條不紊。在這樣的工作環境下,提升效率顯得尤為重要。而選擇一款優秀的桌面便簽app,無疑是提高工作效率的關鍵。 桌面便簽app…

【數據結構】數據結構大匯總 {數據結構的分類總結:定義和特性、實現方式、操作與復雜度、適用場景、相關算法、應用實例}

一、線性結構 1.1 順序表 定義和特性:順序表是一種線性表的存儲結構,它采用一段地址連續的存儲單元依次存儲線性表中的元素。順序表具有隨機訪問的特性,即可以通過元素的下標直接訪問元素。 實現方式:順序表可以通過數組來實現&…

基于51單片機的非接觸式無線紅外測溫

基于51單片機的無線紅外測溫 (程序+原理圖+設計報告) 功能介紹 具體功能: 1.采用紅外溫度傳感器測溫并用LCD1602顯示; 2.按鍵為啟動按鍵、保存按鍵、顯示數據按鍵,可以實現對溫度數值的控制…

【制作100個unity游戲之26】unity2d橫版卷軸動作類游戲6(附帶項目源碼)

最終效果 系列導航 文章目錄 最終效果系列導航前言敵人動畫配置撞墻判斷敵人基本AI邏輯實現 野豬受傷死亡死亡敵人死亡時,還是會對人物產生傷害有限狀態機&抽象類多態 定義不同狀態的敵人行為防止野豬在懸崖掉下去野豬的追擊狀態的轉換敵人主動查找玩家 追擊狀態…

基于微信小程序+JAVA Springboot 實現的【智慧鄉村旅游服務平臺】app+后臺管理系統 (內附設計LW + PPT+ 源碼+ 演示視頻 下載)

項目名稱 項目名稱: 基于微信小程序的智慧鄉村旅游服務平臺的設計與實現 項目技術棧 該項目采用了以下核心技術棧: 后端框架/庫: Java SSM框架數據庫: MySQL前端技術: 微信開發者工具、uni-app其他技術&#xff1a…

8B10B編碼(高速收發器五)

1、8B10B解決的問題 8B10B編碼是1983年IBM公司提出的傳輸編碼標準,通常用于高速收發器中,常見的JESD204B、SATA等接口協議,使用查表就可以實現編碼和解碼。 在這些高速收發器的接收端需要通過CDR技術去恢復時鐘與數據的相位關系,在…

Linux day6 yum下載,systemctl,

yum命令 yum [-y] install wget 通過yum下載wget小工具 -y的意思是,如果有詢問,自動確認(總是允許)。 yum remove wget 也可以通過這種方式卸載wget

Git版本控制工具的原理及應用詳解(四)

本系列文章簡介: 隨著軟件開發的復雜性不斷增加,版本控制成為了開發團隊中不可或缺的工具之一。在過去的幾十年里,版本控制工具經歷了各種發展和演變,其中Git無疑是目前最受歡迎和廣泛應用的版本控制工具之一。 Git的出現為開發者…

Apache Flink典型應用場景全面解析

Apache Flink作為一個高度靈活且功能強大的開源流處理框架,因其在實時數據處理、大規模數據分析以及事件驅動應用方面的卓越表現而受到廣泛青睞。以下是Flink幾個典型的使用場景,展示了其在不同行業和業務需求中的應用潛力。 實時數據分析與監控 應用描述…

工作小記2——二周年記

不知不覺,工作已經有二周年, 由于公司電腦不能登錄csdn,不能登github,我已經好久沒有碰過我的個人博客空間啦。現在從大廠跳到小公司,舒適度翻倍提升!現在我要回歸CSDN啦! 總體感受&#xff1a…

playwright 自動化框架python教程(九)

Playwright 提供了一系列API來處理各種瀏覽器中的特殊操作 Playwright 提供了一系列API來處理各種瀏覽器中的特殊操作,包括彈窗(如alert、confirm、prompt)、新窗口的打開與管理,以及其他一些高級交互。以下是處理這些情況的一些…

Solon Cloud Event 新的事務特性與應用

1、Solon Cloud Event? 是 Solon 分布式事件總線的解決方案。也是 Solon “最終一致性”分布式事務的解決方案之一2、事務特性 事務?就是要求 Event 有原子性,當多個 Event 發布時,要么全成功,要么全失敗。 public …

PyQt5 中的 List View

文章目錄 1. 基礎概念2. 創建 List View2.1 PyQt5 中一個簡單的 List View 實例2.2 代碼解釋2.3 運行結果 3. 數據模型3.1 標準模型3.2 自定義模型 4. 自定義 List View4.1 使用樣式表 (QSS)4.2 設置項委托 (Item Delegate) 5.事件處理6. 與數據交互6.1 添加數據6.2 刪除數據6.…

【哈希】Leetcode 205. 同構字符串【簡單】

同構字符串 給定兩個字符串 s 和 t ,判斷它們是否是同構的。 如果 s 中的字符可以按某種映射關系替換得到 t ,那么這兩個字符串是同構的。 每個出現的字符都應當映射到另一個字符,同時不改變字符的順序。不同字符不能映射到同一個字符上&am…

如何解決 Scrapy 下載圖片時的文件名錯誤問題

在使用 Scrapy 的 ImagesPipeline 下載圖片時,有時會遇到因為文件名的問題導致下載失敗的情況。本文將詳細解釋這種錯誤的原因,并提供一個簡單易懂的解決方案,幫助大家避免類似的問題。 問題描述 在下載圖片時,如果圖片的名字是…

C語言到底怎么學?

C語言到底怎么學? 1、工欲善其事,必先利其器 這里介紹幾個華清遠見學習C語言必備的工具: VMware、ubuntu。 VMware是一家提供虛擬化軟件和解決方案的公司,VMware的旗艦產品是VMware Workstation,這是一種虛擬機軟件,…

echers配置項:數據過多時,折疊數據縮放查看

當數據過多時,如上圖所示的時間點,會自動折疊,此時鼠標縮放還不起作用,我們配置如下代碼 let option {dataZoom: [{startValue: 05:00}, // 這個值需要跟 第一條 時間數據對應上{type: inside}], }配置后,就可以進行…

echers配置項:折線圖,折現的顏色修改

如上圖所示:紅框內的折現顏色修改,并隱藏默認的點 series: [{data: [1, 230, 224, 218, 135, 147, 760,1500,1200,2500,2000],type: line,lineStyle: {color: #00DBFE // 折現顏色},symbol:none, // 不顯示點smooth: true, // 折現角度:圓滑…

hadoop生態圈集群搭建(持續更新240513)

Hadoop生態圈 Linux1.修改ip地址2.重啟network服務3.安裝插件4.關閉防火墻5.創建用戶6.創建目錄7.修改目錄的所屬主和所屬組為lxy8.修改主機名:hadoop102 (注意名字后面不要加空格)9.修改hosts文件10.等插件都裝完后再重啟Linux11.把xshell的登錄用戶換成lxy (注意&…