怎么对MySQL数据库做备份?
我现在有个Schema,空间增长非常快。用SQL导出,在三个月内从700K涨到了30M。
有没有好的备份方法?除了到处SQL以外。
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我现在有个Schema,空间增长非常快。用SQL导出,在三个月内从700K涨到了30M。
有没有好的备份方法?除了到处SQL以外。
谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
引用来自“虫虫”的帖子
引用来自“陈志伟”的帖子
我是用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 --help ,里面有关于输出时间的格式
引用来自“陈志伟”的帖子
我是用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 数据库了。
才几十兆而已啊,压缩一下估计也就是几百K
mysqldump -h [host] -u [username] --password=[password] [database-name] | gzip > /data/backup/data.sql.gz
如果数据再大的话,超过G了,估计你暂时超过不了G了,再议。
另外一种方法是直接拷贝数据文件。
我是用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 数据库了。