自建单机MySQL数据库备份方案[通俗易懂]

自建单机MySQL数据库备份方案[通俗易懂]使用全量备份SQL+BinLog进行数据恢复

自建单机MySQL数据库备份方案

一、环境

  环境:Centos 6.5 ,MySQL 5.7.22, yum install 命令安装

二、备份

指定备份路径,指定 –master-data=2 参数备份时输出 MASTER_LOG_POS 位置信息

备份脚本:

 1 #!/bin/bash
 2 
 3 backup_path=/home/app/bak_mysql
 4 password="password"
 5 
 6 err() {
 7     echo "[$(date +"%Y-%m-%d %H:%M:%S")]: $@" >&2 >>${backup_path}/fail_$(date +%Y%m%d).log
 8 }
 9 #错误后打印错误信息生成日志
10 
11 mysqldump -uroot -p${password} --opt -R --events --triggers=true
12     --master-data=2 --single-transaction databaseName --ignore-table=databaseName.t_attachment
13     | gzip > ${backup_path}/backup_$(date +%Y%m%d).sql.gz
14 #备份同时压缩
15 
16 if [ $? -ne 0 ];then
17     err $?
18     exit
19 fi

代码100分

三、定时任务:

  1.  查看定时任务
crontab 命令选项基本只对用户操作的选项:
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务
示例:
  查看指定用户的定时任务
代码100分[root@daf  ~]# crontab -u username -l
no crontab for vfit

  要查看所有用户的,只能根据 /etc/passwd 文件中的用户名一一列举了,可以用脚本。
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done

  给指定用户创建定时任务

代码100分1 [root@*** ~]# crontab -u username -e
2 no crontab for username - using an empty one
3 crontab: installing new crontab
4 [root@*** ~]# crontab -u username -l
5 0 2 */2 * * /home/username/backup_mysql/backup_mysql.sh

若指定用户无权限操作指定脚本则需进行授权: 
chmod u+x backup_mysql.sh 
定时任务日志文件目录:/var/log/cron

三、恢复方案

  1、准备好最新的备份文件进行全量恢复

  2、找出增量文件

  3、恢复数据

1 [vfit@iZ946xtgmogZ bak_mysql]$ grep MASTER_LOG_POS bak.sql
2 -- CHANGE MASTER TO MASTER_LOG_FILE="mysql-bin.000004", MASTER_LOG_POS=1633307;
3 
4 [vfit@iZ946xtgmogZ bak_mysql]$ mysqlbinlog --no-defaults --database=bak --start-position=1633307 /var/lib/mysql/mysql-bin.000004 > ~/addbak.sql
5 //删除问题语句 执行恢复代码
6 [vfit@iZ946xtgmogZ bak_mysql]$ mysql -uroot -pgo2020@Vfangtuan bak < ~/bak.sql
7 [vfit@iZ946xtgmogZ bak_mysql]$ mysql -uroot -pgo2020@Vfangtuan bak < ~/addbak.sql

  错误语句示例:

自建单机MySQL数据库备份方案[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7628.html

(0)
上一篇 2023-03-17
下一篇 2023-03-17

相关推荐

  • Java中使用Jedis连接Redis对List进行操作的常用命令

    Java中使用Jedis连接Redis对List进行操作的常用命令场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re

    2023-02-08
    152
  • SQL中的函数——Round()函数「终于解决」

    SQL中的函数——Round()函数「终于解决」Round(exp1,exp2)函数具有四舍五入的功能,分为以下两种情况: 1.exp2数为非负 四舍五入的位数从小数点后开始计数,小数点后|exp2|位,看後一位,进本位,后面舍去 select R

    2023-02-20
    158
  • startup启动不起来关于监听的问题

    startup启动不起来关于监听的问题问题描述:要在sqlplus中启动到startup状态,但是提示我没有监听,本来以为启动一下就可以,但是connecting to一直卡半天,stop都停止不了 1.发现监听有问题,前去更改 SQL&

    2022-12-22
    148
  • Python选择按钮应用实例

    Python选择按钮应用实例选择按钮是WEB页面常用的组件之一,是一种用于显示选项(通常是一系列单选选项)的按钮。Python提供了丰富的选项和库来帮助我们快速地构建高效的选择按钮应用程序。让我们通过下面的应用来演示选择按钮的基本用法:

    2024-01-08
    100
  • 如何在MATLAB中使用Python?

    如何在MATLAB中使用Python?MATLAB和Python都是科学计算中常用的编程语言,各有优劣。其中,Python的生态系统更加完备,包含了众多丰富的库和工具。而MATLAB则有其强大的矩阵运算和绘图功能。

    2024-06-22
    46
  • Python 32位与64位版本区别

    Python 32位与64位版本区别Python是一种高级别的脚本语言,由于其简单易懂的语法和丰富的标准库而变得非常受欢迎。Python有多种版本,其中32位和64位版本是最受关注的两种版本。本文将从多个方面介绍Python 32位和64位版本的区别。

    2024-04-18
    69
  • Python ID作为核心的开发

    Python ID作为核心的开发Python作为一种高级语言,广泛应用于各个领域。在Python开发过程中,IDE(集成开发环境)扮演着重要的角色,它可以提高开发效率和代码质量,让开发过程更加顺利。Python ID作为其中的一种,不仅具有语法高亮、自动缩进、自动补全等常用功能,还能够在一定程度上提升代码调试、测试和发布的效率。在本文中,我们将从多个方面对Python ID作为核心开发进行详细阐述。

    2024-04-14
    74
  • Python绝对值函数

    Python绝对值函数Python是一门高级编程语言,广泛应用于科学计算、Web开发和人工智能等领域。Python的强大之处在于它广泛的函数库,可以实现大量的复杂功能。其中一个重要的函数是绝对值函数。在数学和编程中,绝对值函数是常用的函数之一。Python中内置有abs()函数,可以实现绝对值函数的功能。在本文中,我们将介绍Python绝对值函数的详细用法,包括参数、返回值以及实际应用中的例子。

    2024-08-18
    27

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注