偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

dba+工具:MongoDB熱備份工具,解決官方版?zhèn)浞萑毕?/h1>

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) MongoDB
目前官方MongoDB社區(qū)版是不支持Hot Backup熱備份的,我們只能通過(guò)mongodump等邏輯備份工具導(dǎo)出bson文件,再mongorestore導(dǎo)入,類(lèi)似MySQL的mysqldump工具。

dba+工具:MongoDB熱備份工具,解決官方版?zhèn)浞萑毕? title=

前言

目前官方MongoDB社區(qū)版是不支持Hot Backup熱備份的,我們只能通過(guò)mongodump等邏輯備份工具導(dǎo)出bson文件,再mongorestore導(dǎo)入,類(lèi)似MySQL的mysqldump工具。

在備份副本集時(shí),我們需指定--oplog選項(xiàng)記錄備份間產(chǎn)生的增量數(shù)據(jù),類(lèi)似mysqldump --single-transaction --master-data=2(做一致性快照并記錄當(dāng)前的binlog點(diǎn))。

對(duì)副本集的成員恢復(fù),需先切成單機(jī)版,mongorestore必須指定--oplogReplay選項(xiàng),以恢復(fù)到某一時(shí)刻的快照,最后還需填充oplog(增量數(shù)據(jù)以哪個(gè)位置點(diǎn)開(kāi)始斷點(diǎn)續(xù)傳),mongorestore -d local -c oplog.rs dump/oplog.bson,最后一步再切為副本集成員重新啟動(dòng)。

中小型數(shù)據(jù)庫(kù)備份起來(lái)簡(jiǎn)單快捷,如果過(guò)TB級(jí)的數(shù)據(jù)量,那將是痛苦的。

如果你的oplog設(shè)置過(guò)小,很有可能在備份恢復(fù)這段時(shí)間,oplog被覆蓋重寫(xiě),那么你將永遠(yuǎn)無(wú)法加入副本集集群里。

概述

Percona MongoDB 3.2版本默認(rèn)開(kāi)始支持WiredTiger引擎的在線熱備份,解決了官方版只能通過(guò)mongodump邏輯備份這一缺陷。

參考文獻(xiàn):

https://www.percona.com/doc/percona-server-for-mongodb/LATEST/hot-backup.html#hot-backup

注意事項(xiàng)

1、要在當(dāng)前dbpath中對(duì)數(shù)據(jù)庫(kù)進(jìn)行熱備份,請(qǐng)?jiān)赼dmin數(shù)據(jù)庫(kù)上以管理員身份運(yùn)行createBackup命令,并指定備份目錄。

2、可以替換一臺(tái)從庫(kù)為Percona MongoDB,做備份使用。(我這里實(shí)測(cè)是Percona MongoDB 3.4版本)

原理

Percona MongoDB HotBackup熱備份原理:

你可以想象成xtrabackup工具

備份:

  • 首先會(huì)啟動(dòng)一個(gè)后臺(tái)檢測(cè)的進(jìn)程,實(shí)時(shí)檢測(cè)MongoDB Oplog的變化,一旦發(fā)現(xiàn)oplog有新的日志寫(xiě)入,立刻將日志寫(xiě)入到日志文件WiredTiger.backup中(你可以strings WiredTiger.backup查看oplog操作日志的變化);
  • 復(fù)制MongoDB dbpath的數(shù)據(jù)文件和索引文件到指定的備份目錄里;
  • ......

恢復(fù):

  • 將WiredTiger.backup日志進(jìn)行回放,將操作日志變更應(yīng)用到WiredTiger引擎里,最終得到一致性快照恢復(fù);
  • 把備份目錄里的數(shù)據(jù)文件直接拷貝到你的dbpath下,然后啟動(dòng)MongoDB即可,會(huì)自動(dòng)接入副本集集群。

運(yùn)行

這里我封裝了一個(gè)PHP腳本,直接在SHELL里運(yùn)行即可。

1、環(huán)境準(zhǔn)備:

 

  1. shell> yum install -y php-pear php-devel php gcc openssl openssl-devel cyrus-sasl cyrus-sasl-devel 

2、php-mongo驅(qū)動(dòng)安裝:

 

  1. shell> pecl install mongo 

把extension=mongo.so加入到/etc/php.ini最后一行。

3、創(chuàng)建mongodb超級(jí)用戶權(quán)限(備份時(shí)使用)

 

  1. db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]}) 

4、修改pmongo_bak.php配置信息

 

  1. //*************修改下面的配置信息***************//  
  2. $user = "admin"; //使用root用戶權(quán)限  
  3. $pwd = '123456';   
  4. $host = '192.168.180.26'; //在從庫(kù)上熱備  
  5. $port = '27017' 
  6. $authdb = 'admin'; //權(quán)限認(rèn)證數(shù)據(jù)庫(kù)  
  7. $BAKDIR = "/data/bak/" 
  8. $BAKDIR .= date('Y_m_d_H_i_s');  
  9.  
  10. //*************下面的代碼不用修改***************//  
  11. $m = new MongoBak($user,$pwd,$host,$port,$authdb,$BAKDIR);  
  12. ...... 

 

5、前臺(tái)運(yùn)行:

 

  1. shell> php pmongo_bak.php(以root權(quán)限運(yùn)行) 

6、寫(xiě)入系統(tǒng)crontab里

 

  1. 00 01 * * * /usr/bin/php /root/php_mongodb/pmongo_bak.php > /root/php_mongodb/bak_status.log 2 >&1 

7、不支持遠(yuǎn)程備份,需將備份腳本部署在從庫(kù)里。如果你想把數(shù)據(jù)備份到遠(yuǎn)程,可以采用NFS等文件系統(tǒng)mount掛載上。 

 

責(zé)任編輯:龐桂玉 來(lái)源: DBAplus社群
相關(guān)推薦

2020-05-19 11:46:50

MongoDB圖形開(kāi)源

2023-06-27 07:29:30

dba+開(kāi)源工具Binlog

2023-10-31 07:27:22

開(kāi)源工具MySQL協(xié)議

2011-03-23 17:21:42

2023-08-29 07:22:06

MySQL數(shù)據(jù)工具故障恢復(fù)

2023-01-28 07:52:49

2022-05-30 11:21:25

數(shù)據(jù)庫(kù)MySQL工具

2023-07-19 07:29:00

2011-09-15 09:49:57

HBase

2009-12-28 15:44:45

Fedora rsyn

2015-03-18 13:39:35

MySQLBackup數(shù)據(jù)庫(kù)備份種類(lèi)

2011-03-29 15:15:06

熱備份熱修復(fù)

2011-10-17 16:11:00

MySQL

2023-08-11 07:20:04

開(kāi)源工具項(xiàng)目

2011-03-07 09:51:08

備份工具Ntbackup

2010-09-14 09:15:03

RsyncLinux備份遠(yuǎn)程數(shù)據(jù)同步

2011-07-28 17:33:02

服務(wù)器WindowsServ

2009-12-24 15:47:16

免費(fèi)虛擬化備份工具

2018-06-27 08:48:48

Linux系統(tǒng)備份

2023-01-12 15:08:54

Windows備份和克隆工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)