Mongodb

使用 mongodump 備份我的 MongoDB 時獲取空文件夾

  • February 9, 2022

基本上,我在使用mongodump備份我的 MongoDB 時遇到了問題。

這是我在 SSH 中使用的一般語法:

mongodump -d myDatabaseName -o ~/backups/my_backup

這是結果消息:

Fri Apr 22 20:39:57.304 DATABASE: myDatabaseName   to     /root/backups/my_backup/myDatabaseName

這只會生成一個空白文件夾,其中沒有任何文件。實際的數據庫相當大,所以不確定發生了什麼。

我還想補充一點,我的 mongodump 客戶端和我的 MongoDB 版本都是相同的(版本 2.4.9)。

不知道如何解決這個問題。任何幫助表示讚賞。

我在 Ubuntu 中使用了預設的 mongodb-client deb 包。我刪除了這些並從 mongodb.com https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/?_ga=2.36209632.1945690590.1499275806-1594815486.1499275806安裝了 mongodb-org-tools 包

如果您不在 Ubuntu https://www.mongodb.com/download-center?jmp=nav#community上,他們會為您的特定作業系統提供其他安裝說明

根據 MongoDB BOL Here Backup a Database with mongodumpExclude local Database

mongodump excludes the content of the local database in its output.

所需訪問權限

要針對啟用了訪問控制的 MongoDB 部署執行 mongodump ,您必須具有為每個要備份的數據庫授予查找操作的權限。內置備份角色提供了執行任何和所有數據庫備份所需的權限。

在 3.2.1 版更改: 備份角色提供了額外的權限來備份system.profile與數據庫分析一起執行時存在的集合。以前,使用者需要對此集合具有額外的讀取權限。

mongodump實用程序通過連接到正在執行的mongodmongos實例備份數據。

該實用程序可以為整個伺服器、數據庫或集合創建備份,或者可以使用查詢僅備份集合的一部分。

當您執行不帶任何參數的 mongodump 時,該命令將連接到本地系統(例如127.0.0.1或 localhost)上的 MongoDB 實例的埠,27017並創建一個名為dump/.current directory

要從執行在同一台機器和預設埠 27017 上的 mongod 或 mongos 實例備份數據,請使用以下命令:

mongodump

mongodumpfromversion 2.2或更高版本使用的數據格式incompatible與早期版本的mongod. 不要使用最新版本的mongodumpto back up older data stores

您還可以指定應該連接到的實例的--host和。例如:--port``MongoDB``mongodump

mongodump --host mongodb.example.net --port 27017

要指定不同的輸出目錄,可以使用--outor-o選項:

mongodump --out /data/backup/

要限制數據庫轉儲中包含的數據量,您可以指定 –db--collectionmongodump. 例如:

mongodump --collection myCollection --db test

此操作在目前工作目錄myCollection的 a 中創建從數據庫 test命名的集合的轉儲。dump/ subdirectory

mongodump如果備份數據文件夾中存在輸出文件,則覆蓋它們。在多次執行 mongodump 命令之前,請確保您不再需要輸出文件夾中的文件(預設為dump/ folder)或重命名文件夾或文件。

為了進一步參考這里這裡

引用自:https://dba.stackexchange.com/questions/136287