mysql的备份分类 物理备份 (Linux系统的文件系统上) 本地备份 / 异地备份 mysql的备份方法: 备份的时候用哪种方法具体用哪种备份方法视实际情况(场合、条件、数据量) linux下的MySQL备份工具 在mysql中输入命令: 在Linux中输入命令: 在Linux中输入命令: 此外,再举一些命令来介绍mysqldump的用法: 脚本如下:取名为backup_db.sh,存放在/lianxi目录下 然后创建计划任务Linux下输入命令:crontab -e 此处介绍使用二进制日志来还原MySQL数据, 1. 时间点还原 2. 位置号还原 备份还原的难点在于找到还原处对应的时间点或者位置号,此处贴图一张稍微讲解一下怎么找自己想还原的数据段对应的时间点或者位置号
MySQL数据备份
冷备份 (mysql服务需停止,然后去拷贝数据)
热备份(mysql服务运行的情况下去备份)
逻辑备份(进入mysql内部)
物理备份的工具:cp、scp、tar、rsyncrsync
rsyncrsync命令:同步备份,有修改会同步修改
逻辑备份的工具:mysqldump
1、完全备份(Full backup) — 全部内容都备份下来
优点:恢复的快,省事
缺点:备份的时候慢、消耗空间大
2、增量备份(Incremental) — 每次比较和上次备份进行比较
优点:每次备份都没有重复的数据
缺点:恢复的时候很麻烦
3、差异备份 — 每次备份都和完全备份进行比较
备份的时候数据重复性较低,恢复的时候也不麻烦
我使用的是:mysqldump
使用方法:
grant all on . to ‘currybackup’@’%’ identified by ‘Sanchuang123#’;
用处: 创建一个用户currybackup密码为Sanchuang123#,可以用于mysql操作sql
mysqldump -ucurrybackup -p’Sanchuang123#’ sanchuang > /curry/backup/sanchuang.
用处:将数据库sanchuang备份到/curry/backup/sanchuang
mysql -ucurrybackup -p’Sanchuang123#’ sanchuang < sanchuang.sql
用处:将sanchuang.sql数据文件还原到sanchuang数据库中,如果sanchuang数据库已经被删掉了,那么需要自己创建
mysqldump -uroot -p’Sanchuang123#’ –databases TENNIS >/backup/tennis.sql
这是备份数据库databases下的TENNIS表到/backup/tennis.sql
mysqldump –all-databases > /backup/dump.sql
这是备份所有的数据库到/backup/dump.sql
要求:
1、每天晚上3:30开始备份sc数据库
2、备份文件存放到/backup目录下,要求备份的文件名包含当天的日期
3、保留最近15天的备份文件
4、每备份一次都记录到日志文件/var/log/backup_db.log#!/bin/bash # 获取当前时间 ctime=$(date +%Y%m%d) mkdir -p /backup #备份sc库 /usr/bin/mysqldump -ucurrybackup -p'Sanchuang123#' sc > /backup/sc123_${ctime}.sql # 只保留本机上最近十五天的数据 find /backup -mtime +15 -type f -name "sc123*.sql" -exec rm -rf {} ; #日志功能 now_time=$(date +%Y%m%d%H%M%S)echo "${now_time} sc123_${ctime}.sql success!" >>/var/log/backup_db.log
30 3 * * * bash /lianxi/backup_db.sh
最后使用crontab -l 命令查看计划任务是否创建成功就可以了MySQL数据还原
所有前提是要先开启MySQL的二进制日志,因为二进制日志默认是关闭的,
如需了解二进制日志可以查看我的另一篇博客,有介绍MySQL的二进制日志以及其他的一些日志。
如果想知道自己的二进制日志是否打开,MySQL命令行中输入命令:show variables like ‘%og_bin’来查看
show master status; 查看MySQL当前正在使用的二进制日志及当前执行二进制日志位置
假如我当前MySQL使用的是二进制日志是iZ8vb7qowz9hfo2gsi9juoZ-bin.000002
下一步,也是最难的一步:
mysqlbinlog -vv iZ8vb7qowz9hfo2gsi9juoZ-bin.000002
这个二进制文件不能用文本编辑器打开,因为这是一个二进制文件,可以用mysqlbinlog打开,-vv可以显示的更加详细。然后你要做的就是从这个二进制文件中找到你要从哪一步恢复到哪一步,找到他们对应的时间点,然后执行下面这个命令(我找到的时间就是下面这个):
mysqlbinlog –start-datetime=“2020-08-13 14:54:02” –stop-datetime=“2020-08-13 14:54:08” iZ8vb7qowz9hfo2gsi9juoZ-bin.000002 | mysql -ucurrybackup -p’Sanchuang123#’
执行成功之后这段时间里面你所执行的数据就恢复了。
–start-datetime – 起始时间
–stop-datetime – 终止时间
iZ8vb7qowz9hfo2gsi9juoZ-bin.000002 | mysql -ucurrybackup -p’Sanchuang123#’
执
方法与时间点还原类似,只不过需要在二进制日志中找的不是时间点,而是对应的位置号,下面的命令执行的格式也是与时间点还原差不多。
找到之后执行下面的命令:
mysqlbinlog –start-position=291 –stop-position=697 /data/mysql/sc-mysql-bin.000005 |mysql -uroot -p’Sanchuang123#’
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算