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

Mysql定时备份指南

时间:2022-08-31 11:26:35浏览次数:87  
标签:备份 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/flluo/p/16642332.html

相关文章

  • 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查询条件表达......
  • 达梦数据库备份与还原的使用
    方法一:数据库备份数据库不需要stop需要开启归档./disql用户名/密码@IP地址;端口BACKUPDATABASEBACKUPSET‘db_bak_01’;默认备份文件存在DAMENG/bak目录内修改dm.ini文......
  • 7个自定义定时任务并发送消息至邮箱或企业微信案例(crontab和at)
    前言更好熟悉掌握at、crontab定时自定义任务用法。实验at、crontab定时自定义任务运用场景案例。作业、笔记需要。定时计划任务相关命令及配置文件简要说明at......
  • springboot mysql 的赖配置
    1、报错点  ##mysqlspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.01:3307/distributed-lock-test?......
  • 1.MySQL优化
    MySQL中的索引管理​ 在MySQL中,对索引的查看和删除操作是所有索引类型通用的。6.1普通索引​ 这是最基本的索引,它没有任何限制MyIASM中默认的BTREE类型的索......