我正在使用以下方法备份数据库自动mysql备份。
这工作正常 - 但不幸的是,我没有为每个数据库获得一个单独的文件,而是获得了一个名为
daily_all-databases_2016-04-15_12h01m_Friday.sql.gz
.
├── daily
│ └── daily_all-databases_2016-04-15_12h01m_Friday.sql.gz
├── latest
├── monthly
├── tmp
└── weekly
我想为每个数据库获取一个单独的档案。
我怎样才能做到这一点?
答案1
您应该能够使用SEPDIR
config 参数。它将为每个数据库创建单独的目录,其中包含自己的文件。
来自Ubuntu 手册页(但在 CentOS 上应该同样有效):
SEPDIR=yes
为每个数据库单独备份目录和文件?(是或否)
另外,您也可以自己编写一个 Bash 脚本来执行此操作,非常简单。如下所示:
mysql -u user -p pass -B -e "SHOW DATABASES"|sed 1d|while read db
do
mysqldump -u user -p pass $db|gzip>"/home/db_backup/$db.sql.gz"
if [[ $? != 0 ]];then
echo "Backup of database $db FAILED!"
fi
done
显然用它们各自的值替换user
和。pass