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