mysql简单数据库定期备份

  • 需要对单节点mysql主机中的数据库定期进行备份,备份需求是每天全量备份一次,保留七天数据,方法如下:

  • 需要备份的数据库:
    infor
    yy

  • 书写的脚本为:

需要修改的地方:

1.密码

2.mysql.sock路径

3.--databases 后面接的数据库名称

4./data/$day/$day.yy.sql 为我自己存放位置,根据自己需求修改

vim /data/backup.sh
#!/bin/bash
source /etc/profile
day=`date +%Y%m%d`
password=wa!11111qaz

mkdir -p /data/$day
mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock --databases infor  -p$password> /data/$day/$day.infor.sql

mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock --databases yy -p$password> /data/$day/$day.yy.sql


  • 之后设置定时任务,每天的晚上五点半进行全量备份
crontab -u root -e
30 17 * * * sh /data/backup.sh
  • 最后实现的效果为(每天会建立一个文件夹,里面包含所有的备份数据库):

在这里插入图片描述

  • 另外,如果想要备份整个全套的,可以用-A参数:
mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock -A -p$password > /data/$day.sql

注意:
如果有主从服务的话,进行备份,要开启binlog服务。

vim /etc/my.cnf

//server_id 运算方式为:服务器ip后一位加上端口
如果是192.168.1.111 3307------ 1113307  10.203.144.95 3306 ----953306

server_id              =953306
binlog_format            =row             
log_bin               =mysql-bin           
binlog_rows_query_log_events    =on               
log_slave_updates          =on               
expire_logs_days          =7               
binlog_cache_size          =65536             
sync_binlog             =1               
slave-preserve-commit-order     =ON 
systemctl restart mysqld

如果不想写变量,并且是全量完整备份的话,可以这样执行:

mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock -A -p'密码'> $instance_$port_`date +%F`.sql
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值