当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MySQL数据库本地备份和双机相互备份

MYSQL
SQL语句因编写不当 可能导致系统不安全
教你如何缩小SQL Server数据库日志文件
sql2000卸载了后重新安装时不能安装的解决办法
MySQL密码忘记了,别害怕
如何防止插入删除表造成的数据库死锁
MySQL是否值得我们选择的正反五个理由
8种方法优化MySQL性能
MySQL服务器默认安装之后如何调节性能
MySQL数据库引擎快速指导
分析MS SQL Server里函数的两种用法
MYSQL数据库初学者使用指南
MySQL数据库安全配置指南
教你如何在MySQL数据库中直接储存图片
如何应用SQL Server DBCC避免堵塞
运用Mysql语句生成后门木马的具体方法
MySQL安全性指南 (1)
你的MySQL安全了吗?加铸23道安全门
MySQL中文参考手册---安装MySQL
MySQL管理员指南之--MySQL用户管理
如何利用MySQL加密函数保护Web网站敏感数据

MYSQL 中的 MySQL数据库本地备份和双机相互备份


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 83 ::
收藏到网摘: n/a

MySQL的本地备份和双机相互备份脚本:

首先,我们需要修改脚本进行必要的配置,然后以root用户执行。

◆1. 第一执行远程备份时先用 first参数.


◆2. 本地备份用local参数


◆3. 远程备份不用参数<注意1>


注意:

需要在另一主机上的MySQL用户里添加用户。


需要配置的地方:

# define host and mysql password


REMOTE_HOST="" #远程主机名或IP


REMOTE_PASSWORD="" #远程主机的mysql中的root@本地主机 密码.


# define database path


DB_PATH="/var/lib/mysql" #本地mysql数据库路径


LOCAL_PASSWORD="" #本地mysql root用户密码


DB_BACKUP_PATH="/root/db_bk" #本地备份时数据保存的路径


NO_BACKUP_DB="" 设置本地数据库中不想备份的数据库名,用空格隔开


直接下载

#!/bin/sh


# mysqldump_all.sh


# this scripts is used to backup MySQL database bettwen tow MySQL SERVER!


# define host and mysql password


REMOTE_HOST=""


REMOTE_PASSWORD=""


# define database path


DB_PATH="/var/lib/mysql"


LOCAL_PASSWORD=""


DB_BACKUP_PATH="/root/db_bk"


# define which database no back up, write db anme escap whit space!


# example;


# NO_BACKUP_DB="yns test ps_note"


# this said that if db name is "yns" or "test" or "ps_note", then not backup them!


NO_BACKUP_DB=""


# get the database name and process one by one


echo "Start to Backup...";


#ls /var/lib/mysql > /tmp/mydb.all


if [ "$1" != "help" ]; then


for db in `ls $DB_PATH`; do


if_backup="1"


if [ -d $DB_PATH/$db ] ; then


for noBackDB in $NO_BACKUP_DB ; do


if ( test "$db" = "$noBackDB" ); then


#echo -n "...";


if_backup="";


fi


done


if [ $if_backup ]; then


case "$1" in


first)


echo -n "Crate db [ $db ] on $REMOTE_HOST first!"


result=`mysqladmin -h $REMOTE_HOST --password=$REMOTE_PASSWORD create $db`


if [ ! $result ]; then


echo "...Done!";


else


echo "...Fialed! check your configure plz!";


echo "Remote host said: $result";


exit


fi


;;


local)


# back up to localhost dir.


if [ ! -d $DB_BACKUP_PATH ]; then


mkdir $DB_BACKUP_PATH


fi


echo -n "[ $db ]....Backup to local$DB_BACKUP_PATH with gzip";


if [ -e "$DB_BACKUP_PATH/$db.gz" ]; then


mv $DB_BACKUP_PATH/$db.gz $DB_BACKUP_PATH/$db.1.gz;


fi


mysqldump --password=Walte#Ming $db | gzip > $DB_BACKUP_PATH/$db.gz


echo "...[OK]"


;;


*)


# Do common Backup!


echo -n "[ $db ]...Do Backup! ====>> $REMOTE_HOST/$db";


mysqldump --add-drop-table $db --password=$LOCAL_PASSWORD | mysql -h $REMOTE_HOST --password=$REMOTE_PASSWORD $db


echo "....[OK]";


esac


else


echo "[ $db ]";


echo "***This database set to Not backup!...Operation CANCELED!";


fi


else


echo "[ $db ]";


echo "***Warning! Not a DataBbase. Backup Canceled***";


fi


done


else


echo "Usage: mysqldupm_all.sh [firs|local|help]";


echo "Some question ask for href="mailto:[email protected]";">[email protected]";


fi


# Ended all backup opretion!


echo "";


echo "Note: if there is come wrong message white MySQL, you should check yourconfigure first!";


exit