成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教你如何利用MySQL學習MongoDB之備份和恢復

數據庫 MySQL 其他數據庫 MongoDB
在上文中,我們了解了教你如何利用MySQL學習MongoDB之授權和權限,本文中我們繼續我們的學習之旅,學習兩者的備份和恢復。

在上文中,我們了解了教你如何利用MySQL學習MongoDB之授權和權限,本文中我們繼續我們的學習之旅,學習兩者的備份和恢復。

在數據庫表丟失或損壞的情況下,備份你的數據庫是很重要的。如果發生系統崩潰,你肯定想能夠將你的表盡可能丟失最少的數據恢復到崩潰發生時的狀態。

1、MySQL備份和恢復

MySQL備份方式大體上分為以下3種:

直接拷貝數據庫文件

使用mysqlhotcopy備份數據庫

使用mysqldump備份數據庫

(1)、直接拷貝數據庫文件

最為直接、快速、方便,缺點是基本上不能實現增量備份。為了保證數據的一致性,需要在靠背文件前,執行以下 SQL 語句:

FLUSH TABLES WITH READ LOCK;

也就是把內存中的數據都刷新到磁盤中,同時鎖定數據表,以保證拷貝過程中不會有新的數據寫入。這種方法備份出來的數據恢復也很簡單,直接拷貝回原來的數據庫目錄下即可。

但對于 Innodb 類型表來說,還需要備份其日志文件,即 ib_logfile* 文件。因為當 Innodb 表損壞時,就可以依靠這些日志文件來恢復。

(2)、使用mysqlhotcopy備份數據庫

mysqlhotcopy 是perl程序。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 來快速備份數據庫。對于備份數據庫或單個表來說它是最快的途徑,但它只能運行在本地服務器上,且mysqlhotcopy 只能備份 MyISAM表,對于Innodb表則無招可施了。

(3)、使用mysqldump備份數據庫

mysqldump 是SQL級別的備份,它將數據表導成 SQL 腳本文件,在不同的 MySQL 版本之間升級時相對比較合適,這也是最主流的備份方法。

2、MongoDB備份和恢復

MongoDB提供了兩個命令來備份(mongodump )和恢復(mongorestore )數據庫。

(1)、mongodump備份工具

我們先看一下此工具的幫助信息:

  1. [root@localhost bin]# ./mongodump --help  
  2. options:  
  3. --help produce help message  
  4. -v [ --verbose ] be more verbose (include multiple times for more  
  5. verbosity e.g. -vvvvv)  
  6. -h [ --host ] arg mongo host to connect to ( /s1,s2 for  
  7. sets)  
  8. --port arg server port. Can also use --host hostname:port  
  9. --ipv6 enable IPv6 support (disabled by default)  
  10. -u [ --username ] arg username  
  11. -p [ --password ] arg password  
  12. --dbpath arg directly access mongod database files in the given  
  13. path, instead of connecting to a mongod server -  
  14. needs to lock the data directory, so cannot be used  
  15. if a mongod is currently accessing the same path  
  16. --directoryperdb if dbpath specified, each db is in a separate  
  17. directory  
  18. -d [ --db ] arg database to use  
  19. -c [ --collection ] arg collection to use (some commands)  
  20. -o [ --out ] arg (=dump) output directory or "-" for stdout  
  21. -q [ --query ] arg json query  
  22. --oplog Use oplog for point-in-time snapshotting  
  23. --repair try to recover a crashed database  
  24. [root@localhost bin]#  

例如我們的系統中有一個叫做”foo”庫,下面我們將演示如何將這個庫備份出來:

  1. [root@localhost bin]# ./mongodump -d foo -o /data/dump  
  2. connected to: 127.0.0.1  
  3. DATABASE: foo to /data/dump/foo  
  4. foo.system.indexes to /data/dump/foo/system.indexes.bson  
  5. 3 objects  
  6. foo.system.users to /data/dump/foo/system.users.bson  
  7. 1 objects  
  8. foo.t2 to /data/dump/foo/t2.bson  
  9. 1 objects  
  10. foo.t1 to /data/dump/foo/t1.bson  
  11. 2 objects  
  12. [root@localhost bin]#  

通過工具返回信息,我們可以看到foo中的數據已經被備份成bson格式的文件了, 接下來我們到備份的目錄下去驗證一下:

  1. [root@localhost dump]# ll /data/dump/foo/  
  2. 總計 16  
  3. -rw-r--r-- 1 root root 193 04-22 11:55 system.indexes.bson  
  4. -rw-r--r-- 1 root root 91 04-22 11:55 system.users.bson  
  5. -rw-r--r-- 1 root root 66 04-22 11:55 t1.bson  
  6. -rw-r--r-- 1 root root 49 04-22 11:55 t2.bson  
  7. [root@localhost dump]#  

結果證明foo庫中的表已經被成功備份出來,接下來我們將演示如何將備份恢復回去。

(2)、mongorestore恢復工具

我們先看一下此工具的幫助信息:

  1. [root@localhost bin]# ./mongorestore --help  
  2. usage: ./mongorestore [options] [directory or filename to restore from]  
  3. options:  
  4. --help produce help message  
  5. -v [ --verbose ] be more verbose (include multiple times for more  
  6. verbosity e.g. -vvvvv)  
  7. -h [ --host ] arg mongo host to connect to ( /s1,s2 for sets)  
  8. --port arg server port. Can also use --host hostname:port  
  9. --ipv6 enable IPv6 support (disabled by default)  
  10. -u [ --username ] arg username  
  11. -p [ --password ] arg password  
  12. --dbpath arg directly access mongod database files in the given  
  13. path, instead of connecting to a mongod server -  
  14. needs to lock the data directory, so cannot be used  
  15. if a mongod is currently accessing the same path  
  16. --directoryperdb if dbpath specified, each db is in a separate  
  17. directory  
  18. -d [ --db ] arg database to use  
  19. -c [ --collection ] arg collection to use (some commands)  
  20. --objcheck validate object before inserting  
  21. --filter arg filter to apply before inserting  
  22. --drop drop each collection before import  
  23. --oplogReplay replay oplog for point-in-time restore  
  24. [root@localhost bin]# 

