数据库备份并分离日志表(按月)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-)*+$month-))
for i in $(seq $count)
do
syear=$((($i+)/+))
smonth=$(($i+-($syear-)*))
if [ $smonth -ge ]
then
smonth=$smonth
else
smonth=$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 + -exec rm -f {} \; #清除5天前过期备份
echo "tar"
cd $bkdir
tar -zcvf $bkdir".tar.gz" ./
echo "delete"
rm -rf $bkdir
数据库备份并分离日志表(按月)sh 脚本的更多相关文章
- 查看oracle数据库下面的所有的表,执行某个sql脚本:
查看oracle数据库下面的所有的表: select * from user_tables;//user为用户名 执行某个sql脚本: SQL>@e 文件名.sql
- SQL Server 数据库备份还原和数据恢复
认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据 ...
- SQL SERVER 数据库备份的三种策略及语句
1.全量数据备份 备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...
- MSSQL2008数据库备份还原和数据恢复
原文:MSSQL2008数据库备份还原和数据恢复 序言 一直想写一篇关于数据库备份与恢复的文章,但基于能力的有限对数据库认知的有限怕不足以准确的表达,最后思考很久还是决定把自己的一些理解写出来供大 ...
- MYSQL数据库表按月备份,滚动,保留6次备份
要求: 每月1日0点:在不影响业务的情况下,备份整月的数据,保留6次备份. 思路: 基于MYSQL事件功能,每月按时完成操作 RENAME语句具有原子性,新旧表无缝切换 RENAME语句仅修改表定义, ...
- oracle 数据库备份、还原、和使用心得(表丢失、视图丢失的解决办法)
一.oracle数据备份:exp 关键字 说明(默认值) 关键字 说明(默认值) --------------------------------- ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表
之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表, ...
- sql 2012日志文件频繁出现:svchost (4892) 数据库引擎已分离数据库(1、C:\Windows\system32\LogFiles\Sum\Current.mdb)
svchost (4892) 数据库引擎已分离数据库(1.C:\Windows\system32\LogFiles\Sum\Current.mdb).(时间=0 秒) 内部计时序列: [1] 0.00 ...
随机推荐
- .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1
微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...
- [PHP内核探索]PHP中的哈希表
在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...
- 【小计】新人Tostring前忘记Null判断的处理
ToString和string.Concat(可屏蔽Null的异常)性能相差不大,一些中小项目完全可以用Concat(新人容易忘记判断Null的情况,遇到太多了,所以建议重写tostring方法,内部 ...
- HTML kbd键盘元素
1. 说明 kbd :即Keyboard Input Element(键盘输入元素).表示键盘按键的语义元素,常用于网页上对快捷键.按键说明的场景. 样式规格:内联样式. 为了在页面上突出显示,可以给 ...
- Modify Branding of FreeCAD
Modify Branding of FreeCAD eryar@163.com This article describes the Branding of FreeCAD. Branding me ...
- input[tyle="file"]样式修改及上传文件名显示
默认的上传样式我们总觉得不太好看,根据需求总想改成和上下结构统一的风格…… 实现方法和思路: 1.在input元素外加a超链接标签 2.给a标签设置按钮样式 3.设置input[type='file' ...
- zookeeper源码分析之三客户端发送请求流程
znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...
- JavaScript中事件处理
先看看下面一道题目,请评价以下代码并给出改进意见: if (window.addEventListener) {//标准浏览器 var addListener = function(el, type, ...
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
- 安卓自定义组合控件--toolbar
最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android stud ...