**:
mongodb資料備份和還原主要分為二種,一種是針對於庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport。
一,mongodump備份資料庫
1,常用命令格
mongodump -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -o 檔案存在路徑
如果沒有使用者誰,可以去掉-u和-p。
如果匯出本機的資料庫,可以去掉-h。
如果是預設埠,可以去掉--port。
如果想匯出所有資料庫,可以去掉-d。
2,匯出所有資料庫
[root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/connected to: 127.0.0.1
tue dec 3 06:15:55.448 all dbs
tue dec 3 06:15:55.449 database: test to /home/zhangy/mongodb/test
tue dec 3 06:15:55.449 test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson
tue dec 3 06:15:55.450 1 objects
tue dec 3 06:15:55.450 test.posts to /home/zhangy/mongodb/test/posts.bson
tue dec 3 06:15:55.480 0 objects
。。。。。。。。。。。。。。。。。。。。省略。。。。。。。。。。。。。。。。。。。。。。。。。。
3,匯出指定資料庫
[root@localhost mongodb]# mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/connected to: 192.168.1.108
tue dec 3 06:11:41.618 database: tank to /home/zhangy/mongodb/tank
tue dec 3 06:11:41.623 tank.system.indexes to /home/zhangy/mongodb/tank/system.indexes.bson
tue dec 3 06:11:41.623 2 objects
tue dec 3 06:11:41.623 tank.contact to /home/zhangy/mongodb/tank/contact.bson
tue dec 3 06:11:41.669 2 objects
tue dec 3 06:11:41.670 metadata for tank.contact to /home/zhangy/mongodb/tank/contact.metadata.json
tue dec 3 06:11:41.670 tank.users to /home/zhangy/mongodb/tank/users.bson
tue dec 3 06:11:41.685 2 objects
tue dec 3 06:11:41.685 metadata for tank.users to /home/zhangy/mongodb/tank/users.metadata.json
三,mongorestore還原資料庫
1,常用命令格式
mongorestore -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 --drop 檔案存在路徑
--drop的意思是,先刪除所有的記錄,然後恢復。
2,恢復所有資料庫到mongodb中
[root@localhost mongodb]# mongorestore /home/zhangy/mongodb/ #這裡的路徑是所有庫的備份路徑
3,還原指定的資料庫
[root@localhost mongodb]# mongorestore -d tank /home/zhangy/mongodb/tank/ #tank這個資料庫的備份路徑[root@localhost mongodb]# mongorestore -d tank_new /home/zhangy/mongodb/tank/ #將tank還有tank_new資料庫中
這二個命令,可以實現資料庫的備份與還原,檔案格式是json和bson的。無法指寫到表備份或者還原。
四,mongoexport匯出表,或者表中部分字段
1,常用命令格式
mongoexport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 -f 字段 -q 條件匯出 --csv -o 檔名
上面的引數好理解,重點說一下:
-f 匯出指欄位,以字型大小分割,-f name,email,age匯出name,email,age這三個字段
-q 可以根查詢條件匯出,-q '' 匯出uid為100的資料
--csv 表示匯出的檔案格式為csv的,這個比較有用,因為大部分的關係型資料庫都是支援csv,在這裡有共同點
2,匯出整張表
[root@localhost mongodb]# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.datconnected to: 127.0.0.1
exported 4 records
3,匯出表中部分字段
[root@localhost mongodb]# mongoexport -d tank -c users --csv -f uid,name,*** -o tank/users.csvconnected to: 127.0.0.1
exported 4 records
4,根據條件敢出資料
[root@localhost mongodb]# mongoexport -d tank -c users -q '}' -o tank/users.jsonconnected to: 127.0.0.1
exported 3 records
五,mongoimport匯入表,或者表中部分字段
1,常用命令格式
1.1,還原整表匯出的非csv檔案
mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsert --drop 檔名
重點說一下--upsert,其他引數上面的命令已有提到,--upsert 插入或者更新現有資料
1.2,還原部分欄位的匯出檔案
mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsertfields 字段 --drop 檔名
--upsertfields根--upsert一樣
1.3,還原匯出的csv檔案
mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --type 型別 --headerline --upsert --drop 檔名
上面三種情況,還可以有其他排列組合的。
2,還原匯出的表資料
[root@localhost mongodb]# mongoimport -d tank -c users --upsert tank/users.datconnected to: 127.0.0.1
tue dec 3 08:26:52.852 imported 4 objects
3,部分欄位的表資料匯入
[root@localhost mongodb]# mongoimport -d tank -c users --upsertfields uid,name,*** tank/users.dat
connected to: 127.0.0.1
tue dec 3 08:31:15.179 imported 4 objects
4,還原csv檔案
[root@localhost mongodb]# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv
connected to: 127.0.0.1
tue dec 3 08:37:21.961 imported 4 objects
總體感覺,mongodb的備份與還原,還是挺強大的,雖然有點麻煩。
這些物理競賽經驗分享,先碼後看,先看先受益!
高二階段你們已學完了所有知識點,這一年是你們提公升水平的 階段,這時你們需要的是對知識更深刻的理解以及建立更完整的知識框架,可以去找一些普通物理看看,但切忌浮光掠影。普通物理提高的是視野而非解題水平,當你閱讀完之後,再回頭看看之前刷過的題,你一定會對它有新的認識和更深刻的把握。初入物理競賽,帶的是五...
先碼後看 Hash衝突的解決方式 侵立刪
在理想狀態下,雜湊函式可以將關鍵字均勻的分散到陣列的不同位置,不會出現兩個關鍵字雜湊值相同 假設關鍵字數量小於陣列的大小 的情況。但是在實際使用中,經常會出現多個關鍵字雜湊值相同的情況 被對映到陣列的同乙個位置 我們將這種情況稱為雜湊衝突。為了解決雜湊衝突,主要採用下面兩種方式 分離鍊錶法 分散鍊錶...
bash登入過程 其實還不太了解,先碼後看
在剛登入linux時,首先啟動 etc profile 檔案,然後再啟動使用者目錄下的 bash profile bash login或 profile檔案中的其中乙個,執行的順序為 bash profile bash login profile。如果 bash profile檔案存在的話,一般還會...