关于archive引擎收集的海量数据表的备份

每天按ID区间备份表数据

#!/bin/bash

date -d yesterday +"DATE %Y-%m-%d %H:%M:%S" >> /Mysql_Data/t_collection/ID.log
/usr/bin/mysql -uroot --password="admin" -D userbehavior -e "select max(ID) from t_collection;"|grep -v ‘max(ID)‘ >> /Mysql_Data/t_collection/ID.log
today=`tail -n 1 /Mysql_Data/t_collection/ID.log`
yesterday=`tail -n 3 /Mysql_Data/t_collection/ID.log|grep -v ‘DATE‘|grep -v $today`

sql="use userbehavior;\n
select * from t_collection where ID>$yesterday and ID<=$today into outfile ‘/Mysql_Data/t_collection/`date -d yesterday +"%Y-%m-%d"`.csv‘\n
FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘  ESCAPED BY ‘‘ LINES TERMINATED BY ‘\n‘"

/usr/bin/mysql -uroot --password="admin" -D userbehavior -e "$sql";
cd  /Mysql_Data/t_collection
tar czvf `date -d yesterday +"%Y-%m-%d"`.tgz `date -d yesterday +"%Y-%m-%d"`.csv
rm -f /Mysql_Data/t_collection/`date -d yesterday +"%Y-%m-%d"`.csv

备份某个具体区间的表数据

mysql -p‘password‘ -D userbehavior -e "select * from t_collection where ID>3899999999 and ID<4000000000 into outfile ‘/mnt/backup/t_c/40WW.csv‘  FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘  ESCAPED BY ‘‘ LINES TERMINATED BY ‘\n‘;"

程序修改为分表后的表数据备份脚本如下:

#!/bin/bash
table=t_collection`date -d yesterday +"%Y%m%d"`
sql="use userbehavior;\n
select ID,REPLACE(REPLACE(Path,‘\n‘,‘@‘),‘\r‘,‘@‘),REPLACE(REPLACE(Content,‘\n‘,‘@‘),‘\r‘,‘@‘) ,CreateTime from $table into outfile ‘/data/backup/Mysql_Data/new_collection/`date -d yesterday +"%Y-%m-%d"`.csv‘\n
FIELDS TERMINATED BY ‘|‘ LINES TERMINATED BY ‘\n‘"

/usr/bin/mysql -uroot --password="password" -D userbehavior -e "$sql";
cd /data/backup/Mysql_Data/new_collection/
tar czvf `date -d yesterday +"%Y-%m-%d"`.tgz `date -d yesterday +"%Y-%m-%d"`.csv
rm -f `date -d yesterday +"%Y-%m-%d"`.csv
echo "$(date +%Y%m%d_%H:%M:%S) $table is bak finish">>/data/backup/Mysql_Data/new_collection/t_collection_bak.log
cp `date -d yesterday +"%Y-%m-%d"`.tgz /mnt/GZ_GuangGao_29/Collection/

加入crontab

35 0 * * * root sh /data/backup/scriptshell/t_collectionnew.sh

#!/bin/bash

sql="use userbehavior;\n
select a.* from coocaaDaoHang a\n
where a.createtime like ‘$1%‘\n
into outfile ‘/data/backup/Mysql_Data/DaoHang/$1.csv‘\n
CHARACTER SET gbk \n
fields terminated by ‘,‘ \n
optionally enclosed by ‘\"‘ escaped by ‘\\\‘ \n
lines terminated by ‘\r\n‘;"

/usr/bin/mysql -uroot --password="password" -D userbehavior -e "${sql}";

加入crontab

01 0 * * * root /data/backup/scriptshell/coocaaDaoHang.sh `date -d yesterday +"\%Y-\%m-\%d"`

时间: 2024-08-25 16:44:46

关于archive引擎收集的海量数据表的备份的相关文章

Mysql安装archive引擎更新表引擎

