首页 > 数据库 >Mysql定时备份指南

Mysql定时备份指南

时间:2022-08-31 11:44:50浏览次数:67  
标签:备份 gz mysqlbak expect Mysql ---------- 定时 data

Mysql定时备份指南

1、登录数据库服务器,创建目录

mkdir -p /data/mysqlbak/data

mkdir -p /data/mysqlbak/scripts

mkdir -p /data/mysqlbak/logs

2、创建备份脚本文件

Vi backup.sh

脚本文件:

#!/bin/bash

 

#备份目录

BACKUP_ROOT=/data/mysqlbak

BACKUP_FILEDIR=$BACKUP_ROOT/data

 

#当前日期

DATE=$(date +%Y%m%d)

 

######备份######

 

#查询所有数据库

#-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456

DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")

#循环数据库进行备份

for db in $DATABASES

do

echo

echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------

mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz

#文件赋权

cd /data/mysqlbak/

chmod -R 777 data/

#异地备份

echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------

echo ----------scp 226  begin----------

expect -c "

    spawn scp -r /data/mysqlbak/data/${db}_$DATE.sql.gz [email protected]:/data/mysqlbak/data123/

    expect {

        \"*password*\" {set timeout 300; send \"此处是scp的密码(需要备份到第三服务的登录密码)\r\"; exp_continue;}

        \"yes/no\" {send \"yes\r\";}

    }

expect eof"

echo ----------scp 226  end----------

echo

done

 

echo "done"

3、创建删除脚本文件

vi backup_clean.sh

脚本文件:

#!/bin/bash

echo ----------CLEAN BEGIN----------

find /data/mysqlbak/data -mtime +7 -name "*.gz" -exec rm -rf {} \;

echo ----------CLEAN COMPLETE----------

注意:7代表保存7天的数据,循环删除

4、给脚本赋权

chmod 777 backup.sh

chmod 777 backup_clean.sh

5、添加liunx定时任务

执行命令:crontab -e

输入:

00 2 * * * /data/mysqlbak/scripts/backup.sh > /data/mysqlbak/logs/backup.log 2>&1

00 1 * * * /data/mysqlbak/scripts/backup_clean.sh > /data/mysqlbak/logs/backup_full_clean.log 2>&1

 

注意:00 2 * * *标识每天2点执行

6、查看定时任务

执行命令:crontab -l

7、安装expect

  有线安装:在线安装 yum install -y expect

离线安装:

expect依赖tcl库

安装包:

           https://files.cnblogs.com/files/tozh/tcl8.4.11-src.tar.gz

           https://files.cnblogs.com/files/tozh/expect-5.43.0.tar.gz

 

我将两个压缩包传到了/opt/目录下

1,安装tcl

       tar xf tcl8.4.11-src.tar.gz

        cd tcl8.4.11/unix

        ./configure

        make && make install

 

2,安装expect

       tar xf expect-5.43.0.tar.gz

       cd expect-5.43.0

       ./configure --with-tclinclude=/opt/tcl8.4.11/generic --with-tclconfig=/usr/local/lib/

       make && make install

8、在需要备份的服务器上创建备份目录

mkdir -p /data/mysqlbak/data123

 

 

9、如果报错:检查服务器安全配置信息

vi  /etc/ssh/sshd_config

把 PermitRootLogin no  改成 PermitRootLogin yes
重启ssh服务:/etc/init.d/sshd restart

注意:两个主机都要修改

手动执行成功,定时执行报错,建立软连接

 ln -s  /usr/local/mysql-5.7.25/bin/mysql  /usr/bin

 

ln -s  /usr/local/mysql-5.7.25/bin/mysqldump  /usr/bin

 

检查是否安装好(显示安装好的版本号就是已经安装好了)并创建软链接。

 

expect -v

[root@localhost shell]# expect -v

expect version 5.45.3

[root@localhost shell]# ln -s /usr/local/bin/expect  /usr/bin/expect

 

 

 

标签:备份,gz,mysqlbak,expect,Mysql,----------,定时,data
From: https://www.cnblogs.com/songqiang8858/p/16642496.html

相关文章

  • 备份脚本
    #!/bin/bash#auther:don#version:1.0.0pro_dir="/home/www"pro_name_nangua="nangua"pro_name_qingyun="qingyun"pro_name_nangua_new="nangua_new"pro_name_nangua_admi......
  • mysql安装及10061错误解决
    mysql出现10061错误解决方法 1.开始菜单->运行(cmd)->寻径到MySQL文件中的bin目录下如:D:\MySQL\mysql-5.6.24-win32\bin2.输入指令:mysqld--skip-grant-tables 回车//......
  • mysql用户重命名
    如何修改mysql默认账户名root?首先说一下为什么我要改这个root用户名,正常来说,数据库用户名又不经常更改,用啥都是应用,为什么非要改呢?因为最近在搞一个项目,本地数据库用户名为......
  • Mysql定时备份指南
    Mysql定时备份指南1、登录数据库服务器,创建目录mkdir-p/data/mysqlbak/datamkdir-p/data/mysqlbak/scriptsmkdir-p/data/mysqlbak/logs2、创建备份脚本文件Vi......
  • stm32c8t6的定时器中断
    采用的定时器为TIM3(TIM1和TIM2已经被用于产生PWM波了),TIM3对应的是APB1Timerclocks,时钟频率Tclk为72MHz。溢出时间\(Tout=\frac{(arr+1)*(psc+1)}{Tclk}\)......
  • 【MySQL】MariaDB使用connect存储引擎访问SQLServer中的表
    借助connect存储引擎,Mariadb可以访问任何ODBC数据源。本文是以CentOS7为例。安装的内容有:ODBCdriver,unixODBC 1.下载ODBC对应linux的驱动下载地址:https://docs.mi......
  • MySql Replication主从环境搭建
    1、主库安装完毕之后,执行以下查询:SHOWVARIABLESLIKE'log_bin';SHOWVARIABLESLIKE'binlog_format';SHOWVARIABLESLIKE'server_id';SHOWVARIABLESLIKE'i......
  • MySQL 覆盖索引详解
    1.什么是索引?索引(在MySQL中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类似书本的目录,这个比方虽然被用的最多但是也是最恰如其当的,在查询书本中的某......
  • Canal 原理说明和Mysql+Canal+kafaka 按装说明
    Canal原理说明:主要应用场景Mysql与Redis可靠一致性,因为msyql修改变更将数据加到kafka队列可以确保存数据一定会被更新到redis,kafka有重试和可以确保被消费。使用阿里的......
  • MySQL刷题复习笔记 - 每日持续更新
    PS为了代码规范,所以所有关键字均为大写,其他为小写。点击题目名称即为题解链接。MySQL基本语法SELECT[DISTINCT]列名1,列名2...FROM表名WHERE查询条件表达......