91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Percona MongoDB HotBackup熱備份工具

發布時間:2020-06-22 14:25:35 來源:網絡 閱讀:1776 作者:hcymysql 欄目:MySQL數據庫

Percona MongoDB HotBackup熱備份工具


前言:

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


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


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


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


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


概述:

Percona MongoDB3.2版本默認開始支持WiredTiger引擎的在線熱備份,解決了官方版只能通過mongodump邏輯備份這一缺陷。


參考文獻:

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


注意事項:

1、要在當前dbpath中對數據庫進行熱備份,請在admin數據庫上以管理員身份運行createBackup命令,并指定備份目錄。

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


Percona MongoDB HotBackup熱備份原理:

你可以想象成xtrabackup工具


備份:

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

2、復制MongoDB dbpath的數據文件和索引文件到指定的備份目錄里。

......


恢復:

1、將WiredTiger.backup日志進行回放,將操作日志變更應用到WiredTiger引擎里,最終得到一致性快照恢復。

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



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

1、環境準備:

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


2、php-mongo驅動安裝:

shell> pecl install mongo

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


3、創建mongodb超級用戶權限(備份時使用)

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


4、修改pmongo_bak.php配置信息

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

$user = "admin"; //使用root用戶權限

$pwd = '123456';

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

$port = '27017';

$authdb = 'admin'; //權限認證數據庫

$BAKDIR = "/data/bak/";

$BAKDIR .= date('Y_m_d_H_i_s');

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

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

......


5、前臺運行:

shell> php pmongo_bak.php(以root權限運行)


6、寫入系統crontab里

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


7、不支持遠程備份,需將備份腳本部署在從庫里。如果你想把數據備份到遠程,可以采用NFS等文件系統mount掛載上。


下載地址:

https://github.com/hcymysql/PMongo-HotBackup





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 天镇县| 莱州市| 府谷县| 伊宁市| 科技| 永兴县| 商丘市| 安吉县| 图木舒克市| 长寿区| 五大连池市| 淮南市| 蒲城县| 抚远县| 秭归县| 天柱县| 五台县| 嘉鱼县| 资讯| 大冶市| 鹿泉市| 嘉祥县| 台山市| 凤山县| 万载县| 湘阴县| 长泰县| 虹口区| 抚顺县| 肃宁县| 中卫市| 昭平县| 南平市| 曲松县| 南康市| 南木林县| 通山县| 镶黄旗| 城固县| 靖西县|