mysql怎麼做增備 mysql的全備和增量備份

2021-10-17 12:44:52 字數 2635 閱讀 7206

---------26--張立---

工作原理就是把每次完整備份的binlog 和postion取出,做增量備份的時候取當時的binlog和postion,使用mysqlbinlog 把這之間的資料讀出到另乙個檔案。

一、完整備份

vim full_mysqldump.sh

#!/bin/bash#########dir_info############date=`date +%y%m%d`back_dir="/home/profiles/filebak/fullbackup"

file_dir="/home/profiles/filebak"########3mysql_back##########if [ ! -d $back_dir$date ];thenmkdir -p $back_dir$datefi/usr/local/mysql/bin/mysql -u root-e "flush tables with read lock"/usr/local/mysql/bin/mysqldump -u root--default-character

set=gbk --opt --triggers -r --hex-blob --flush-logs --master-data=2 --all-databases > $back_dir$date/fullbackup.sql/usr/local/mysql/bin/mysql -u root-e "unlock tables"

########get postion###############

sed -n "22p" a.sql | awk -f'=|,|;' '' > $file_dir/postion

#########tar#############cd $back_dir$dateif [ ! -f fullbackup.sql ]; thenecho "mysqldump back file faild !!! please check"exit 1fi/bin/tar zcf fullbackup_$date.tar.gz fullbackup.sqlsleep 5

二、做增量備份,根據上面完整備份所獲得的postion以及binlog 與伺服器當前的postion和binlog做增量備份,備份後把當前的postion以及binlog 存到postion檔案中,留坐下一次增量備份的起始點。

vi  zl_backup.sh

#!/bin/sh#####for zengliang backup########date=`date +%y%m%d`olddate=`date --date='10 days ago' +%y%m%d`back_dir="/data/mysql2/"file_dir="/home/profiles/filebak"startbinlog=`awk '' $file_dir/postion`startpostion=`awk '' $file_dir/postion`

cd $file_dirmysql -u root -s /tmp/mysql.sock -e "show master status\g;"|awk '' > nowpostionstopbinlog=`sed -n '3p' $file_dir/nowpostion`stoppostion=`sed -n '4p' $file_dir/nowpostion`

if [ "$startbinlog" == "$stopbinlog" ]; thenmysqlbinlog --start-position=$startpostion --stop-position=$stoppostion $back_dir$startbinlog >> ch_zlback_$date.sqlelsestartline=`awk "/$startbinlog/" $back_dir/mysql-bin-bj1.index`stopline=`wc -l $back_dir/mysql-bin-bj1.index |awk ''`for i in `seq $startline $stopline`dobinlog=`sed -n "$i"p  $back_dir/mysql-bin-bj1.index |sed 's/.\///g'`case "$binlog" in"$startbinlog")mysqlbinlog --start-position=$startpostion $back_dir$binlog >> ch_zlback_$date.sql;;"$stopbinlog")mysqlbinlog --stop-position=$stoppostion $back_dir$binlog >> ch_zlback_$date.sql;;*)mysqlbinlog $back_dir$binlog >> ch_zlback_$date.sqlesacdonefi

####tar#####

if [ -f ch_zlback_$date.sql ];thentar czf ch_zlback_$date.tar.gz ch_zlback_$date.sqlsleep 3echo "$stopbinlog $stoppostion" > $file_dir/postionrm -rf ch_zlback_$olddate.sql ch_zlback_$olddate.tar.gzelseecho "$date backup fail!!!!"fi

三、做好計畫任務

把增量備份指令碼 和 完全備份指令碼按照想要的時間寫在計畫任務中,做定時的增量備份。

四、如果需要還原到上周二的狀態

就要按照順序先恢復到上次完整備份,然後再按順序依次恢復。

mysql監控平台怎麼做 Mysql監控平台搭建

mysql監控平台搭建percona monitoring and management pmm 是一款管理和監控mysql,mongodb效能的開源平台 pmm架構 查詢分析器,pmm元件之一,因為會統計大量資料並實時採集資料,會影響mysql10 左右效能,不開啟 pmm服務端需要開放埠 80或...

mysql表怎麼做 mysql怎麼建立乙個表

1.登陸成功後,首先進入某乙個資料庫 不是指資料庫伺服器 use t1 t1是資料庫名 如圖所示 2.在此資料庫中建立資料庫表 2.1 先建立表結構 可以理解為表的列名,也就是欄位名 在實際生產過程中,表結構是需要經過精心設計的。通用的語法格式為 1 create table table name ...

Mysql的密碼忘記了該怎麼做?

1.關閉正在執行的mysql服務 必須關閉,不然會出錯的 2.開啟dos視窗,轉到mysql bin目錄 3.輸入mysqld skip grant tables 回車 skip grant tables 的意思是啟動mysql服務的時候跳過許可權表認證 4.再開乙個dos視窗 因為剛才那個dos視...