Mysql分库分表导出导入和数据量统计测试
需求:添加创建了分库分表后,业务可能将数据已经写入,但未来得及接入到otter汇总库。接入汇总库前需要初始化这部分数据。
1.导出
ip_port_list=(5.5.5.101:3306 5.5.5.102:3306)
len=${#ip_port_list[@]}
for ((i=0;i<=$len-1;i++))
do
db_ip=`echo ${ip_port_list[i]} | awk -F[:] '{print $1}'`
db_port=`echo ${ip_port_list[i]} | awk -F[:] '{print $2}'`
mysql -h$db_ip -P$db_port -uroot -proot 2>/dev/null -Ns>test_shard_${db_ip}_${db_port} <<EOF
select table_schema,table_name from information_schema.TABLES where table_schema like 'test_shard_%' and table_name like 'test_%';
EOF
cat test_shard_${db_ip}_${db_port} |while read line
do
schema_name=`echo $line | awk '{print $1}'`
table_name=`echo $line | awk '{print $2}'`
echo `date "+%Y-%m-%d %H:%M:%S"` "start dump ${schema_name}_${table_name}..."| tee -a all_tables.log
mysqldump -h$db_ip -P$db_port -uroot -proot 2>/dev/null --databases ${schema_name} --tables ${table_name} -t -c --single-transaction > $table_name.sql
sed -i "s/$table_name/test/g" $table_name.sql
done
done
导出脚本
2.导入
ls -l *.sql |awk '{print $9}' | while read line
do
mysql -h5.5.5.101 -uroot -proot -P3306 test < $line
done
导入脚本
3.数据量统计
ip_port_list=(5.5.5.101:3306 5.5.5.102:3306)
len=${#ip_port_list[@]}
sum=0
for ((i=0;i<=$len-1;i++))
do
db_ip=`echo ${ip_port_list[i]} | awk -F[:] '{print $1}'`
db_port=`echo ${ip_port_list[i]} | awk -F[:] '{print $2}'`
mysql -h$db_ip -P$db_port -uroot -proot 2>/dev/null -Ns>test_shard_${db_ip}_${db_port} <<EOF
select concat(table_schema,'|',table_name) from information_schema.TABLES where table_schema like 'test_shard_%' and table_name like 'test_%';
EOF
for line in `cat test_shard_${db_ip}_${db_port}`
do
schema_name=`echo $line | awk -F['|'] '{print $1}'`
table_name=`echo $line | awk -F['|'] '{print $2}'`
query_sql="select count(*) from $schema_name.$table_name;"
cnt=$( echo "$query_sql" | mysql -h$db_ip -uroot -proot -P$db_port 2>/dev/null -s)
echo "$schema_name.$table_name have $cnt rows."
let "sum=sum+cnt"
#rm -rf test_shard_${db_ip}_${db_port}
done
done
echo $sum
数据量统计脚本
Mysql分库分表导出导入和数据量统计测试的更多相关文章
- mysql分库分表,做到永不迁移数据和避免热点
作者:老顾聊技术 搜云库技术团队 来源:https://www.toutiao.com/i6677459303055491597 一.前言 中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就 ...
- 【转】mysql分库分表,数据库分库分表思路
原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路 一. 数据切分 关系型数 ...
- MYSQL分库分表和不停机更改表结构
在MYSQL分库分表中我们一般是基于数据量比较大的时间对mysql数据库一种优化的做法,下面我简单的介绍一下mysql分表与分库的简单做法. .分库分表 很明显,一个主表(也就是很重要的表,例如用户表 ...
- mysql分库分表(二)
mysql分库分表 参考: https://www.cnblogs.com/dongruiha/p/6727783.html https://www.cnblogs.com/oldUncle/p/64 ...
- MySQL分库分表的一些技巧
分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万 ...
- Mysql分库分表方案
Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. m ...
- mysql分库 分表
原文链接:http://www.jianshu.com/p/89311703b320 传统的分库分表传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库.分库分库的原因 首先, ...
- 【分库、分表】MySQL分库分表方案
一.Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. ...
- Java互联网架构-Mysql分库分表订单生成系统实战分析
概述 分库分表的必要性 首先我们来了解一下为什么要做分库分表.在我们的业务(web应用)中,关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量.连接数.处理能力等都很有限,数据库本身的“有状态性” ...
随机推荐
- zabbix-server配置文件详解
zabbix官方文档:https://www.zabbix.com/documentation/4.0/zh/manual zabbix-server端的配置文件在/etc/zabbix/zabbix ...
- C#设计模式学习笔记:(9)组合模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7743118.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲结构型设计模式的第四个模式--组 ...
- iOS闪退日志的收集和解析
在开发过程中往往会遇见有个别用户或者测试人员反馈app的闪退现象,而项目一般集成的统计闪退的第三方库是笼统的统计了所有的闪退信息,无法去定位某一个用户提出的某一个时间点的某一个闪退问题,于是乎这个时候 ...
- sql server 基本操作
1输入如下命令,即可通过SQL Server命令行启动.停止或暂停的服务. SQL Server命令行如下: 启动SQL ServerNET START MSSQLSERVER 暂停SQL Serve ...
- php ./configure的一些参数及意义
PHP编译参数的含义 ./configure –prefix=/usr/local/php php安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-c ...
- Windows通过DOS命令行设置IP地址
@rem 设置固定IP地址netsh interface ip set address "本地连接" static 192.168.1.200 255.255.255.0 192. ...
- opencv二值化的cv2.threshold函数
(一)简单阈值 简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了.函数为cv2.threshold() 这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个 ...
- DC-8靶机渗透实战
前言: 本文将讲述通过信息收集,再web站点的sql注入漏洞加john爆破登录后台,然后找到远程代码执行漏洞getshell,最后用exim4命令提权漏洞进行权限提升拿到最终的flag. 0x00 环 ...
- 数据结构(集合)学习之Set
集合 框架关系图: Collection接口下面有三个子接口:List.Set.Queue.此篇是关于Set<E>的简单学习总结. 补充:HashTable父类是Dictionary,不是 ...
- qt 带箭头的直线 (类似viso)
2020.02.27 本来上传到CSDN,后来想想,我要放弃csdn了.csdn已经跟我分享的精神背道而驰了.想要代码,留邮箱吧. 近来Qt开发时可能遇到这样的需求:两个(或多个)矩形,要用直线将它们 ...