企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-03备份和恢复
親歷的企業(yè)級(jí)微服務(wù)的完整構(gòu)建過(guò)程-系列文章目錄
本人參與了這次的企業(yè)級(jí)微服務(wù)的完整構(gòu)建,想要記錄下來(lái)以便以后復(fù)習(xí),同時(shí)也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見(jiàn)和建議,大家一起探討一起成長(zhǎng)。以下為該系列所有文章的鏈接:
搭建和使用Maven私有倉(cāng)庫(kù)(Nexus)-系列文章目錄
說(shuō)明:
- 以下部分模塊,絕大多數(shù)人,在日常工作中都是用不到的,所以我就沒(méi)有介紹,畢竟時(shí)間是最重要的成本,沒(méi)必要花大量時(shí)間在我們用不到的內(nèi)容上。
- 下面的“1 通用”章節(jié),系列文章中的每一篇內(nèi)容都相同,介紹一些背景、約定和官網(wǎng)鏈接等,大家只要知道這些內(nèi)容了,就不用每篇文章都去看了。
本文目錄
- 親歷的企業(yè)級(jí)微服務(wù)的完整構(gòu)建過(guò)程-系列文章目錄
- 搭建和使用Maven私有倉(cāng)庫(kù)(Nexus)-系列文章目錄
- 正文
- 1 通用
- 1.1 前言
- 1.2 約定
- 1.3 官方文檔
- 2 備份和恢復(fù)
- 2.1 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)備份
- 2.2 所有數(shù)據(jù)備份
- 2.3 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
正文
1 通用
1.1 前言
在構(gòu)建微服務(wù)之前,需要先做一些準(zhǔn)備工作,比如Maven私有倉(cāng)庫(kù)的管理。因?yàn)橛行┪⒎?wù)模塊是作為公共組件被其他微服務(wù)引用的,這些公共的微服務(wù),就要設(shè)置為依賴,并用Maven倉(cāng)庫(kù)管理起來(lái),將自定義的依賴上傳到Maven中央倉(cāng)庫(kù)并不是一個(gè)明智的選擇。原因如下:
綜上,我們最好是搭建自己的私有Maven倉(cāng)庫(kù),而當(dāng)前最流行的就是 Sonatype Nexus Repository Manager,以下簡(jiǎn)稱(chēng) Nexus。
1.2 約定
1.3 官方文檔
提供Nexus的官方文檔:https://help.sonatype.com/repomanager3/
官方文檔包含了系統(tǒng)要求、搭建方法,以及各種操作方法等,內(nèi)容已經(jīng)非常全面了。
2 備份和恢復(fù)
背景: Nexus有2種版本:OSS,免費(fèi)版;Pro,收費(fèi)版。因?yàn)镺SS版本只能使用OrientDB數(shù)據(jù)庫(kù),Pro版本才能使用其他數(shù)據(jù)庫(kù)(如H2, PostgreSQL),而我使用的是免費(fèi)的OSS版,所以這里就介紹下如何備份和恢復(fù) OrientDB。以后如果用到Pro版,再補(bǔ)上其他數(shù)據(jù)庫(kù)的備份恢復(fù)步驟。
2.1 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)備份
創(chuàng)建備份任務(wù):點(diǎn)擊圖中的“Create task”按鈕
創(chuàng)建備份任務(wù):點(diǎn)擊“Admin - Export databases for backup”項(xiàng)
創(chuàng)建備份任務(wù):點(diǎn)擊“Admin - Export databases for backup”項(xiàng),配置備份項(xiàng)目
需要配置 任務(wù)名稱(chēng)、通知郵箱、通知時(shí)機(jī)、備份路徑、任務(wù)頻率等。其中,“Task frequency”(任務(wù)頻率),可以配置為基礎(chǔ)的“每日、每周”等,也可以使用高級(jí)的CRON表達(dá)式,上面2張截圖中分別使用了2種方式。
創(chuàng)建備份任務(wù):配置完點(diǎn)擊“Save”按鈕,就可以在 Tasks列表中看到我們剛剛配置好的任務(wù)記錄了
如下圖所示:
點(diǎn)擊上圖中的“bak-data”記錄,進(jìn)入到詳情頁(yè)面,可以刪除、手動(dòng)運(yùn)行、手動(dòng)停止 任務(wù),也可以查看任務(wù)運(yùn)行匯總信息,還可以修改任務(wù)(點(diǎn)擊 ‘Settings’按鈕):
運(yùn)行任務(wù):可以點(diǎn)擊上圖中的“Run”按鈕手動(dòng)運(yùn)行,也能等待定時(shí)任務(wù)自動(dòng)運(yùn)行
備份任務(wù)運(yùn)行完成后可以在配置的備份路徑下找到備份文件,一共3個(gè):
注:
6. 當(dāng)任務(wù)運(yùn)行時(shí),它會(huì)將備份數(shù)據(jù)導(dǎo)出到“Backup location”字段中指定的路徑。一次備份會(huì)生成3個(gè) .bak 文件:
·component - 構(gòu)成倉(cāng)庫(kù)管理器中組件的所有相關(guān)數(shù)據(jù)
·config - 常規(guī)管理配置,例如計(jì)劃任務(wù)和電子郵件服務(wù)器配置
·security - 所有用戶和訪問(wèn)權(quán)限管理內(nèi)容
所有備份文件都基于任務(wù)開(kāi)始時(shí)間的時(shí)間戳格式顯示。
配置了通知郵箱沒(méi)用,任務(wù)成功或失敗后,并沒(méi)有發(fā)送郵件給該郵箱,后臺(tái)日志中有一個(gè)提示消息:2022-07-01 02:49:24,866+0000 WARN [event-12-thread-38] *SYSTEM org.sonatype.nexus.internal.email.EmailManagerImpl - No email enabled but asked to send anyway.。誰(shuí)研究出解決辦法,可以告訴我。
2022-07-05 15:51: 這個(gè)問(wèn)題我解決了,是因?yàn)槲覜](méi)有配置和啟用發(fā)送郵件服務(wù)器(注意:Enable復(fù)選框必須打勾,啟用它):
2.2 所有數(shù)據(jù)備份
數(shù)據(jù)庫(kù)數(shù)據(jù)備份(參考5.1節(jié))
在運(yùn)行導(dǎo)出任務(wù)的同時(shí)備份安裝目錄和數(shù)據(jù)目錄中的自定義配置
備份所有 blob 存儲(chǔ)
直接備份存儲(chǔ) blob 的目錄,通常是 $data-dir/blobs。
節(jié)點(diǎn)ID 備份
每個(gè) Nexus Repository 實(shí)例都與一個(gè)不同的 ID 相關(guān)聯(lián)。我們必須備份此 ID,以便 Blob 存儲(chǔ)指標(biāo)(磁盤(pán)上 Blob 的大小和數(shù)量)和 Nexus Firewall 報(bào)告在還原時(shí)起作用。要備份以保留節(jié)點(diǎn) ID 的文件位于以下位置:$data-dir/keystores/node/?。
將所有備份的配置和導(dǎo)出的數(shù)據(jù)存儲(chǔ)在一起
注:對(duì)數(shù)據(jù)庫(kù)的寫(xiě)訪問(wèn)被暫時(shí)掛起,直到備份完成。建議在下班時(shí)間安排備份任務(wù)(比如寫(xiě)備份腳本,放到定時(shí)任務(wù)中運(yùn)行)。
2.3 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
- component/
- config/
- security/
注意:
當(dāng)組件數(shù)據(jù)庫(kù)恢復(fù)時(shí),包含組件的相應(yīng) blob 存儲(chǔ)也必須恢復(fù)。不這樣做會(huì)導(dǎo)致 blob存儲(chǔ)和數(shù)據(jù)庫(kù)之間出現(xiàn)同步問(wèn)題。
如果 Blob 存儲(chǔ)和數(shù)據(jù)庫(kù)備份不是在完全相同的時(shí)刻進(jìn)行的,它們可能在還原后不同步。 要解決此問(wèn)題,請(qǐng)?jiān)?Adminitration 管理界面中的 System → Tasks 下安排并運(yùn)行任務(wù) Repair - Reconcile component database from blob store。
總結(jié)
以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-03备份和恢复的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 表格式计算机教案模板,2014表格式教案
- 下一篇: 日本k线图技术