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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows mysqldump備份指令碼WindowsMySql指令碼
- Mongodb的備份恢復與匯出匯入MongoDB
- MySQL 8:備份&匯入【備忘】MySql
- MYSQL資料匯出備份、匯入的幾種方式MySql
- Docker容器中的備份、恢復、遷移、匯入、匯出Docker
- mysqldump 備份匯出資料排除某張表或多張表MySql
- 使用shell 指令碼備份資料指令碼
- Linux mysql 備份和匯入命令LinuxMySql
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- 批量備份還原匯入與匯出MongoDB資料方式昝璽MongoDB
- 備份指令碼指令碼
- LInux_壓縮和備份
- PostgreSQL邏輯備份恢復--pg_dump匯出及psql匯入案例SQL
- shell 備份檔案指令碼+自動清理指令碼
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- MongoDB 資料遷移 備份 匯入(自用)MongoDB
- mysqldump備份技巧分享MySql
- Mysqldump的備份流程MySql
- MySQLDump的備份方法MySql
- mysql備份指令碼MySql指令碼
- ORACLE備份指令碼Oracle指令碼
- rman 備份指令碼指令碼
- 【mysqldump】mysqldump及備份恢復示例MySql
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysql匯出檔案及備份操作筆記MySql筆記
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- DM7使用DMRMAN工具匯入備份集
- 基於Linux指令碼,對日誌進行定時壓縮備份Linux指令碼
- 自動備份指令碼指令碼
- Oracle RMAN備份以及壓縮原理分析Oracle
- 簡單的mysqldump備份(windows)MySqlWindows
- mysqldump 資料庫備份程式MySql資料庫
- 兩套mysql備份指令碼MySql指令碼
- 資料庫備份指令碼資料庫指令碼
- expdp 邏輯備份指令碼指令碼
- Linux系統配置檔案簡易shell備份指令碼Linux指令碼
- Shell多執行緒備份資料庫的指令碼執行緒資料庫指令碼
- mysqldump全量備份+mysqlbinlog二進位制日誌增量備份MySql