MongoDB運維實戰( 簡體 字) | |
作者:張甦,賀磊 | 類別:1. -> 資料庫 -> MongoDB |
出版社:電子工業出版社 | 3dWoo書號: 49918 詢問書籍請說出此書號! 有庫存 NT售價: 345 元 |
出版日:9/1/2018 | |
頁數:228 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121349898 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 MongoDB 3.4新特性
1.1 復制集(Replica Set) 1.2 分片集群(Sharded Cluster) 第2章 MongoDB 3.6新特性 2.1 復制集(Replica Sets) 2.2 分片集群(Sharded Clusters) 第3章 運維實戰:故障案例分析 3.1 調整oplog大小引發的從庫宕機 3.2 hotbackup報錯 3.3 MongoDB最大連接數限制 3.4 MongoDB啟動失敗 3.5 Mongos異常宕機 3.6 sharding集群執行sh.stopBalancer()命令卡住 3.7 Remove shard失敗 3.8 move chunk aborted 3.9 遷移引發的性能抖動 3.10 Mongos連接數異常 3.11 rs.add時報錯operation exceeded time limit 3.12 副本集延遲突然增大到上萬秒 3.13 升級發現infoMessage異常 3.14 對已存在集合shardcollection失敗 3.15 operation exceeded time limit 3.16 強制重新配置副本集 3.17 create index oom 3.18 rs.remove導致從節點crash 第4章 性能調優 4.1 機器負載高 4.2 快速修改庫名 4.3 dbhash檢查一致性 4.4 使用索引卻依舊性能低下 4.5 索引 4.5.1 單列索引 4.5.2 復合索引 4.5.3 多鍵索引 4.5.4 文本索引 4.5.5 2dsphere索引 4.5.6 2d索引 4.5.7 Hash索引 4.5.8 一條SQL創建多個索引 4.6 索引屬性 4.6.1 TTL索引 4.6.2 唯一索引 4.6.3 部分索引 4.6.4 稀疏索引 4.7 在大集合上創建索引 4.8 索引交集 4.9 索引排序 4.10 查詢計劃 4.11 systemprofile 4.12 Profile操作相關 第5章 備份與恢復 5.1 邏輯備份 5.2 Oplog Replay 5.3 物理備份 第6章 高可用架構集群管理 6.1 副本集 6.1.1 冗余和數據可用性 6.1.2 MongoDB中的副本集 6.1.3 自動故障轉移 6.1.4 關于MongoDB的讀操作 6.2 副本集成員狀態 6.3 副本集原理 6.4 復制集成員 6.5 復制集成員類型 6.6 副本集中的主庫 6.7 副本集中的從庫 6.7.1 Priority 0從庫 6.7.2 hidden從庫 6.7.3 延遲從庫 6.8 oplog簡介 6.9 oplog過濾 6.10 副本集的數據復制 6.11 3節點最小副本集架構 6.12 副本集的選舉 6.12.1 writeConcern 6.12.2 Read Preference 6.13 副本集環境搭建 6.14 配置延遲 6.15 從2.6版本升級至3.0版本 6.15.1 升級過程 6.15.2 關于認證 6.15.3 變更存儲引擎 6.15.4 Driver兼容性 6.16 從3.2版本升級至3.4版本 6.16.1 升級過程 6.16.2 啟用不向下兼容的3.4版本功能 6.16.3 升級發現infoMessage異常 6.17 分片 6.17.1 分片和非分片集合 6.17.2 Sharding組建 6.17.3 Shard 6.17.4 Config server 6.17.5 mongos 6.17.6 Shard keys 6.17.7 哈希分片 6.17.8 范圍分片 6.17.9 zone 6.17.10 zone常用命令 6.17.11 Chunk 6.17.12 Chunk遷移 6.17.13 chunksize 6.17.14 Balancer 6.17.15 Balancer運維 6.18 Troubleshoot Sharded Clusters 6.19 在線開啟認證 6.20 分片架構搭建 第7章 監控 7.1 PMM監控MongoDB 7.2 Server組件 7.3 Client組件 7.3.1 安裝Docker 7.3.2 創建PMM數據容器 7.3.3 運行PMM容器,并配置監控登錄用戶名密碼 7.3.4 安裝客戶端 第8章 常用命令 8.1 查詢 8.2 插入 8.3 修改 8.4 刪除 8.5 分片集群常用命令 MongoDB自2009年推出以來,歷經了近十年的發展,在這十年中,數據庫領域可謂經歷了翻天覆地的變化。本書深入剖析MongoDB新舊版本的特性,結合生產案例詳細講解MongoDB的常見故障;引領學習MongoDB索引,以便更好地掌握MongoDB性能調優技巧;描述備份恢復的重要性,讓讀者掌握MongoDB備份恢復技巧;充分利用MongoDB的水平擴展能力,詳解MongoDB復制集、分片架構環境;最后講解如何使用PMM性能監控平臺,做好線上MongoDB的監控工作。
推薦序1
找到屬于你自己的那束光 張甦老師的新書出版,邀我來寫幾句話,下面談談我對數據庫領域變革的一點觀察和理解。MongoDB 自 2009 年推出以來,轉眼已經近十年,這十年間,正是數據庫領域風起云涌的 十年。在同樣的時間進程中,阿里巴巴在 2008年提出去IOE 理念,推動了中國由互聯網至傳統行業的數據應用的深刻變革。我曾經在 2015 年的 DTCC 數據庫大會上提出,我們今天已經進入了“后IOE 時代”,這個時代的典型特征就是“百花齊放”,數據庫新產品的不斷涌現,為我們帶來了新的可能,不同場景可以有多種不同的產品和解決方案,用戶因此獲得了“自由”。而 MongoDB 的出現,因其面向文檔,具有 Schema Free 等靈活優勢,讓用戶在管理文檔、日志,以及基于社交、物流等場景有了一個更好的選擇,于是其市場經歷了快速的增長,并扛起了NoSQL 的大旗,也因此在 DB-Engines 的數據庫流行度排行榜中,MongoDB 榮膺2013和2014 的年度數據庫。2017 年10 月,MongoDB 在納斯達克上市,成為今天市值30 億美元的數據庫公司,這不得不說是近代數據庫歷史上的一個巨大成功。而相應地,另外一個更受歡迎的開源數據庫MySQL,幾經輾轉成為Oracle 的囊中之物,原因何在?最近在做一個MongDB 的遷移,將數據庫的存儲引擎從 MMAPv1 更換為WiredTiger。同時回顧了一下歷史, 2014 年 MongoDB 收購了 WiredTiger 公司,WiredTiger 為其開發了一個專用版本的存儲引擎,今天成為MongoD 的默認存儲引擎,我們不得不欽佩MongoDB 的英明之處。對比一下MySQL 的發展歷程,當MySQL 的最佳存儲引擎 InnoDB 被 Oracle 釜底抽薪收購(2006 年)之后,MySQL 最后被 SUN 收購(2008 年),輾轉落入 Oracle 之手(2009 年),而自2009 年 MySQL 5.5 開始, InnoDB 就成為 MySQL 默認存儲引擎。決定一個產品成敗的是技術,而決定一家公司成敗的,往往是視野。張甦老師的學習和成長,兼具技術和視野,他不斷學習研究和砥礪,使自己獲得了深厚的技術體驗,而選擇MySQL 和MongoDB 入行,更可見他對于開源的信心。他此前出版的《MySQL王者晉級之路》,深受讀者歡迎,而MongoDB 更是指引他向前的“一束光”。現在這束光放射開來,希望能夠讓更多讀者見證MongoDB 的光彩和未來。我也祝福走在技術道路上的每一位朋友,能早日找到指引自己的那束光! 蓋國強,云和恩墨創始人,Oracle ACE 總監 推薦序2 近兩年,隨著互聯網的迅猛發展,Oracle 之外的各種開源數據庫迅速崛起,數據庫領域呈現出了百花齊放、百家爭鳴的局面。MongoDB 就是其中最為奪目的一朵開源之花。在DB-Engines公布的2018 年2 月的數據庫排名中,MongoDB 成為榜單中漲幅最大的一個,上漲了5.47 個百分點,位列榜單第5 名。MongoDB 是可以應用于各種規模的企業、各個行業及各類應用程序的開源數據庫。MongoDB 能夠使企業的數據庫更具敏捷性和可擴展性,各種規模的企業都可以通過使用MongoDB 來創建新的應用。該公司是NoSQL 數據庫技術領域的知名公司。MongoDB 采用分布式基礎架構,并且深受移動應用和Web 應用開發者的歡迎。此外,MongoDB 還是一個基于文件的數據庫。在MongoDB 中,數據被編碼成能夠兼容多種不同數據格式的文件。MongoDB的流行程度是顯而易見的,目前其應用在全球范圍內的下載次數已經突破了1000 萬次。簡單來說,使用MongoDB 能夠提高與客戶之間的工作效率,縮短產品上線時間,以及降低企業成本。MongoDB 是一個基于分布式文件存儲的數據庫,旨在為企業提供可擴展的高性能數據存儲解決方案。其數據庫特點是高性能、易部署、易使用、儲存方便。首先,它支持的數據結構非常松散,是與JSON 相類似的BSON 文檔格式,因此可以存儲比較復雜的數據類型,且該格式文檔比較易讀、高效。其次,MongoDB支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,包括傳統數據庫的功能如二級索引、完整的查詢系統等,而且還支持對數據建立索引。此外,MongoDB 的數據可實現復制和故障恢復,還具有在云端的伸縮性,支持水平的數據庫集群延伸。本書作者張甦先生在開源數據庫領域深耕細作多年,技術功底扎實,實戰經驗豐富,對MongoDB、MySQL 等數據庫都有深入的研究,在各大開源數據庫技術論壇、網站上頗有名氣。更為難得的是,張甦先生擁有豐富的數據庫培訓經驗,擅長深入淺出地講解技術問題,能夠用簡單明了的語言闡述復雜疑難的技術故障。在數據庫領域從業多年,我見過很多技術牛人,但是很多人僅限于自己牛卻不擅長將技術分享給更多的人,他們的價值總是有限的,而且是局限于自身的,只有像張甦先生這樣能做技術、能講技術,還能寫技術的人才能將技術的價值無限放大,讓更多的人受益。本書是兩位作者多年工作和研究經驗的總結,語言簡單明了,實戰案例豐富。本書對工作中常見的各種故障給出了作者的分析和解決方案,具有非常高的實用價值,無論是剛開始學習MongoDB 的小白,還是有一定工作經驗的老DBA,都可以從中受益。張甦先生是一位專業的DBA,也是一位勤奮的寫作者,他的上一本書《MySQL 王者晉級之路》才出版不久,我又收到了《MongoDB 運維實戰》這本書的手稿,在繁忙的工作之余,還有這樣的勤奮和毅力,真是令人欽佩!希望張甦先生能夠寫出更多更優秀的技術書籍,幫助更多即將走上DBA 之路的伙伴。 侯圣文,Oracle ACE 總監、教育專家,恩墨學院院長 前言: 隨著大數據時代的到來及技術的不斷發展,以及互聯網Web 2.0的興起,傳統的關系型數據庫在應付超大規模和高并發的SNS類型的Web 2.0純動態網站時已經顯得力不從心了,暴露了很多難以解決的問題,而非關系型數據庫則由于其本身的特點得到了非常迅速的發展。NoSQL領域首屈一指的就是“芒果”數據庫,即大名鼎鼎的MongoDB。我是從第一個GA版本開始接觸MongoDB的,它在我最孤獨、最寂寞的時候,陪伴著我一路成長。倘若我一直在黑暗中行走,那么MongoDB就是那一束光,指引著我未來前進的方向。 寫此書的目的 我把MySQL和MongoDB當作自己的兩個“孩子”一樣看待,一直想把多年運維數據庫的經驗分享出來,前不久已經出版了一本MySQL的著作《MySQL王者晉級之路》,收到的讀者反饋都不錯,讀者說書很實用,看完之后收獲很大。其實寫書的真正目的就是為了讓大家可以系統地進行學習,少走一些作者在工作中走過的彎路。我的一些學生和朋友經常和我抱怨:“我們公司有一個項目準備用MongoDB,但還得從頭學習,網上針對MongoDB的資料也不多,關鍵還不知道從何學起,MongoDB實戰的書籍也偏少”。這類問題不止一個人和我說過。正因為有了這樣的需求,我們才有了想投入全部精力、認真地去寫一本有關MongoDB實戰方面圖書的沖動。希望《MongoDB運維實戰》能夠真正地幫助大家解決在學習MongoDB數據庫過程中的諸多疑惑,敲開大數據運維的門。 如何閱讀本書 第1、2章主要介紹MongoDB 3.4和MongoDB 3.6這兩個版本的新特性,以復制集架構和分片架構作為整體切入點。MongoDB版本更新到3.X之后發生了巨變,進入了一個新的時代。在引入wiredtiger存儲引擎之后,實現了文檔級別的鎖,提高了并發性。該引擎支持壓縮,節約了存儲成本,具有更簡單高效的高可用架構,維護起來更加輕松。這讓我們對MongoDB 4.X時代更加期待。 第3章是本書中一道亮麗的風景線,是MongoDB的實戰案例分析部分。詳細介紹oplog大小引發的從庫宕機、副本集延遲突然增大到上萬秒、最大連接數限制等問題的處理過程和思路。 第4章是MongoDB的性能調優部分。從索引角度出發,通過各類索引的使用,包括配合執行計劃的查看來梳理性能問題。 第5章介紹MongoDB備份與恢復,主要以邏輯備份和物理備份兩種方式來進行講解,其中會演練oplog replay的過程。 第6章是高可用架構集群管理。核心的兩個部分就是復制集和分片架構,包括副本集、分片架構原理、成員類型、實戰安裝部署過程,以及多種實現方式和管理維護架構中遇到的諸多問題,最后還會介紹升級MongoDB架構版本的注意事項。 第7章介紹MongoDB的監控。主要介紹PMM,它是一款能夠監控MySQL、MongoDB性能的開源平臺。本章會講解server組件和client組件及其安裝過程。 第8章是MongoDB的常用命令。本章列舉一些我們在MongoDB的運維過程中常用的命令,幫助剛接觸NoSQL領域的讀者快速上手生產環境中MongoDB的運維工作,為自己的公司和老板排憂解難。 致謝 在《MySQL王者晉級之路》中已經說了太多感謝的話。這次先要感謝我的好兄弟賀磊,我們一拍即合,經歷了多個日夜,堅持了一年的時間完成了這本MongoDB的圖書。其次,還是要感謝電子工業出版社編輯陳曉猛先生的耐心指導與對我的支持。 這是我出版的第二本數據庫相關的書籍了。第一本是關系型數據庫方向的圖書,本書是NoSQL方向的,未來計劃出版一本人工智能方向的圖書。道行尚淺,還需努力,希望廣大讀者多提寶貴意見。更希望大家可以花些時間,認真品味MongoDB給運維帶來的簡單快樂。 張甦 |