我正在处理Mysql数据备份和恢复系统,但坚持了如何使用它。一个我可能会想到的选择
表智能备份方法
创建一个带有Dateandtime和Direc堆的目录将有一个包含所有数据库及其表名的定义文本文件,以及每个表内容、表结构和表插入的单独文件。
表智能恢复方法
读取目录和定义文件来排序有关日期和表名的备份,用户可以选择所有表或要还原的特定表。
为此,我将使用PHP,因为我必须在不同的服务器上自动上传这些备份文件。
问题
上面的备份和恢复方法是否有效?
2-是否有一种方法可以为每个数据库编写单个文件,但仍有一些方法仅恢复数据库中选定的表或所有表?
3.对于这类申请,我必须紧记哪些要点?
如果有什么不清楚的地方请告诉我?
发布于 2013-03-09 15:37:05
使用一个简单的shell脚本尝试mysqldump。它可以扩展到转储表。现在它只转储数据库。
#!/bin/bash
USER="username"
PASSWORD="password"
OUTPUTDIR="./"
MYSQLDUMP=`which mysqldump`
MYSQL=`which mysql`
# get a list of databases
databases=`$MYSQL --user=$USER --password=$PASSWORD \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
# dump each database in turn
for db in $databases; do
# skip internal databases
if [ "$db" == "information_schema" ] || [ "$db" == "mysql" ]; then
continue
fi
# dump whole database
echo "$db"
$MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \
--databases $db > "$OUTPUTDIR/$db.sql.bak"
# get a list of tables inside database
tables=`$MYSQL --user=$USER --password=$PASSWORD \
-e "USE $db;SHOW TABLES;" | tr -d "| " | grep -v Tables_in_$db`
# dump tables
for tbl in $tables; do
echo "$db.$tbl"
$MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \
$db $tbl> "$OUTPUTDIR/$db.$tbl.sql.bak"
done
donehttps://stackoverflow.com/questions/15309767
复制相似问题