mysql数据库备份的shell脚本

数据库数据备份
 
#!/bin/bash
 db_PATH='/datedump/mysql'
 db_DBNAME='ocs'
 db_HOST='127.0.0.1'
 db_PORT='3306'
 db_USER='root'
 db_PASSWORD='root'
 db_DATE=$(date -d now +"%Y%m%d%H%M")
 echo "-------$(date -d now +"%Y-%m-%d %H:%M:%S") begin datedump------" >> ${db_PATH}/db_backup_ocs.log
 echo 'doing....' >> ${db_PATH}/cb_backup_ocs.log
 /usr/local/mysql/bin/mysqldump -h$db_HOST -P$db_PORT -u$db_USER -p$db_PASSWORD --add-locks -q $db_DBNAME | gzip > ${db_PATH}/${db_DBNAME}${db_DATE}.sql.gz
 echo 'success!' >> ${db_PATH}/db_backup_ocs.log
 echo "-------$(date -d now +"%Y-%m-%d %H:%M:%S") end datedump------" >> ${cb_PATH}/db_backup_ocs.log
echo "=====================================================" >> ${cb_PATH}/db_backup_ocs.log
echo '' >> ${db_PATH}/db_backup_ocs.log

上面生成的gzip包,可以用 gunzip **.gz 或者 gzip -d  **.gz进行解压。
注意,当写入crontab中执行的时候。脚本中所有的执行命令最好用全路径。 结论是crontab执行时不会携带用户的环境变量,缺失一些系统变量。需要在脚本里额外添加缺失的环境变量 或者命令写全路径。
邮件发送备份附件
echo "内容:时间为$cb_DATE的数据据库备份" | mutt -a  ${cb_PATH}/${cb_DBNAM    E}${cb_DATE}.sql.gz   -s "ocs数据库备份" [email protected]



http://blog.csdn.net/fafa211/article/details/2344567


备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword -Pprot databasename > backupfile.sql

备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql


还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename


将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

你可能感兴趣的:(mysql,dump,script)