数据库备份并分离日志表(按月)sh 脚本

#!/bin/sh
year=`date +%Y`
month=`date +%m`
day=`date +%d`
hour=`date +%H`
dir="/data/dbbackup/file" #备份路径
#db数据备份
db_sqlname="db_bk.sql"  #备份成的文件名
db_sqlnamelog="db_bklog.sql"  #备份成的文件名
db_host="127.0.0.1" #数据库主机
db_user="" #数据库用户名
db_passwd="" #数据库密码
db_dbname="threecards" #数据库名

mkdir $dir/$db_dbname"-"$year$month$day$hour #创建备份路径
bkdir=$dir"/"$db_dbname"-"$year$month$day$hour

ignore="--ignore-table="$db_dbname"."
ignore_log_credit=$ignore"log_credit" #忽略两个按月份拆表的log
ignore_log_table=$ignore"log_table"

db_log="log_credit log_table" #忽略两个按月份拆表的log表名
count=$((($year-2015)*12+$month-4))
for i in  $(seq $count)
do
syear=$((($i+3)/12+2015))
smonth=$(($i+4-($syear-2015)*12))
if [ $smonth -ge 10 ]
then
smonth=$smonth
else
smonth=0$smonth
fi
log_credit=$ignore"log_credit_"$syear$smonth
log_table=$ignore"log_table_"$syear$smonth
ignore_log_credit=$ignore_log_credit" "$log_credit
ignore_log_table=$ignore_log_table" "$log_table
db_log=$db_log" log_credit_"$syear$smonth" log_table_"$syear$smonth" "
done
ignore_log=$ignore_log_table" "$ignore_log_credit
echo "main db backup start"
/usr/bin/mysqldump $ignore_log -h$db_host -u$db_user -p$db_passwd $db_dbname $db_tbname > $bkdir/$db_sqlname
echo "log db backup start"
echo $db_log
/usr/bin/mysqldump  -h$db_host -u$db_user -p$db_passwd $db_dbname $db_tbname $db_log> $bkdir/$db_sqlnamelog

echo "Delete expired file"
find $dir -type f -mtime +5 -exec rm -f {} \;  #清除5天前过期备份
echo "tar"
cd $bkdir
tar -zcvf $bkdir".tar.gz" ./
echo "delete"
rm -rf $bkdir  
时间: 2024-10-10 01:16:18

数据库备份并分离日志表(按月)sh 脚本的相关文章

数据库开发基础-教案-3-认识数据库备份和事务日志备份

认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据库备份 数据库备份可以手动备份和语句备份 一.手动备份数据库 1.鼠标右键选择你要进行备份的数据库-任务-备份 可以在常规选项页面你可以选择备份类型是进行完整数据库备份还是差异数据库备份 2.点击添加选项,选择数据库文件的存放路径 注意文件名记得加后缀.bak,便于恢复时的查找 数据库还原 右键数据库-

恢复数据库备份时提示日志错误

可以打开了恢复的时候增加了这个参数 WITHOUT ROLLING FORWARD 恢复数据库备份时提示日志错误,码迷,mamicode.com

MFC调用系统调色板和数据库备份和收缩日志

CColorDialog dlg; dlg.DoModal(); m_crCurColor = dlg.GetColor();//COLORREF m_crCurColor; BYTE r = GetRValue(m_crCurColor); BYTE g = GetGValue(m_crCurColor); BYTE b = GetBValue(m_crCurColor); 数据库备份 Declare @name varchar(250) EXEC Master..xp_cmdShell 'e

数据库备份还原,日志清理代码

--数据库被占用无法还原解决方法: --1,设置数据库在单用户模式下工作. --设置方法:在需要还原的数据库上右击,在右键菜单命令上选择"属性"- >"选项"- >"状态"- >"限制访问"- >"Single".这是SQLSERVER2005的菜单命令,其它版本请自己查找. --数据库脱机在连机 USE master GO ALTER DATABASE DB SET OFFLINE

阿里云数据库备份如何导入单个表到本地

这里介绍存在数据结构的情况 其中.frm是数据表结构 .bid是数据 1,建立和线上一模一样的数据结构 2,将.bid(这里的bid文件是数据库存储文件) 3,将.bid文件放入mysql同等级数据库里面的名字相同的表里面,覆盖掉 4,我使用的是navicat,找到命令格式,使用下面的命令 ALTER TABLE go_firm IMPORT TABLESPACE; ALTER TABLE go_user IMPORT TABLESPACE; 5,导入成功,导出来 其中navicat总是出错,下

MSSQL2008数据库备份还原和数据恢复

原文:MSSQL2008数据库备份还原和数据恢复   序言 一直想写一篇关于数据库备份与恢复的文章,但基于能力的有限对数据库认知的有限怕不足以准确的表达,最后思考很久还是决定把自己的一些理解写出来供大家参考,也是为了回报自己:出于能力及语言表达能力的有限还望大家包含,如果里面有说的不对的地方还望大家及时提出.好及时修改不至于错误的引导他人. 认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还

SQL SERVER 数据库备份的三种策略及语句

1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋.使用这种类型的备份带来的问题是非常缺乏灵活性,而且当数据库被冲掉后,你面临丢失大量数据的潜在威胁.例如,假设你每天在午夜备份数据库. 如果服务器在晚上11点崩溃了,你将丢失前面23个小时对数据所做的全部修改.对大多数系统来说,这是无法接受的.对此规则,为数不多的例外如下: 1.系统中所存的数据可以

SQL server 数据库备份

备份操作限制 可以在数据库在线并且正在使用时进行备份. 但是,存在下列限制. 并发限制 SQL Server 可以使用联机备份过程来备份数据库. 在备份过程中,可以进行多个操作:例如:在执行备份操作期间允许使用 INSERT.UPDATE 或 DELETE 语句. 但是,如果在正在创建或删除数据库文件时尝试启动备份操作,则备份操作将等待,直到创建或删除操作完成或者备份超时. 在数据库备份或事务日志备份的过程中无法执行的操作包括: 文件管理操作,如含有 ADD FILE 或 REMOVE FILE

数据库备份定期删除程序的开发。

第一.最近客户的服务器数据库备份每天都在进行,随着数据量的不断的增加,备份也在不断的进行变大. 第二.于是一些问题就出现了客户的服务器的磁盘的空间有限,定期数据库备份文件太大而导致无法进行保存问题. 第三.从而导致了服务器宕机以及服务器中一些应用程序以及网站无法使用等等. 第四.所以需要进行解决这个问题就需要开发一个应用程序进行定期的删除数据库的备份以及其他的文件. 第五.在进行删除数据库的备份的时候需要注意是的删除设置的几天前的数据库备份,其他最新的数据库的备份的文件不要删除. 第六:可以应用