怎么对MySQL数据库做备份?

虫虫 发布于 2009/01/28 15:29
阅读 694
收藏 3

我现在有个Schema,空间增长非常快。用SQL导出,在三个月内从700K涨到了30M。

有没有好的备份方法?除了到处SQL以外。

 

谢谢!

加载中
0
JavaGG
JavaGG

我是用crontab 定时运行sh程序备分的,代码如下,还加上了gz压缩,出来的备份文件会小好多

#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqldump -u$DB_USER -p$DB_PASS --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然后使用将此脚本加到 /etc/crontab 定时任务中:
01 5 * * 0 mysql /home/mysql/backup.sh
好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了。

0
红薯
红薯

才几十兆而已啊,压缩一下估计也就是几百K

mysqldump -h [host] -u [username] --password=[password] [database-name] | gzip > /data/backup/data.sql.gz

如果数据再大的话,超过G了,估计你暂时超过不了G了,再议。

另外一种方法是直接拷贝数据文件。

0
虫虫
虫虫

引用来自“陈志伟”的帖子

我是用crontab 定时运行sh程序备分的,代码如下,还加上了gz压缩,出来的备份文件会小好多

#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqldump -u$DB_USER -p$DB_PASS --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然后使用将此脚本加到 /etc/crontab 定时任务中:
01 5 * * 0 mysql /home/mysql/backup.sh
好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了。

哥们儿,怎么把时间加在文件名上?

谢拉!

0
红薯
红薯

试试 date --help ,里面有关于输出时间的格式

0
范堡
范堡

引用来自“虫虫”的帖子

引用来自“陈志伟”的帖子

我是用crontab 定时运行sh程序备分的,代码如下,还加上了gz压缩,出来的备份文件会小好多

#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqldump -u$DB_USER -p$DB_PASS --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然后使用将此脚本加到 /etc/crontab 定时任务中:
01 5 * * 0 mysql /home/mysql/backup.sh
好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了。

哥们儿,怎么把时间加在文件名上?

谢拉!

 把里边的 DATE=`date +%F`   改成  DATE=`date +%Y%m%d`  就可以了。输出的格式是 年,月,日。

返回顶部
顶部