mysqldump壓縮備份匯出匯入(含定期備份shell指令碼)
mysqldump工具自帶選項沒有對
匯出備份檔案壓縮功能,可結合
gzip只使用一條命令壓縮
匯出檔案,方法如下:
mysqldump壓縮匯出:
#
mysqldump -h192.168.0.3 -P3306 -uroot -ppwd123 --single-transaction --default-character-set=utf8 -R -E zabbix --log-error=zabbix2018030709.log |gzip >
zabbix20180307
09.sql.gz
引數解釋:
-h 正式DB IP
-P 正式DB Port
-u 正式DB賬號
-p 正式DB賬號對應密碼
-R 匯出儲存過程和函式
-E 匯出事件
--single-transaction 事務一致性備份
--default-character-set 字符集,和正式db字符集一致
--log-error 錯誤日誌檔案,如果備份時無錯誤發生,只寫空檔案,有錯誤話寫具體記憶體
zabbix 匯出DB name
mysqldump壓縮匯出後匯入:
#
gunzip <
zabbix2018030709
.sql.gz |mysql -uroot -p
pwd123
zabbix
將mysqldump壓縮匯出寫成shell指令碼(可供conrtab定時執行)
#
vi zabbixdbbak.sh
FILENAME=`date +%Y%m%d%H`
cd /data/dbbak
mysqldump -h192.168.0.3 -P3306 -uroot -ppwd123 --single-transaction --default-character-set=utf8 -R -E zabbix --log-error='zabbix'$FILENAME.log |gzip > 'zabbix'$FILENAME.sql.gz
find /data/dbbak/zabbix*.gz -mtime +7 -exec rm -f {} \;
find /data/dbbak/zabbix*.log -mtime +7 -exec rm -f {} \;
#
crontab -e
30 0 * * * sh /data/dbbak/zabbixdbbak.sh 1>/data/dbbak/zabbixdbbakcron.log 2>>/data/dbbak/zabbixdbbakcron.bad
mysqldump匯出資料一致性主要有single-transaction 和 lock-all-tables 二選一控制的:
single-transaction
是在匯出開始時設定事務隔離狀態並使用一致性快照開始事務,而後馬上unlock tables,
然後執行匯出,匯出過程不影響其它事務或業務連線,但只支援類似innodb多版本特性的引擎,
因為保證了即使匯出期間其它操作(事務點t2)改變了資料,而匯出時仍能取出匯出開始的事務點t1時的資料。
簡單地說,就是透過回滾段能記錄不同的事務點的各版本資料
single-transaction 的流程:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
SHOW MASTER STATUS -- 這一步就是取出 binlog index and position
UNLOCK TABLES
...dump...
lock-all-tables
是一開始執行 FLUSH TABLES WITH READ LOCK; 加全域性讀鎖,會阻塞其它寫操作,直到dump完畢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2151580/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle expdp/impdp匯入匯出備份資料庫指令碼Oracle資料庫指令碼
- mysqldump 備份指令碼MySql指令碼
- mysqldump備份指令碼MySql指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- 設定自動匯出(exp)備份指令碼指令碼
- Mongodb的備份恢復與匯出匯入MongoDB
- [Mysql]——備份、還原、表的匯入匯出MySql
- Oracle資料庫備份與恢復之匯出/匯入(EXP/IMP)、熱備份和冷備份Oracle資料庫
- WINDOWS下部署ORACLE邏輯匯出備份指令碼WindowsOracle指令碼
- mysqldump備份不輸入密碼直接備份MySql密碼
- MySQL 8:備份&匯入【備忘】MySql
- mysqldump備份指令碼一例MySql指令碼
- MYSQL資料匯出備份、匯入的幾種方式MySql
- mysql 匯入 mysqldump 備份得資料保 gone away錯誤MySqlGo
- Rman備份的shell指令碼指令碼
- mysqldump 全量和增量備份指令碼MySql指令碼
- Docker容器中的備份、恢復、遷移、匯入、匯出Docker
- Oracle expdp/impdp匯出匯入命令及資料庫備份Oracle資料庫
- Oracle備份與恢復系列 五 邏輯匯入匯出Oracle
- CSDN部落格匯出備份工具
- 關於oracle的備份 匯入Oracle
- mysqldump 備份匯出資料排除某張表或多張表MySql
- event中有多餘的分號引起mysqldump備份匯入時報錯MySql
- MySQL 5.5 Slave節點備份指令碼(mysqldump)MySql指令碼
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- 使用exp/imp匯出匯入資料(邏輯備份恢復)
- 使用shell 指令碼備份資料指令碼
- mysql定時備份shell指令碼MySql指令碼
- ORACLE自動備份shell指令碼Oracle指令碼
- rman備份的shell指令碼(例子)指令碼
- Linux mysql 備份和匯入命令LinuxMySql
- mysql資料庫備份匯入命令MySql資料庫
- 批量備份還原匯入與匯出MongoDB資料方式昝璽MongoDB
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- linux 下RMAN備份shell指令碼Linux指令碼
- rman備份和增量備份指令碼指令碼
- ORACLE備份中的壓縮Oracle
- 備份指令碼指令碼