MySQL备份
admin
2023-04-15 22:41:27
0

MySQL备份

1、MySQL备份过程:
MyISAM
全备:
a. 锁表 -- LOCK TABLE -- --lock-all-tables
b. 同步表 -- FLUSH TABLES
c. 刷新二进制日志 -- FLUSH LOGS -- --flush-logs
d. 记录二进制日志位置 -- SHOW MASTER STATUS -- --master-data=2
e. 备份数据 -- -- mysqldump --databases
f. 释放锁 -- UNLOCK TABLES
g. 删除旧二进制日志 -- PURGE BINARY LOGS TO
总结命令:
mysqldump --databases --lock-all-tables --master-data=2 --flush-logs DB_NAME > db_name-datetime.sql
增量备份:
a. 刷新二进制日志 -- FLUSH LOGS
b. 复制旧的二进制日志即可

InnoDB
全备:
a. 刷新二进制日志
b. 记录当前二进制日志位置
c. 删除旧二进制日志
***相关锁表等操作数据库自动完成,由参数--single-transaction即可完成
总结命令:
mysqldump --databases --master-data=2 --flush-logs --single-transaction DB_NAME > db_name-datetime.sql
增量备份:
a. 刷新日志 -- FLUSH LOGS
b. 复制旧的二进制日志即可

备份脚本
[root@ibm01 ~]# cat sqlbackup.sh
#!/bin/bash

DB_Name="$1"
DB_Egine="$2"
Backup_Type="$3"
Backup_Time=date +%Y%M%d%H%M%S
Backup_File=$DB_Name-$Backup_Time.sql
Data_Dir="/data/mysql/logs/"

function FullBackup() {
if [ $DB_Egine == "MyISAM" ]
then
mysqldump --databases --lock-all-tables --flush-logs --master-data=2 $DB_Name > $Backup_File
elif [ $DB_Egine == "InnoDB" ]
then
mysqldump --databases --single-transaction --flush-logs --master-data=2 $DB_Name > $Backup_File
fi
Current_BinLog_File=egrep -o "MASTER_LOG_FILE=.*," $Backup_File |cut -d"=" -f2|tr -d ","
mysql -e "PURGE BINARY LOGS TO $Current_BinLog_File;"
}

function IncrBackup() {
BinLog_Files=mysql -N -e "SHOW BINARY LOGS;"|cut -f1 |tr "\n" " "
mysql -e "FLUSH LOGS;"
mkdir /root/binlogs/$Backup_Time
cd $Data_Dir
cp $BinLog_Files /root/binlogs/$Backup_Time
}

if [ $Backup_Type == "Full" ]
then
FullBackup
elif [ $Backup_Type == "Incr" ]
then
IncrBackup
fi
xtrabackup备份:
1、对于innodb可以实现增量备份,对于myISAM只能全备
2、innobackupex /backuppath(备份)
3、innobackupex --apply-log /backuppath/backuptime(应用事务日志)
4、innobackupex --copy-back /backuppath/backuptime(恢复)

xtrabackup增量备份:
备份:
1、innobackupex --incremental --incremental-basedir=/上一次备份路径 /备份路径

增量备份的恢复需要有3个步骤:
1、恢复完全备份
2、恢复增量备份到完全备份(开始恢复的增量备份要添加--redo-only参数,到最后一次增量备份要去掉--redo-only)
3、对整体的完全备份进行恢复,回滚未提交的数据

恢复过程:
##准备一个全备##
[root@centos6 pxb]# innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/

xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 2628145
InnoDB: Number of pools: 1
01:33:52 completed OK!

##将增量1应用到完全备份##
[root@centos6 pxb]# innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-09-40/

##将增量2应用到完全备份,注意不加 --redo-only 参数了##
[root@centos6 pxb]# innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-27-46/

##把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据##
[root@centos6 pxb]# innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/
xtrabackup: Log applied to lsn 2628145
xtrabackup: The intended lsn is 2643563

相关内容

热门资讯

今日重大发现“丁丁麻将辅助器?... 网上科普关于“丁丁麻将有没有挂”话题很是火热,小编也是针对丁丁麻将作*弊开挂的方法以及开挂对应的知识...
玩家攻略科普“新华棋牌有没有挂... 家人们!今天小编来为大家解答新华棋牌透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
【今日要闻】“皇豪众娱炸/金/... 【今日要闻】“皇豪众娱炸/金/花到底是不是挂?”(其实是有挂)您好,皇豪众娱炸/金/花这个游戏其实有...
今日重磅消息“新起点是不是有挂... 家人们!今天小编来为大家解答新起点透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很多...
一图看懂:“正义使命”围台演习... 据央视新闻报道,东部战区新闻发言人施毅陆军大校表示12月29日开始,中国人民解放军东部战区组织陆军、...
终于明白“新九方牛牛怎么开挂?... 家人们!今天小编来为大家解答新九方牛牛透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
台湾,还需要几辈子? 台湾,还需要几辈子才能与大陆实现中国的完全统一,其实也看得很清晰了。文 | 海上客从“联合利剑”,到...
玩家攻略科普“先锋炸/金/花是... 家人们!今天小编来为大家解答先锋炸/金/花透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪...
央行开展3125亿元7天期逆回... 【大河财立方消息】12月30日,央行公告称,开展3125亿元7天期逆回购操作,投标量3125亿元,中...
87岁脑出血患者重获新生 黄河... 近日,黄河科技学院附属医院中医科主任柳忠全、心血管内科主任孟苗苗受医院党委书记于春霞的委托,带领相关...