mongodb備份還原單錶

2021-08-09 06:31:54 字數 2376 閱讀 3117

mongodb備份整個資料庫

mongodump -h 192.168.10.111--port 27017 -u username -p passwd -d wechat -o wechat

還原這個資料庫

mongorestore --host 192.168.10.111 -u username -p password --authenticationdatabase admin -d wechat --dir=/home/server/backup/mongodb/wechat

如果要刪除原本的庫再還原

mongorestore --host 192.168.10.111 -u username -p password --authenticationdatabase admin -d wechat --dir=/home/server/backup/mongodb/wechat --drop

mongo備份單個表

mongoexport  --host 10.9.0.1 --port 27017 -u mongobf -p 03a4b868ff -d wechat -c article -o  article

根據時間段備份表

mongo時間戳轉換

date -d 2016-06-10 +%s 或date -d "2016-06-10 00:00:00" +%s //輸出:1465488000

date -d @1465488000 //輸出:2023年 06月 10日 星期五 00:00:00 cst

db.article.find(}).count()  //統計2016-06-10之後的資料

查詢某個時間段的資料

db.article.find(}).count()

備份wechat資料庫article表中2016-06-10之後的資料

mongodump --host 10.9.0.1 --port 27017 -u username -p userpasswd -d wechat -c article -q '}' -o 6-10

還原資料庫中某個表

mongorestore -d wechat -c media   6-10/wechat/article.bson --drop  //還原bson格式資料

增量某個表的資料:

mongorestore -d wechat -c article   8-6/wechat/article.bson

通過objectid備份資料

方法一:

mongodb shell中執行以下函式

function objectidwithtimestamp(timestamp)

var hexseconds = math.floor(timestamp/1000).tostring(16);

var constructedobjectid = objectid(hexseconds + "0000000000000000");

return constructedobjectid

}查詢2016/08/01號之後新入庫的資料,或objectidwithtimestamp('2016/08/01 00:00:00')

呼叫上面的函式:objectidwithtimestamp轉換成時間戳

db.collectionname.find(})

collectionname為集合名

如查詢article集合中2016/08/01號之後新入庫的資料

db.article.find(})

輸出objectid

objectidwithtimestamp('2016/08/01')或

print(objectidwithtimestamp('2016/08/01'))

使用objectid備份資料

mongodump --host 10.9.0.1 --port 27017 -u username -p userpasswd -d wechat -c article -q '' -o 8-01

方法二:

objectid前4個位元組表示資料入庫的時間,即前8位。前4個位元組為16進製制數

我們要查詢2016-08-01號新入庫的資料

首先:把日期變成時間戳

#date -d "2016-08-01" +%s

1469980800

然後:把時間戳變成16進製制

#echo 'obase=16;ibase=10;1469980800'|bc

579e2080   //這個就是objectid的前8位了,在後面添上000000 0000 000000即為obiectid

objectid("579e20800000000000000000")

16進製制轉10進製

#echo $((0x579e2080))

1469980800

mongoDB備份還原

匯出資料語法 mongodump h port u p d o h 伺服器位址 一般不寫,預設本機 port 埠 一般不寫,預設27017 u 賬號 p 密碼 d database 資料庫 不寫,則匯出全域性 o open 備份到指定目錄下 備份所有資料 mongodump u admin p 12...

mongodb備份與還原

一 備份 安裝完mongodb之後,找到mongodump命令執行位置 我的主機安裝完mongodb。dump命令目錄是 usr local mongodb mongodb linux x86 64 rhel70 3.4.7 bin mongodump 執行命令 usr local mongodb ...

安裝 備份 還原mongodb

安裝 tar zxvf mongodb linux i686 2.0.2 rc2.tgz 我們把 mongodb linux i686 2.0.2 rc2重新命名為mongodb 我們把在mongodb目錄下新建乙個data目錄存放資料 新建乙個log目錄存放日誌 啟動 前台啟動 bin mongo...