千家信息网

MySQL备份

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,MySQL备份1、MySQL备份过程:MyISAM全备:a. 锁表 -- LOCK TABLE -- --lock-all-tablesb. 同步表 -- FLUSH TABLESc. 刷新二进制日志
千家信息网最后更新 2024年11月18日MySQL备份

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

备份 日志 增量 二进制 数据 a. 全备 参数 应用 位置 命令 整体 路径 过程 事务 数据库 数据恢复 步骤 脚本 b. 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 cdh初始化数据库报错 lenskit 数据库 云计算培训 开拓者机构网络安全 wamp里面带有数据库 网络安全监测 广电总局 杨浦区质量网络安全创新服务 我的世界开服务器20人要多少钱 财政系统网络安全培训中心 怎么查看数据库表主键标识 计算机网络技术岗位简历 做软件开发应付自如 软件开发是不是新专业 兼职电路板软件开发人员电话 软件开发公司状况 苹果电脑无法启动h2数据库 新野天气预报软件开发 计算机网络安全管理的意义 卡尔迅互联网科技招聘信息 python 文件数据库加密 安卓游戏数据库设计 网络安全事件由哪个部门管 怀旧服服务器上的插件怎么删除 软件开发怎么进行数据设计 数据库变成 数据库中的复数查询语句 保山市网络安全委员会 网络安全进农牧民夜校 科技发展以及互联网的蓬勃发展 软件开发时期有哪些主要步骤 计算机网络技术题库无答案
0