–single-transaction 功能:InnoDB “熱備” 。對(duì)于InnoDB表不鎖表,開啟一致性快照備份.使用這個(gè)參數(shù)會(huì)在備份時(shí)調(diào)整隔離級(jí)別為RR同時(shí)開啟快照備份
2021-07-20T02:48:26.478282Z57 Connect [email protected] onusing Socket2021-07-20T02:48:26.478440Z57 Query /*!40100 SET @@SQL_MODE='' */2021-07-20T02:48:26.478531Z57 Query /*!40103 SET TIME_ZONE='+00:00' */2021-07-20T02:48:26.478601Z57 Query /*!80000 SET SESSION information_schema_stats_expiry=0 */2021-07-20T02:48:26.478654Z57 Query SET SESSION NET_READ_TIMEOUT= 86400, SESSION NET_WRITE_TIMEOUT= 864002021-07-20T02:48:26.478719Z57 Query FLUSH /*!40101 LOCAL */ TABLES2021-07-20T02:48:26.480218Z57 Query FLUSH TABLES WITH READ LOCK2021-07-20T02:48:26.480292Z57 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-07-20T02:48:26.480341Z57 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */–flush-logs 在備份開始時(shí)刷新一個(gè)新的二進(jìn)制日志文件
特殊對(duì)象備份-R -E –triggers 備份存儲(chǔ)過程,函數(shù).事件
–max-allowed-packet=128M 默認(rèn)是24M.最大可以設(shè)置1G
–where 導(dǎo)出指定條件的數(shù)據(jù)
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock scsales_prd T_HM_ROOMNO_VIEW_LOG_bak1 --where="pkid<10010">all.sql單庫備份:
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock world --single-transaction>all.sql單表備份:
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock world city --single-transaction>all.sql最后提供一個(gè)生產(chǎn)經(jīng)常使用的mysqldump完整版
mysqldump -uroot -p123 -A --master-data=https://www.520longzhigu.com/shenghuo/2 --single-transaction -R -E --triggers --max-allowed-packet=128M --flush-logs>/opt/full.sql以上就是對(duì)mysql的邏輯備份方式mysqldump的總結(jié).
三 物理備份方式介紹說到物理備份方式.在MySQL8.0之前我們可以選擇的物理備份工具都是PXB 從MySQL8017版本之后我們多了一種選擇.那就是MySQL自帶的clone plguin
3.1 PXB介紹PXB是percona開源出來的一個(gè)物理備份工具.可以實(shí)現(xiàn)innodb的熱備.實(shí)現(xiàn)原理是利用了mysql的crash recovery原理.
首先介紹xtrabackup的實(shí)現(xiàn)原理:
1.執(zhí)行備份命令之后pxb先獲取到當(dāng)前的lsn.然后開始拷貝redo文件.同時(shí)開啟一個(gè)后臺(tái)線程監(jiān)控redo的實(shí)時(shí)變化同步到拷貝目錄.2.開始先拷貝innodb表數(shù)據(jù).然后執(zhí)行FLUSH TABLES WITH READ LOCK 和LOCK TABLES FOR BACKUP拷貝非innodb表數(shù)據(jù).當(dāng)這些拷貝完成之后.再拷貝其他數(shù)據(jù)文件3.然后執(zhí)行LOCK BINLOG FOR BACKUP開始獲取二進(jìn)制日志的位置點(diǎn)及Exec_Gtid_Set4.此時(shí)xtrabackup完成對(duì)redo的拷貝并釋放二進(jìn)制日志的鎖使用xtrabackup備份數(shù)據(jù)庫:
[email protected] ~]# xtrabackup --backup --user=root --password=123 --target-dir=/data/backups/xtrabackup: recognized server arguments: --datadir=/data/3306/data --server-id=7 --log_bin=/data/3306/binlog/mysql-bin --open_files_limit=65535 --innodb_buffer_pool_size=4096M --innodb_flush_log_at_trx_commit=1 --innodb_log_buffer_size=32M --innodb_log_file_size=128M --innodb_log_files_in_group=3 --innodb_flush_log_at_trx_commit=1 使用xtrabackup進(jìn)行增量備份
增量備份的原理:
xtrabackup會(huì)對(duì)比全備下的LSN號(hào)碼.然后進(jìn)行增量拷貝
查看全備目錄下記錄的lsn.后邊我們查看增量的LSN
[[email protected] ~]# cat /data/backups/xtrabackup_checkpointsbackup_type = full-backupedfrom_lsn = 0to_lsn = 2628274last_lsn = 2628283compact = 0recover_binlog_info = 0模擬增量數(shù)據(jù)mysql> create database increment;Query OK, 1 row affected (0.00 sec)mysql> use increment;Database changedmysql> create table increment(id int,name varchar(30));Query OK, 0 rows affected (0.01 sec)mysql> insert into increment values(1,'lzm');Query OK, 1 row affected (0.01 sec)mysql>
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- icloud備份恢復(fù)到新手機(jī)方法 icloud數(shù)據(jù)恢復(fù)到新手機(jī)
- mysql創(chuàng)建數(shù)據(jù)庫步驟 java鏈接mysql數(shù)據(jù)庫的詳細(xì)步驟
- mysql和oracle的區(qū)別分析 oracle和mysql的優(yōu)缺點(diǎn)對(duì)比
- sql數(shù)據(jù)庫使用教程 sql查看表字段類型
- mysql安裝教程分享 mysql的安裝包在哪個(gè)文件
- php查詢數(shù)據(jù)庫并輸出實(shí)例講解 php查詢數(shù)據(jù)庫并輸出實(shí)例
- redis數(shù)據(jù)恢復(fù)原理講解 redis備份和恢復(fù)原理
- 數(shù)據(jù)庫性能優(yōu)化方法 oracle性能調(diào)優(yōu)總結(jié)
- oracle數(shù)據(jù)庫常用命令 mysql數(shù)據(jù)遷移到oracle
- oppo手機(jī)解除密碼方法 oppo手機(jī)怎么備份所有數(shù)據(jù)
