您的位置:首页 > 数据库 > MySQL

mysql数据库的备份和恢复

2010-09-02 14:14 274 查看
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),以某以用户身份来运行

本文出自 “一份存档” 博客,请务必保留此出处http://linuxbpm.blog.51cto.com/1823930/386452
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: