本篇文章為大家展示了MySQL 8.0.11 innodb cluster運維管理中如何進行備份,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
mysqlbackup是一個熱備份工具、也就是說它不像mysqldump那樣給表上一個全局鎖,由于mysqldump上了這個鎖,所以就造成客戶端只能對數據庫進行讀操作不能寫,這也就是稱mysqldump為溫備份的原因。但是mysqlbackup真的有這么吊嗎?答案是并沒有。對于innodb引擎的表mysqlbackup 熱備的;但是對于非innodb表mysqlbackup就只能溫備了,原因是這類引擎不支持事務也就是說不能通過事務日志來保證備份的一致性,所以就只能給表加上一個全局鎖來解決了。為了得到一致的備份mysqlbackup要不停的去追蹤mysql數據庫的sln號,也就是說mysqlbackup要執行備份那么它一定要連接上數據庫。mysqlbackup對數據庫的備份是通過復制文件的方式進行的,也就是說mysqlbackup要和數據庫在同一臺機器上,和xtrabackup 很相似的。
Mysqlbackup 是企業版mysql中的,但可以拿來使用,登錄oracle云下載,搜索mysql backup,下載二進制文件
mysql-commercial-backup-8.0.11-linux-glibc2.12-x86_64.tar.gz
傳到主機上并解壓,
會有 bin 和lib 文件夾,將其中的文件拷貝到 /usr/local/mysql 對應的目錄中, 這里要把 軟連接,庫全部拷貝的,不然會報錯
(官方指導命令)
CREATE USER 'backup'@'localhost' IDENTIFIED BY '$$$$$$$$$$$$$$'; GRANT RELOAD ON *.* TO 'backup'@'localhost'; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'backup'@'localhost'; GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history TO 'backup'@'localhost'; GRANT REPLICATION CLIENT ON *.* TO 'backup'@'localhost'; GRANT SUPER ON *.* TO 'backup'@'localhost'; GRANT PROCESS ON *.* TO 'backup'@'localhost'; GRANT ALTER ON mysql.backup_history TO 'backup'@'localhost'; #此表在主庫上備份才會生成和寫入 GRANT LOCK TABLES, SELECT, CREATE, DROP, FILE ON *.* TO 'backup'@'localhost'; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_sbt_history TO 'backup'@'localhost';#此表僅在主庫上有效
##備份到/fullbak/2018-10-10_19-19-11/datadir 類似這樣的目錄中 mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$ --with-timestamp backup ##############備份到/fullbak/2018-10-10_19-19-11/full_backup.bki 這樣一個單文件中,以后不用備份單文件,我們自己壓縮備份更小 mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$$$$ --backup-image=full_backup.bki --with-timestamp backup-to-image
--user:用戶名。
--password:密碼。
--port:端口,默認值為3306。
--backup-dir:可以看成是mysqlback的工作目錄,臨時用的。
--backup-image:備份文件名,這個是最終要的文件,別的都可以不要。位置可以不帶路徑,默認放到 backup-dir
backup-to-image:把所有的備份信息輸出到一個備份文件當中
--with-timepstap: 會自動生成一個帶日期文件夾,這里放的是備份時用的臨時文件和最后的備份鏡像(不指定鏡像位置的化)
實際證明,單文件備份是無法進行恢復的,下面這個例子放棄
mysqlbackup --backup-dir=/data/backup --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental-with-redo-log-only --incremental-base=history:last_backup --with-timestamp --backup-image=incre_backup.bki backup-to-image
不備份成單個文件,增量備份貌似也不支持,這個是可以進行恢復的 指定了備份到的增量目錄和增量的基源
mysqlbackup --incremental-backup-dir=/data/backup/increbak --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental --incremental-base=history:last_backup --with-timestamp --backup-image=incre_backup.bki backup
一定要先執行上面的全備, last_backup 這個備份參數會在數據庫中找,然而,這個備份要在主庫進行,不能再從庫,因為從庫不寫備份信息。
#########備份到其他服務器
The following command streams the backup as a single-file output to a remote host to be saved under
the file name my_backup.img (--backup-dir=/tmp designates the directory for storing temporary files
rather than the final output file):
mysqlbackup --defaults-file=~/my_backup.cnf --backup-image=- --backup-dir=/tmp backup-to-image | \
ssh <user name>@<remote host name> 'cat > ~/backups/my_backup.img'
上述內容就是MySQL 8.0.11 innodb cluster運維管理中如何進行備份,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。