Linux数据库热备份mysqlhotcopy

● 建立数据库备份所需条件

[1] 建立自动备份脚本

  在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[root@localhost ~]# vi mysql-backup.sh  ← 建立数据库自动备份脚本,如下:

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# The Directory of Backup
BACKDIR=/backup/mysql

# The Password of MySQL
ROOTPASS=********  ← 将星号替换成MySQL的root密码

# Remake the Directory of Backup
rm -rf $BACKDIR
mkdir -p $BACKDIR

# Get the Name of Database
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# Backup with Database
for dbname in $DBLIST
do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done

[2] 运行数据库自动备份脚本

[root@localhost ~]# chmod 700 mysql-backup.sh 
← 改变脚本属性,让其只能让root用户执行

[root@localhost ~]# ./mysql-backup.sh   ← 运行脚本

[root@localhost ~]# ls -l /backup/mysql/  
← 确认一下是否备份成功

total 8
drwxr-x--- 2 mysql mysql 4096 Sep 1 16:54 mysql  
← 已成功备份到/backup/mysql目录中

[3] 让数据库备份脚本每天自动运行

[root@localhost ~]# crontab -e 
← 编辑自动运行规则(然后会出现编辑窗口,操作同vi)

00 03 * * * /root/mysql-backup.sh   ← 添加这一行到文件中,让数据库备份每天凌晨3点进行

● 测试自动备份正常运转与否(备份恢复的方法)

[root@localhost ~]# /bin/cp -Rf /backup/mysql/test/ /var/lib/mysql/  ← 复制备份的数据库test到相应目录

[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql/test/  ← 改变数据库test的归属为mysql

[root@localhost ~]# chmod 700 /var/lib/mysql/test/  ← 改变数据库目录属性为700

[root@localhost ~]# chmod 660 /var/lib/mysql/test/* 
← 改变数据库中数据的属性为660

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值