Liunx中MySQL数据库自动备份

  1. 查看磁盘空间情况:

 

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!

存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;

 

[root@nginx01 ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg_nginx01-lv_root

                      287G  5.4G  279G   2% /

tmpfs                 7.9G     0  7.9G   0% /dev/shm

/dev/sda1             477M   42M  410M  10% /boot

192.168.80.100:/nfs   591G  912M  560G   1% /database

 

#编辑配置文件my.cnf

  •  

vim /etc/my.cnf

  •  
  •  

log-bin=/home/mybinlog/mysql-bin    ##二进制日志目录及文件名前缀

binlog_format=mixed         #二进制日志格式

log-error = /data/3309/mysql-err  #错误日志位置 

innodb_file_per_table = 1     #为每一个新数据表创建一个表空间文件

sync_binlog = 1          #写二进制日志的时候,同步到磁盘上面

innodb_file_per_table = 1      ##启用InnoDB表每表一文件,默认所有库使用一个表空间

show master status 时没有数据显示时在my.cnflog-bin=mysql-bin

cp /data/3309/my.cnf /opt/backup/   #备份配置文件

 

 

  1. 创建备份目录:

 

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;

 

cd /home

mkdir backupcd backup

 

  1. 创建备份Shell脚本:

注意把以下命令中的DatabaseName换为实际的数据库名称;

当然,你也可以使用其实的命名规则!(进入备份文件的目录下进行建脚本,并且要将脚本设置可执行的权限:chmod 555 all_databases.sh chmod 775 all_databases.sh )

 


vi all_databases.sh

 

输入/粘贴以下内容:(必须要进入绝对路径下进行备份)

/opt/lampp/bin/mysqldump -uroot -pwang --master-data --all-databases --routines  --events >/home/mysqlbackup/mydb_all_`date +%F-%H:%M:%S`.sql;

 

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

 

  1. 添加可执行权限:

检测或安装 crontab

确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

 

# crontab

-bash: crontab: command not found

 

如时没有安装 crontab,需要先安装它

添加计划任务

执行命令:

crontab -e

 

这时就像使用vi编辑器一样,可以对计划任务进行编辑。

输入以下内容并保存: 脚本的路径必须是绝对路径

 

*/1 * * * * /opt/lampp/bin/all_databases.sh

(每个*分别代表:分 时 日 月 周)

 

意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。

 

  1. 测试任务是否执行

很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了!

如果任务执行失败了,可以通过以下命令查看任务日志:

 

# tail -f /var/log/cron

 

输出类似如下:

将文件复制到另一个IP地址中

scp mydb_all_2018-04-24-11.sql root@IP地址:~/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值