#!/bin/bash
# Author: wjxie
# Created at: 2014-12-19
# Feature: dump and clear table ad.ad_hit
set -e
USERNAME="******"
PASSWORD="******"
DATABASE="ad"
MYSQL=`which mysql`
TODAY=`date +%Y-%m-%d`
YESTERDAY=`date -d yesterday +%Y-%m-%d`
DUMP_FILE="/root/workspaces/sql.dump/ad_hit.sql."$TODAY
LOG_FILE="/root/workspaces/sql.dump/shell.log"
echo "==================== "$TODAY" ====================" >> $LOG_FILE
count=`$MYSQL $DATABASE -u$USERNAME -p$PASSWORD <<EOF | tail -n +2
select count(id) from ad_hit where created_at < '$YESTERDAY';
exit
EOF`
echo "ad_hit created before yesterday has "$count" records." >> $LOG_FILE
if [[ $count -gt 10000000 ]];then
# dump ad_hit before yesterday
# -t : only dump data, not to dump schema
# --single-transaction : not to prevent read and write, but keeps repeatable r ead. this will only works for innodb
# --quick : not to cache query result in memory, dump directly
start_time=`date +%s`
mysqldump -u$USERNAME -p$PASSWORD -t --single-transaction --quick $DATABASE ad _hit --where="created_at < '$YESTERDAY'" > $DUMP_FILE
end_time=`date +%s`
cost_time=$[ end_time - start_time ]
echo "dump ad_hit finished, cost "$cost_time" s." >> $LOG_FILE
# clear ad_hit before yesterday, optimize table
start_time=`date +%s`
$MYSQL $DATABASE -u$USERNAME -p$PASSWORD <<EOF
delete from ad_hit where created_at < '$YESTERDAY';
optimize table ad_hit;
exit
EOF
end_time=`date +%s`
cost_time=$[ end_time - start_time ]
echo "clear and optimize ad_hit finished, cost "$cost_time" s." >> $LOG_FILE
fi
分享到:
相关推荐
mysql导出指定表并分表存储sql文件且压缩的shell脚本,数据库数据过大时,可以用于数据库备份
防止误删服务器数据库 ,使用Shell脚本备份...mysql数据里面有个atguiguDB数据库 将这个数据库备份到/data/backup/db -----》shell脚本写到/usr/sbin/mysql_db_backup.sh---》然后将脚本设置到crond执行 2)代码实现
使用shell脚本分页读取MySQL数据 脚本背景 由于要在Linux上,远程读取mysql的表的数据,然后做一定清洗后,把数据上传至Hadoop集群中,使用Java写吧,感觉太麻烦了,得在Win上开发好,还得打成jar包, 上传到Linux上...
mysql用shell命令导出数据,执行存储过程
使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。 1、右键Navicat中的数据库→数据传输(Data Transfer)。 2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)...
NULL 博文链接:https://codingstandards.iteye.com/blog/604541
主要介绍了shell脚本实现mysql定时备份、删除、恢复功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
Linux下将远程mysql数据库需要的数据导出到本地文件,然后将文件导入到本地的oracle数据库中,通过shell脚本和sqlldr实现每日定时任务
sqlite3-to-mysql:使Sqlite3导出MySQL可读
要将mysql的查询结果导出为csv,一般会使用php连接mysql执行查询,将返回的查询结果使用php生成csv格式再导出。 但这样比较麻烦,需要服务器安装php才可以实现。 直接使用mysql导出csv方法 我们可以使用 into ...
注意: ...此脚本利用mysqldump命令,mysqldump命令是mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。配合 crontab命令 实现自动备份。 知识扩展 my
集成环境:集成了MySQL Shell,提供了与MySQL数据库的交互式命令行访问。 3. 版本更新 MySQL Workbench Community 8.0.36 针对macOS的ARM64架构进行了优化,确保在Apple的M1、M2等芯片的Mac上能够流畅运行。此外,...
代码如下:需求在每天的5点将192.168.3.5上ser_a库中的tb_a表导入到192.168.3.6上的ser_b库中,表名还叫tb_a服务端脚本/usr/shell_clubs/auto_sql/server.sh#!/bin/sh#code by scpman/usr/bin/find /usr/shell_clubs/...
一个简单的 bash 脚本,用于将 MySQL 数据库表内容导出到 HTML 文件中。 常见用例:创建一个带有的数据库,您需要监控并通过邮件将完整内容作为报告发送(请参阅下面的 linux cron 表示例)。 如果需要,可以轻松...
1、导出所有库 系统命令行 mysqldump -uusername -ppassword –all-databases > all.sql 2、导入所有库 mysql命令行 mysql>source all.sql; 3、导出某些库 系统命令行 mysqldump -uusername -ppassword –...
请参阅我仅使用Slack和Shell适配器测试了该脚本,但是它应该适用于大多数适配器。指令授予对数据库的临时访问权限hubot give me <level> access to <database> database 该level对应于您要用于访问指定database的...
地理名称 是一个地理数据库,根据知识共享署名许可,可通过各种网络服务访问和访问。...结果是一个 Linux shell 脚本,它允许您从官方站点下载 GeoNames 数据转储并创建一个 MySQL 数据库结构,您可以在其中导
MySQL管理工具MySQL / MariaDB管理...特征创建/删除/导入/导出数据库创建/删除用户将无限量的信息插入数据库为用户创建新密码续订AUTO_INCREMENT栏删除表格内容自动选择查询使用您自己SQL查询安装克隆存储库git clone ...
本篇文章主要讲如何使用shell实现mysql全量,增量备份。增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录;而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执,并会删除上周留下的mysq-...
自家:hsweb-commons :通用工具类hsweb-easy-orm :为动态表单设计的orm框架hsweb-expands-compress :文件压缩,解压操作hsweb-expands-office :office文档操作( excel读写,模板导出,word模板导出)hsweb-...