天天看點

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

1.登入阿裡雲,進入雲資料庫MongoDB子產品,點選對應執行個體,選擇備份與恢複

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

下載下傳備份檔案

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

2.在本地伺服器安裝MongoDB(版本需與阿裡雲MongoDB版本一緻),具體安裝方法請檢視上一篇文章,在此不再贅述。

3.解壓下載下傳的備份檔案:

解壓結果:

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

4.以單節點模式恢複MongoDB實體備份的資料

4.1 執行如下指令在/usr/local/mongodb檔案夾中建立配置檔案mongod.conf。

4.2 在指令行中輸入​<code>​vi /usr/local/mongodb/mongod.conf​</code>​打開mongod.conf檔案,鍵盤輸入​<code>​i​</code>​開啟編輯模式。

根據雲資料庫MongoDB版的存儲引擎選擇啟動的配置模闆,您可以将其複制到mongod.conf檔案中:

4.3 按Esc鍵退出編輯模式,鍵盤輸入​<code>​:wq​</code>​儲存并退出。

5.指定建立的配置檔案mongod.conf來啟動MongoDB

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

等待啟動完成後,執行如下指令登入MongoDB資料庫,進入Mongo Shell。

登入成功:

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

在Mongo Shell中,執行​<code>​show dbs​</code>​查詢目前本地MongoDB中所有的資料庫,以驗證是否恢複成功。

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

至此恢複工作已成功完成,您可以在Mongo Shell中執行​<code>​exit​</code>​指令退出Mongo Shell。

6.副本集模式啟動MongoDB資料庫

6.1 在指令行中通過伺服器的Mongo Shell使用root使用者登入MongoDB資料庫:

(如果您的密碼中包含特殊字元,則需要使用英文單引号(')包裹密碼,如:'test123!@#'。否則可能會登入失敗。)

登入成功後,執行下方代碼框中的指令完成如下動作:

在admin庫中建立一個臨時使用者,賦予該使用者臨時的local庫讀寫權限。

切換至臨時使用者移除local庫中原有副本集配置。

切換回root使用者删除臨時使用者和臨時權限

執行結果示例:

阿裡雲MongoDB實體備份檔案恢複至自建資料庫
阿裡雲MongoDB實體備份檔案恢複至自建資料庫
阿裡雲MongoDB實體備份檔案恢複至自建資料庫

(對于local庫的​<code>​system.replset​</code>​集合,root使用者隻有隻讀權限,且由于root使用者無法更改自身的權限,是以隻能通過其他使用者進行删除。)

6.2 執行如下指令關閉MongoDB服務并退出Mongo Shell:

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

7. 建立副本集認證檔案(如需以副本集模式啟動MongoDB,您需要建立一個key檔案作為每個副本集節點之間的認證檔案):

7.1 執行如下指令在mongo目錄下建立keyFile檔案夾作為認證檔案的目錄,并在該目錄中建立一個key檔案。

執行​<code>​vi /root/mongo/keyFile/mongodb.key​</code>​打開mongodb.key檔案,按鍵盤上的​<code>​i​</code>​進入編輯模式,輸入加密内容。例如:

加密内容有如下幾個限制

長度必須在6~1024個字元之間。

隻能包含base64編碼中的字元。

不能包含等号(=)。

在指令行中執行如下指令将認證檔案的權限修改為​<code>​400​</code>​,保證該檔案内容僅對該檔案所有者可見。

8. 通過下列步驟為副本集準備兩個空的節點。

8.1 執行如下指令複制兩份mongod.conf檔案分别作為另外兩個節點的啟動配置檔案。

執行如下指令分别為另外兩個節點建立資料目錄。

9. 分别通過下列訓示修改各節點的配置檔案:

執行​<code>​vi /usr/local/mongodb/mongod.conf​</code>​打開節點1的配置檔案,并按照如下内容修改完成後儲存退出。

執行​<code>​vi /usr/local/mongodb/mongod1.conf​</code>​打開節點2的配置檔案,并按照如下内容修改完成後儲存退出。

執行​<code>​vi /usr/local/mongodb/mongod2.conf​</code>​打開節點3的配置檔案,并按照如下内容修改完成後儲存退出。

各重要參數說明如下:

systemLog.path下的path:目前節點的MongoDB日志檔案路徑,

dbpath:目前節點的MongoDB資料檔案路徑。

pidFilePath:目前節點的MongoDB的PID檔案(記錄程序ID的檔案)路徑。

keyFile:副本集認證檔案路徑,所有節點必須使用同一個認證檔案。

bindIp:目前節點的IP位址。如果是在同一台伺服器上部署副本集,所有節點可采用相同的IP位址。

port:目前節點的端口号。如果是在同一台伺服器上部署副本集,所有節點應采用不同的端口号。

replication:副本集配置。

replSetName:設定副本集的名稱。

10. 執行如下指令啟動3個節點。

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

等待啟動完成後,使用root賬号登入MongoDB資料庫。

在Mongo Shell中通過如下指令将上述步驟中建立的副本內建員節點加入副本集并初始化。

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

執行成功後,新加入的兩個節點将會與主節點進行資料同步,注意此過程的耗時根據備份檔案的大小會有較大差異。等待資料同步完成後,副本集模式啟動完成。

11. 通過如下步驟驗證是否啟動成功。

執行​<code>​exit​</code>​退出Mongo Shell。

執行如下指令重新登入MongoDB資料庫.

觀察Mongo Shell指令行左側,顯示​<code>​&lt;副本集名稱&gt;:PRIMARY&gt;​</code>​即代表副本集模式啟動成功。

阿裡雲MongoDB實體備份檔案恢複至自建資料庫

繼續閱讀