mysql数据库的备份和恢复

                 mysql数据库的备份和恢复
一、在主从架构中,我们可以时时同步mysql数据库,当我们需要拷贝文件做为备份时,可以将从节点stop(stop slave ),然后拷贝文件即可。
二、mysql提供的一个命令mysqldump,用这个逻辑备份工具也可以为我们进行数据备份。
1.备份:
#mysqldump -u root -p mytest > mytest_100901.sql
数据量过大时可使用gzip压缩
#mysqldump -u root -p mytest | gzip > mytest_100901.sql.gz
2.恢复:
#mysqldump -u root -p mytest < mytest_100901.sql
gzip压缩
# gzip < mytest_100901.sql.gz |mysqldump -u root -p mytest
还有使用图形工具的也比较好用,mysqldump比较基本,通用
三、利用crontab,系统每天定时备份mysql数据库

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/backup/mysqlbak
# mkdir -p /backup/mysqlbak
2、创建/bakmysql.sh文件

#cat >> /usr/sbin/bakmysql.sh <<EOF

#!/bin/bash
cd /var/backup/mysqlbak/
dateDIR=`date +"%y-%m-%d"` (取年月日做为文件夹名,)
mkdir -p $dateDIR/data (创建文件夹)
for i in `mysql -uroot -p123456 -e "show databases" | (登录数据库查看数据库)
grep -v "Database" | grep -v "information_schema"` (不备份的数据库)
do
mysqldump -uroot -p123456 $i |
gzip > /backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gz
done
EOF

3、修改文件属性,使其可执行
# chmod a+x /bakmysql.sh

4、每天3点钟执行备份
# crontab -e
01 3 * * * root /bakmysql.sh
以上只是每天备份一次,当每天备份多次时,可设置文件夹名为:年、月、日、分钟,相应的修改/etc/crontab(系统) 或者编辑某一用户的crontab(/var/spool/cron/$USERNAME),以某以用户身份来运行
 

你可能感兴趣的:(mysql,数据库,职场,休闲)