1,在mysql 命令行中安装Archive引擎 1, 查找mysql plugins lib目录,看目录中是否存在Archive的so; mysql > show variables like 'plugin_dir': 2, 查看现有的引擎: mysql > show engines: 3,安装Archive引擎 Mysql> install plugin archive soname 'ha_archive.so'; 4,查看安装结果 Mysql> show engines;

使用Merge存储引擎实现MySQL分表

一.使用场景 Merge表有点类似于视图.使用Merge存储引擎实现MySQL分表,这种方法比较适合那些没有事先考虑分表,随着数据的增多,已经出现了数据查询慢的情况. 这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码.所以使用Merge存储引擎实现MySQL分表可以避免改代码. Merge引擎下每一张表只有一个MRG文件.MRG里面存放着分表的关系,以及插入数据的方式.它就像是一个外壳,或者是连接池,数据存放在分表里面. 对于增删改查,直接操作总表即可. 二.建表 1.用户1表

图像识别引擎-引擎收集知识地图~

图像识别引擎-引擎收集知识地图 识图如今搜索结果还是不够理想,有非常大的提升空间.以下介绍几个比較专业的图片搜索引擎. 1: https://images.google.com/ http://www.google.com/imghp (旧版:http://similar-images.googlelabs.com) 临时的替代品:http://54.250.200.50/imghp http://203.208.46.200/imghp Google实验室类似图片搜索:输入一个关键词后,比如"

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal form-material" th:object="${user}" th:action="@{/user/updateOneUserInfo}" method="post"> <input type="hidden

MySQL 拷贝数据库表方式备份,还原后提示 table xxx &#39;&#39; doesn`t exist

MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Files/MySQL/MySQL Server 5.1/data" 进入上述文件夹,就可以看到MySQL中新建的数据库文件夹了,每个文件夹以数据库名命名的,你想备份哪个数据库,把这个文件夹拷贝走即可.到时还原数据库,把它拷贝到data目录下即可,就这么简单! 但是,今天在一台MySQL服务器上拷贝备份

SQL Server 2012入门图解:建表、备份、还原

SQL Server 2012入门图解:建表.备份.还原_.NET教程网——简单专业的.NET技术网站 http://www.soaspx.com/dotnet/sql/sql2012/sqlserver212_20120504_9079.html 作者:汪宇杰 一.建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库.把它命名为School.并且要在School数据库下建立保存学生信息的表Student.在可视化界面下,我们通常这样操作.(本文是入门教程,不介绍如何用SQL语

Linux命令:MySQL系列之十三--MySQL备份与还原(针对单张表SELECT备份)

对于只备份单张表的备份与还原,通过SELECT命令,可以更快速的达到备份和恢复的目的: 以及通过此方法把一个数据库中表的数据,导入至另一数据库的表中去. 备份格式:SELECT * INTO OUTFILE '/PATH/TO/somefile.txt' FROM table_name [WHERE CLAUSE]; #备份table_name表中的[或者备份满足WHERE语句的数据]数据至服务器上保存. 注释:table_name:需要备份的表  WHERE:满足的条件,可选项. /PATH/

linux mysql 数据按表名称备份

1.按表名称备份 #!/bin/bash #user #数据库用户 dbuser="root" #数据库密码 dbpassword="chenyong" #时间 date=$(date +%Y%m%d) #数据库名称 dbname=sungrowv3 #备份数据保存的路劲 url=/home/test/sql/ #指定数据库的所以表 tables=$(mysql -u$dbuser -p$dbpassword -ss -e "use $dbname;sho

配置文件和配置表定期备份小工具

现在维护的配置文件/表都是人手工备份,上次某机器宕机,想在别的机器上拉起应用,去找备份的时候,发现最近的备份还是去年的,因此有了这个想法写这么一个小工具才进行定期备份.其实细极思恐,每天备份一下还是很有必要的,出事了,也能找到是哪天开始的不是? 设计的思路还是先把哪些机器的文件.哪个数据库的表需要备份,放入数据库中,然后弄一个shell,在某个机器上启动这个shell,使用ftp去备份配置文件,使用exp去dmp数据库文件,完成备份. 首先是数据库设计部分,需要两张表: "机器表":