例如我們先將”foo”庫刪除了:

  1. [root@localhost bin]# ./mongo  
  2. MongoDB shell version: 1.8.1  
  3. connecting to: test  
  4. > use foo  
  5. switched to db foo  
  6. > db.dropDatabase();  
  7. "dropped" : "foo""ok" : 1 }  
  8. > show dbs  
  9. admin 0.0625GB  
  10. local (empty)  
  11. test 0.0625GB  

然后下面我們將演示如何恢復這個庫:

  1. [root@localhost bin]# ./mongorestore --directoryperdb /data/dump  
  2. connected to: 127.0.0.1  
  3. Sun Apr 22 12:01:27 /data/dump/foo/t1.bson  
  4. Sun Apr 22 12:01:27 going into namespace [foo.t1]  
  5. Sun Apr 22 12:01:27 2 objects found  
  6. Sun Apr 22 12:01:27 /data/dump/foo/t2.bson  
  7. Sun Apr 22 12:01:27 going into namespace [foo.t2]  
  8. Sun Apr 22 12:01:27 1 objects found  
  9. Sun Apr 22 12:01:27 /data/dump/foo/system.users.bson  
  10. Sun Apr 22 12:01:27 going into namespace [foo.system.users]  
  11. Sun Apr 22 12:01:27 1 objects found  
  12. Sun Apr 22 12:01:27 /data/dump/foo/system.indexes.bson  
  13. Sun Apr 22 12:01:27 going into namespace [foo.system.indexes]  
  14. Sun Apr 22 12:01:27 { name"_id_", ns: "foo.system.users"key: { _id: 1 }, v: 0 }  
  15. Sun Apr 22 12:01:27 { name"_id_", ns: "foo.t2"key: { _id: 1 }, v: 0 }  
  16. Sun Apr 22 12:01:27 { name"_id_", ns: "foo.t1"key: { _id: 1 }, v: 0 }  
  17. Sun Apr 22 12:01:27 3 objects found  
  18. [root@localhost bin]# 

通過工具返回信息,我們可以看到foo中的數據已經被恢復回來了, 接下來我們到庫里去驗證一下:

  1. [root@localhost bin]# ./mongo  
  2. MongoDB shell version: 1.8.1  
  3. connecting to: test  
  4. > use foo  
  5. switched to db foo  
  6. > show collections;  
  7. system.indexes  
  8. system.users  
  9. t1  
  10. t2  

結果證明foo庫表已經被成功恢復回來了。

 

【編輯推薦】

  1. 教你如何利用MySQL學習MongoDB之SQL語法
  2. 教你如何利用MySQL學習MongoDB之數據存儲結構
  3. 如何解決PHP+MySQL出現亂碼的現象
  4. 教你如何利用MySQL學習MongoDB之安裝篇
  5. MySQL配置時提示無法連接到MySQL本地服務器
責任編輯:艾婧 來源: itpub
相關推薦

2011-05-24 09:23:16

MySQLMongoDB

2011-05-24 09:51:07

MySQLMongoDB

2011-05-23 09:23:19

MySQLMongoDB

2011-05-24 09:10:24

MySQLMongoDB

2011-05-23 13:30:00

MySQLMongoDB

2023-08-03 07:39:10

MongoDB數據備份

2010-04-22 18:37:18

Aix系統

2023-12-07 15:09:23

2010-05-26 13:50:15

MySQL備份

2010-03-31 10:39:40

RMANOracle

2017-06-22 08:41:58

MySQLibd文件恢復數據

2011-03-04 14:39:03

MySQL數據庫mysqldump

2015-10-21 14:07:17

Oracle備份Oracle恢復

2011-08-04 18:27:55

注冊表

2010-05-21 18:15:41

MySQL 備份

2017-11-13 13:33:09

MySQL全備份恢復表

2013-11-08 09:31:21

數據備份企業安全

2009-11-20 09:29:53

2011-09-14 15:30:00

MongoDB

2023-11-02 13:34:00

云計算聯合學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91亚洲国产成人久久精品网站 | 免费中文字幕日韩欧美 | 国产一区二区在线免费播放 | 国产色片 | 综合五月婷 | 亚洲资源站 | 午夜影院 | 一区不卡在线观看 | 在线成人 | 亚洲精品电影在线观看 | 久久久青草婷婷精品综合日韩 | 91精品国产色综合久久不卡98口 | 国产精品激情 | 久久精品男人的天堂 | www在线视频 | 中文字幕 在线观看 | 欧美精品乱码久久久久久按摩 | 九九热免费看 | 在线亚洲一区二区 | 国产午夜在线 | 91色网站 | 久99久视频| 日本亚洲精品成人欧美一区 | 国产日韩精品视频 | 在线一级片 | 在线视频a| 精品一二三区 | 亚洲精品欧美 | 九色在线观看 | 国产精品揄拍一区二区久久国内亚洲精 | 久久久久99 | 欧美中文字幕一区二区三区亚洲 | 久久精品二区 | 国产成人精品一区二区三区在线 | 日日天天 | 91美女在线| 天天曰夜夜 | 欧美 日韩 中文 | 视频二区 | 久久久国产一区二区三区 | 韩国精品在线 |