数据库备份的脚本,记录下,还需优化下

Posted 微风伏面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库备份的脚本,记录下,还需优化下相关的知识,希望对你有一定的参考价值。

由于公司数据比较重要,隔一段时间就需要备份,就写了个简单的shell来维护下。。。

#!/bin/bash
#backup database
if [ $# -ge 1 ] ; then
  databaselist=$@
else
  databaselist="dodo_account dodo_edu"
fi
 
for database in $databaselist
do
if [ ! -e /home/guimingming/backup_databases/$database ]
then 
   mkdir -p /home/guimingming/backup_databases/$database
fi
 
mysqldump --opt -hxx.xx.xx.x -u{username} -p{pwd} $database |gzip > /home/guimingming/backup_databases/$database/$database$(date +"%Y-%m-%d %H:%M:%S").sql.gz
if [ $? -eq 0 ]
then
   echo "$(date +"%Y-%m-%d %H:%M:%S") Database ---$database---  Backup Successfully Completed\\r\\n"
   find /home/guimingming/backup_databases/$database/ -name $database\\* -ctime +1 -exec rm -rf {} \\;
else
    echo "$(date +"%Y-%m-%d %H:%M:%S") Database  ---$database---  Backup unsuccessfully,please check out the reason\\r\\n" 
fi
 
done
 
 
#!/bin/bash 
# 假设将database_name数据库名改为database_name_2_2016_06_28 
# MyISAM直接更改数据库目录下的文件即可  
mysql -uroot  -e \'create database if not exists database_name;\' 
list_table=$(mysql -uroot -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA=\'database_name_2\'")  
for table in $list_table 
do
mysql -uroot -e "rename table database_name_2.$table to database_name.$table" 
done
#mysql -u root database_name_2<database_name_220160628-frm
 
 
0 3 * * 1 sh /usr/local/shell/backup_database.sh >/dev/null  2>&1
0 3 1 * *  sh /usr/local/shell/backup_database.sh  {param}>/dev/null 2>&1
 
原文:http://www.cnblogs.com/guixiaoming/p/7427076.html

以上是关于数据库备份的脚本,记录下,还需优化下的主要内容,如果未能解决你的问题,请参考以下文章

备忘录ORACLE数据库每日计划EXPDP备份

分页优化+表锁和库存优化+数据库的备份和导入

linux 下RMAN备份shell脚本

linux系统下mySQL数据库 备份方法和脚本?

Linux下定时备份MySQL数据库的Shell脚本

shell判断oracle主备数据库备份脚本