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

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

#!/bin/bash

#backup database

if [ $# -ge 1 ] ; then

[email protected]

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

时间: 2024-10-12 11:26:54

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

sql 数据库备份还原脚本

/**功能:数据库备份*dbname:数据库名称*bakname:备份名称,包含完整路径*/use master BACKUP DATABASE dbname TO disk='c:\bakName' /**功能:数据库还原*@dbname:数据库名称*@bakname:备份名称,包含完整路径*/use master declare @dbname nvarchar(500) declare @bakname nvarchar(500)set @dbname ='dbname' set @bak

《mysql数据库备份小脚本》(转)

vim mysql.sh #!/bin/bashDAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量SIZE=`du -sh /var/lib/mysql //查看mysql的大小并且赋予变量SIZEecho "Date :$DAY" >> /tmp/mysqlbak.txt  //输出日期到mysqlbak.txt文件echo "Date Size : $SIZE" >> /tmp/mysqlbak.txt //输

mysql分库备份 shell脚本 --自创 待优化

#/bin/bash ## ##其实可以先判断目录存在么,可写么 [ -d .. ] [ -w .. ] DATABASES=`mysql -usystem -p'oldboy123' -e "show databases"|grep -v "Database"` for i in $DATABASES do mysqldump -usystem -p'oldboy123' -B $i --skip-lock-tables|gzip >/scott/${i}_

数据库备份shell脚本

法一: #!/bin/bash [ ! -d /server/backup ] && mkdir /server/backup mysqldump -u root -A -B >/server/backup/a.sql [ ! -f /server/backup/a.sql ] && mail -s "bak faile" 法二: #!/bin/sh DATE=$(date +%Y-%d-%m) DES=/usr/src/mysql_bak MYS

Oracle 11g 数据库自动备份执行脚本

@echo offsetlocal enabledelayedexpansiontitle %date% %time:~,8% by LiaoNing Sunray Software Technology ::XXX数据库备份::定义数据库SIDset SID=orcl ::定义用户名数组(各用户间用空格分隔 例如:user1 user2 user3)set userArr=aaaset pswdArr=bbb ::指定删除天数set daysAgo=3 ::指定备份路径set filePath

linux c数据库备份第五版

linux下c实现的数据库备份程序终于迎来第五版啦,这样改程序就暂告一段落啦,有点小激动呢...接下来的一周(可能两周)时间里,我会用一个小型的网络游戏(比拼99乘法)作为我学习linux c的毕业之作...后面接着就是选条路走了“linux网络大数据开发”或者“基于linux的微型系统”了...欢迎各位linux c爱好者私信交流... 在发布上个版本的时候说在这个版会加入开启自动和自动后台运行的,后面有网友提出建议和自己考虑之后就觉得没有必要做这个两件事情啦... 该版本和上一个版本的的功能

SQL Server数据库备份方法

数据库备份,是在数据丢失的情况下,能及时恢复重要数据,防止数据丢失的一种重要手段.一个合理的数据库备份方案,应该能够在数据丢失时,有效地恢复重要数据,同时需要考虑技术实现难度和有效地利用资源. 数据库备份有四种类型,分别应用于不同的场合,下面简要介绍一下. 1.完全备份 这是大多数人常用的方式,它可以备份整个数据库,包含用户表.系统表.索引.视图和存储过程等所有数据库对象.但它需要花费更多的时间和空间,所以,一般推荐一周或一月做一次完全备份. 2.事务日志备份 事务日志是一个单独的文件,它记录数

(2.6)备份与还原--在简单恢复模式下事务日志的角色

简介 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如"简单"这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在开始文章之前,首先要了解SQL Server提供的几种不同备份类型. SQL Server提供的几种备份类型 SQL Server所提供的几种备份类型基本可以分为以下三种(文件和文件组备份以及部分备份不在本文讨论之列): 1.完整(Full)备份:直接将所备份的数据的所有区(Extent)

Ubuntu Server下MySql数据库备份脚本代码

明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份. 实现步骤: 1.创建保存备份文件的目录:/home/mysql_datacd /home #进入目录mkdir mysql_data #创建目录2.创建备份脚本文件:/home/mysql_data/m