[發(fā)明專利]PostgreSQL高彈性的高可用及負載均衡實現(xiàn)方法在審
| 申請?zhí)枺?/td> | 201410548447.2 | 申請日: | 2014-10-16 |
| 公開(公告)號: | CN104503965A | 公開(公告)日: | 2015-04-08 |
| 發(fā)明(設(shè)計)人: | 周正中 | 申請(專利權(quán))人: | 杭州斯凱網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L29/08 |
| 代理公司: | 杭州杭誠專利事務(wù)所有限公司33109 | 代理人: | 尉偉敏 |
| 地址: | 310013浙江省杭*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | postgresql 彈性 可用 負載 均衡 實現(xiàn) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種PostgreSQL高彈性的高可用及負載均衡實現(xiàn)方法。
背景技術(shù)
在大型的業(yè)務(wù)系統(tǒng)中,數(shù)據(jù)庫一般處于比較核心的地位,例如涉及用戶信息,用戶賬戶信息,用戶行為信息的存儲。用戶或用戶之間信息的交互都需要數(shù)據(jù)庫的支持,數(shù)據(jù)庫故障將導(dǎo)致核心業(yè)務(wù)系統(tǒng)故障。數(shù)據(jù)庫的不間斷運行成為業(yè)務(wù)系統(tǒng)穩(wěn)定性的關(guān)鍵因素。
傳統(tǒng)數(shù)據(jù)庫高可用方法有兩種應(yīng)用場景:
第一種應(yīng)用場景是利用存儲設(shè)備的復(fù)制功能來實現(xiàn)高可用。參見圖6所示,把一個數(shù)據(jù)庫存儲設(shè)備中的數(shù)據(jù)采用存儲復(fù)制的方式復(fù)制到另一個數(shù)據(jù)庫存儲設(shè)備中去,App1或者Appn訪問虛擬IP,通過failover決定虛擬IP是通過數(shù)據(jù)庫活動實例1來訪問一個數(shù)據(jù)庫,還是通過數(shù)據(jù)庫非活動實例n來訪問另一個數(shù)據(jù)庫。這種方法的缺陷是:(1)數(shù)據(jù)庫的特征受制于硬件存儲設(shè)備,需要存儲硬件廠商結(jié)合數(shù)據(jù)庫的特征設(shè)計,無法支持所有數(shù)據(jù)庫,在沒有經(jīng)過廠商認證的數(shù)據(jù)庫品牌冒然使用,可能導(dǎo)致數(shù)據(jù)一致性問題或數(shù)據(jù)塊損壞問題;(2)成本高,存在高昂的軟件許可成本和硬件成本;(3)存儲層面的同步無法和應(yīng)用結(jié)合,無法實現(xiàn)同步或異步的同步,如果是同步復(fù)制,那么將增加故障點,同時帶來性能損失;如果是異步復(fù)制則會增加丟失數(shù)據(jù)的風(fēng)險。
第二種應(yīng)用場景是利用共享存儲和高可用軟件實現(xiàn),參見圖7所示,App1或者Appn訪問虛擬IP,通過failover決定虛擬IP是通過數(shù)據(jù)庫活動實例1來訪問數(shù)據(jù)庫共享存儲中的數(shù)據(jù),還是通過數(shù)據(jù)庫非活動實例n來訪問數(shù)據(jù)庫共享存儲中的數(shù)據(jù)。這種方法基本上適用于所有的數(shù)據(jù)庫產(chǎn)品,這種方法有幾個缺陷:(1)成本高,需要支付高昂的存儲硬件和高可用軟件費用;(2)依賴存儲設(shè)備的高可用,如果存儲故障則使得數(shù)據(jù)庫高可用失效,存在單點故障;(3)數(shù)據(jù)庫主機切換時會中斷網(wǎng)絡(luò)層會話,無法實現(xiàn)應(yīng)用無感知。
發(fā)明內(nèi)容
本發(fā)明是為了解決現(xiàn)有數(shù)據(jù)庫在數(shù)據(jù)庫層存在單點故障風(fēng)險,在連接層面存在應(yīng)用感知的問題,對failover的應(yīng)用不透明的這些不足,提供一種PostgreSQL高彈性的高可用及負載均衡實現(xiàn)方法,該方法實現(xiàn)了數(shù)據(jù)庫層面完全無單點故障的風(fēng)險.并且在連接層面使用會話保持來解決應(yīng)用感知的問題,還實現(xiàn)了對應(yīng)用完全透明的高可用failover。
為了實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
PostgreSQL高彈性的高可用及負載均衡實現(xiàn)方法,包括:讀寫混合場景實現(xiàn)方法和寫場景實現(xiàn)方法;
(1)讀寫混合場景實現(xiàn)方法步驟如下:
(1.1)準備3臺服務(wù)器,其中2臺服務(wù)器分別用于數(shù)據(jù)庫主節(jié)點和數(shù)據(jù)庫鏡像節(jié)點,另1臺服務(wù)器用于仲裁節(jié)點;
(1.2)分別將數(shù)據(jù)庫主節(jié)點服務(wù)器的主機、數(shù)據(jù)庫鏡像節(jié)點服務(wù)器的主機和仲裁節(jié)點服務(wù)器的主機配置在同一個網(wǎng)段,并設(shè)數(shù)據(jù)庫主節(jié)點為node1,設(shè)數(shù)據(jù)庫鏡像節(jié)點為node2,設(shè)數(shù)據(jù)庫的一個虛擬IP為虛擬IP1,設(shè)數(shù)據(jù)庫的另一個虛擬IP為虛擬IP2,設(shè)仲裁節(jié)點為VOTE_HOST;
(1.3)配置數(shù)據(jù)庫主節(jié)點和數(shù)據(jù)庫鏡像節(jié)點的FENCE設(shè)備,為了防止發(fā)生腦裂現(xiàn)象,讓FENCE設(shè)備在自動failover前關(guān)閉服務(wù)器;
(1.4)配置數(shù)據(jù)庫主節(jié)點和數(shù)據(jù)庫鏡像節(jié)點的網(wǎng)絡(luò),編寫虛擬IP配置文件;還關(guān)閉network服務(wù)自動啟動(node1,node2);并增加network服務(wù)啟動項到rc.local(node1,node2)。
(1.5)在數(shù)據(jù)庫主節(jié)點和數(shù)據(jù)庫鏡像節(jié)點安裝PostgreSQL數(shù)據(jù)庫軟件;
(1.6)在數(shù)據(jù)庫主節(jié)點初始化數(shù)據(jù)庫;
(1.7)在數(shù)據(jù)庫主節(jié)點配置數(shù)據(jù)庫訪問控制配置文件pg_hba.conf、postgresql.conf和recovery.conf,用于數(shù)據(jù)庫復(fù)制、啟動數(shù)據(jù)庫、創(chuàng)建流復(fù)制用戶和啟動虛擬IP;
(1.8)創(chuàng)建鏡像數(shù)據(jù)庫,配置數(shù)據(jù)庫鏡像節(jié)點流復(fù)制環(huán)境,并啟動鏡像虛擬IP;
(1.9)配置仲裁節(jié)點,設(shè)置用于仲裁網(wǎng)絡(luò)異常的數(shù)據(jù)庫監(jiān)聽端口,即配置仲裁機,在仲裁機上起一個監(jiān)聽端口,用于跳轉(zhuǎn)到vip的PostgreSQL主庫監(jiān)聽端口;
(1.10)在數(shù)據(jù)庫主節(jié)點創(chuàng)建心跳檢查函數(shù),數(shù)據(jù)庫主節(jié)點的變更將自動復(fù)制到數(shù)據(jù)庫鏡像節(jié)點;
(1.11)編寫心跳檢查軟件和仲裁節(jié)點檢查軟件,并把心跳檢查軟件部署在數(shù)據(jù)庫主節(jié)點和數(shù)據(jù)庫鏡像節(jié)點,把仲裁節(jié)點檢查軟件部署在仲裁節(jié)點,用于自動FAILOVER;
(1.12)開啟用于自動failover的心跳檢查軟件;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州斯凱網(wǎng)絡(luò)科技有限公司;,未經(jīng)杭州斯凱網(wǎng)絡(luò)科技有限公司;許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410548447.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種PostgreSQL塊
- 一種PostgreSQL塊存儲設(shè)備讀寫模塊
- 一種基于PostgreSQL塊存儲設(shè)備的遷移方法
- 一種基于拓展PostgreSQL的語義軌跡數(shù)據(jù)庫構(gòu)建方法
- 一種數(shù)據(jù)存儲方法及裝置
- 清理日志的方法及裝置、存儲介質(zhì)、電子裝置
- PostgreSQL數(shù)據(jù)庫的DDL同步方法、裝置、設(shè)備和介質(zhì)
- 一種解決postgresql高可用節(jié)點宕機恢復(fù)的方法
- 基于SSL連接PostGreSQL數(shù)據(jù)庫審計的實現(xiàn)方法及系統(tǒng)
- 基于postgreSQL客戶端PSQL的數(shù)據(jù)交互方法及交互裝置





