日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

test.php.bak,MongoDB热备份工具:解决官方版备份缺陷

發(fā)布時間:2023/12/20 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 test.php.bak,MongoDB热备份工具:解决官方版备份缺陷 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

賀春旸,凡普金科DBA團(tuán)隊負(fù)責(zé)人,《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控》第一、二版作者,曾任職于中國移動飛信、安卓機(jī)鋒網(wǎng)。致力于MariaDB、MongoDB等開源技術(shù)的研究,主要負(fù)責(zé)數(shù)據(jù)庫性能調(diào)優(yōu)、監(jiān)控和架構(gòu)設(shè)計。

工具下載:點(diǎn)擊文末【閱讀原文】或登錄云盤

前言

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

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

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

中小型數(shù)據(jù)庫備份起來簡單快捷,如果過TB級的數(shù)據(jù)量,那將是痛苦的。

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

概述

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

參考文獻(xiàn):

注意事項

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

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

原理

Percona MongoDB HotBackup熱備份原理:

你可以想象成xtrabackup工具

備份:

首先會啟動一個后臺檢測的進(jìn)程,實(shí)時檢測MongoDB Oplog的變化,一旦發(fā)現(xiàn)oplog有新的日志寫入,立刻將日志寫入到日志文件WiredTiger.backup中(你可以strings WiredTiger.backup查看oplog操作日志的變化);

復(fù)制MongoDB dbpath的數(shù)據(jù)文件和索引文件到指定的備份目錄里;

......

恢復(fù):

將WiredTiger.backup日志進(jìn)行回放,將操作日志變更應(yīng)用到WiredTiger引擎里,最終得到一致性快照恢復(fù);

把備份目錄里的數(shù)據(jù)文件直接拷貝到你的dbpath下,然后啟動MongoDB即可,會自動接入副本集集群。

運(yùn)行

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

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

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

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

shell> pecl install mongo

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

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

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

4、修改pmongo_bak.php配置信息

//*************修改下面的配置信息***************//

$user = "admin"; //使用root用戶權(quán)限

$pwd = '123456';

$host = '192.168.180.26'; //在從庫上熱備

$port = '27017';

$authdb = 'admin'; //權(quán)限認(rèn)證數(shù)據(jù)庫

$BAKDIR = "/data/bak/";

$BAKDIR .= date('Y_m_d_H_i_s');

//*************下面的代碼不用修改***************//

$m = new MongoBak($user,$pwd,$host,$port,$authdb,$BAKDIR);

......

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

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

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

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

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

下載方式

登錄云盤鏈接:

即可下載工具腳本

現(xiàn)通過dbaplus社群免費(fèi)為大家提供Percona MongoDB HotBackup熱備份工具的下載使用。若使用過程中有任何問題或建議,可隨時與我們聯(lián)系,歡迎大家試用!

相關(guān)鏈接:

更多免費(fèi)工具&腳本

總結(jié)

以上是生活随笔為你收集整理的test.php.bak,MongoDB热备份工具:解决官方版备份缺陷的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。