经常会踫到这样的场景需求:批量向MySQL数据库插入数据,显然手工INSERT成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。...1 具体需求 shell脚本批量插入10万条数据到MySQL中,其中对应表唯一索引是用户uid。因此在程序循环1万次数时,每次都使uid自增1就行了。.../bin/bash # FileName: batchinsertmysqlshell1.sh # Description: 使用shell脚本批量插入数据到MySQL中 # Simple...${table_name}(uid,due_time) values ${insertValues}" fi endTime=$(date "+%Y-%m-%d %H:%M:%S") echo "==...== ${endTime} ====" 3 脚本管理 目前已经把这个脚本放在Github了,地址是https://github.com/vfhky/shell-tools,以后脚本的更新或者更多好用的脚本也都会加入到这个工程中
经常会踫到这样的场景需求:自定义时间从MySql流水月表中SELECT出来数据到excel报表文件中,所以自己写了这个shell脚本来处理。...1 实现思路 代码比较简单,主要使用了mysql -e执行SQL语句,然后重定向到txt文件中。...由于linux默认是uft-8的格式,所以在使用awk命令处理完txt文件后,通过iconv命令把utf8的文件转换成最终的gbk文件。.../bin/bash # FileName: exportmysqlshell1.sh # Description: 使用shell脚本导出MySql月表数据到EXCEL中 # Simple...Github了,地址是https://github.com/vfhky/shell-tools,以后脚本的更新或者更多好用的脚本也都会加入到这个工程中。
01 — 初始化pgbench测试数据 使用下面的命令初始化测试数据 -bash-4.2$ pgbench -i -s 2 -F 80 -U postgres dropping old tables....0.07 s, client-side generate 1.07 s, vacuum 0.19 s, primary keys 0.36 s). 02 — 使用内置脚本进行测试 pgbench 的内置测试脚本有...tpcb-like、s simple-update 和 select-only 三种 可以通过以下 命令查看当前版本的p pgbench包含哪些集成的测试脚本: -bash-4.2$ pgbench -...创建一个表 CREATE TABLE tb1 ( id SERIAL PRIMARY KEY, ncode INT ); 向表中插入数据的脚本 -bash-4.2$ cat Insert.sql...\set ncode random(1,900000) INSERT INTO tb1 (ncode) VALUES (:ncode) ; 运行pgbench 使用该脚本进行测试: -bash-4.2
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据。...这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。...40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。...--hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。...先执行的是增量备份脚本,然后执行的是全量备份脚本: [root@test-huanqiu ~]# crontab -e #每个星期日凌晨3:00执行完全备份脚本 0 3 * * 0 /bin/bash
生成 SQL 脚本 这种方式和上面的方式类似,只不过上面通过程序方式直接将拼接出来的 SQL 语句执行了,而这种方式是将拼接好的 SQL 语句写入文件中。当然还是以一条语句插入多行记录的形式。...当然这么大数据量拼接出来的脚本文件也很大,用户表脚本 680 多M,订单表脚本 1个G。 ? 最后将写好的这两个文件分别在 MySQL 中执行。 执行用户表脚本,耗时 3 分钟左右。...mysql -uroot -p mast_slave < sql/insert_user_500w.sql 执行订单表脚本,耗时 7 分钟左右,订单量 750 多万个。...最后执行 load data infile 将文件导入到对应的表中,在执行这个命令后可能会出现下面这个错误提示。...上面的几种方法都配合了 Python 脚本,当然你可以换成自己熟悉的语言,比如 Java,或者直接写 bash 脚本也可以。 脚本已经放到了 github 上,需要的同学请自取。地址: 点击获取源码
Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。...Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构...示例如下所示: ## chsh -s ## chsh ThinkWon -s /bin/sh 在 Shell 脚本中,如何写入注释?...它的意思是命令通过 /bin/bash 来执行。 如何调试 Shell脚本? 使用 -x’ 数(sh -x myscript.sh)可以调试 Shell脚本。...一行中,如果包含 “11111”,则在 “11111” 前面插入 “AAA”,在 “11111” 后面插入 “BBB” 。
Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。...Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构...示例如下所示: ## chsh -s ## chsh ThinkWon -s /bin/sh 在 Shell 脚本中,如何写入注释?.../bin/bash 是 Shell 脚本的第一行,称为释伴(shebang)行。 这里 # 符号叫做 hash ,而 ! 叫做 bang。 它的意思是命令通过 /bin/bash 来执行。...一行中,如果包含 “11111”,则在 “11111” 前面插入 “AAA”,在 “11111” 后面插入 “BBB” 。
备份出来的文件是一个可以直接倒入的sql脚本。该sql文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据。 #!...} |gzip > ${backup_path}/${db_name}_mysql_${date}.sql.gz find ${backup_path} -name "mysql_*.sql.gz" -...对innodb的表空间进行物理复制,但是,它是记录LSN点的。在备份过程中,新增加的输入直接写入备份文件的ibbackup_logfile中。同时记录最后的LSN点。...BACKUP_DIR -mtime +17 -exec rm -f {} \; innobackupex备份 Percona XtraBackup是一款基于MySQL的热备份的开源实用程序,它可以备份5.1到5.7...(1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex则封装了xtrabackup,是一个脚本封装,所以能同时备份处理
三.容灾测试 准备 按照第一步,环境需求中,将mysql开启binlog并重启,也可以设置全局变量,不用重启 vim /root/bin/mybak-all.sh,将全量脚本复制到其中,并 chmod+...,name char(20),age int); 用 vim /root/bin/testsql.sh 命令创建一个数据插入脚本,随机插入一千条数据用于测试。...-p'123456' -e "use test;select count(*) from s1;" 测试 第一次: 更改时间 date -s 2016-04-04 执行全量脚本 bash /root/...*) from s1;" 第二次: 更改时间 date -s 2016-04-05 执行全量脚本 bash /root/bin/mybak-all.sh -uroot -p'123456' 再执行增量脚本...(*) from s1;" 第三次 更改时间 date -s 2016-04-06 执行全量脚本 bash /root/bin/mybak-all.sh -uroot -p'123456' 再执行增量脚本
bash sudo yum -y install sysbench 使用: 数据准备 #!...WARMUP=300 #预热时间(秒) DURING=1800 #持续时间(秒) ROWS=10000000 #每个表中插入1KW行数据 MAXREQ=1000000...sysbench 0.5版本,sysbench升级到1.0后无法使用,现修改部分语法。...WARMUP=300 #预热时间(秒) DURING=1800 #持续时间(秒) ROWS=10000000 #每个表中插入1KW行数据 MAXREQ=1000000...:只读压测QPS图形 通过其他脚本观察sysbench压测过程中的系统信息和数据库信息(来源于《高可用 MySQL》) #!
\"//g' -e 's#/#-#g' ttt.txt >t.txt #i=0时,读文本第一行,创建表import_obj,设置i=1 #i=1,读文本其他行,插入数据到import_obj中 #逐行读数据...,并通过mysql -e command插入到表中 while read ID NAME CREATED do if [ $i -eq 0 ]; then #echo $ID,$NAME,$CREATED.../usr/bin/python # mysql_import.py #使用MySQLdb去实现 import MySQLdb,os,time os.system("sed -e 's/\"//g' ...i=1 else: sql="insert into myimport.import_obj(%s,%s,%s) value(%d,'%s','%s')"%(cid...这里的python中的MySQLdb通过事务,全部执行完毕才提交,一次提交完成那个所有的插入,节省连接与断开的时间。
本文参考的是 pt-table-checksum 的校验逻辑,基于数据块去遍历每个表,然后比对 checksum 的值判断该块是否一致,本文主要是想聊聊我在实现数据校验脚本过程中遇到的问题以及解决思路,...本工具仅供学习使用,如需检查线上的数据,请充分测试 1、校验逻辑 基于主键以一个块遍历数据表,比对 checksum 的值,块的大小可通过参数指定。 (1)获取该表的第一个数据块的查询 SQL 。...,如需规避业务高峰期在低峰执行校验任务,请使用-l参数指定执行时间 ,如'-l 1-5'表示凌晨1点到5点执行校验任务,如果当天六点前没校验完成,会等到次日凌晨1点继续校验 任务管理脚本 moshan...这个脚本主要是针对使用了中间件,比如mycat(mysql到mycat)。或者是tidb(tikv到tidb),这种情况下会占用较多网络带宽。...停止监控及停止数据校验 主程序相关 bash start.sh -f true -d dbatest -t test1 -l 0-5 仅校验dbatest库下的test表,且在0点到5点执行校验任务
应用层(5):Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常...只允许写入一条记录,并且不允许删除此表数据,通过触发器实现。...10秒执行一次,执行频率由keepalived.conf配置文件中interval参数设置, 脚本主要作用为: 检测主库是否存活。...使用pg_rewind 同步新主库的数据到原主库: pg_rewind -R --target-pgdata '/data/pg_data' --source-server 'host=192.168.254.129...使用pg_rewind 同步新主库的数据到原主库: pg_rewind -R --target-pgdata '/data/pg_data' --source-server 'host=192.168.254.128
但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。 ...完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库) 2. 恢复期间所有SQL语句不应该记录到binlog中 四、实现自动化备份 备份计划: 1. 什么时间 2:00 2....备份文件放的位置 备份脚本: [root@egon ~]# vim /mysql_back.sql #!..."),("eee","156")]) #执行sql语句,返回sql影响成功的行数 print(res) conn.commit() #提交后才发现表中插入记录成功 cursor.close() conn.close...rows in set (0.00 sec)' %rows) conn.commit() #提交后才发现表中插入记录成功 cursor.close() conn.close() ''' (1,
Redis,扩展传统关系型数据库的服务能力,用户通过应用直接从Redis中快速获取常用数据,或者在交互式应用中使用Redis保存活跃用户的会话,都可以极大地降低后端关系型数据库的负载,提升用户体验。...在2.6或更高版本的Redis中,Redis -cli脚本支持一种称为pipe管道模式的新模式,这种模式是为了执行大规模插入而设计的。使用管道模式的命令运行如下: ?...编写脚本使用pipe模式导入Redis 编写shell脚本。由于我在主机上是通过docker安装的Redis和MySQL,以下脚本供参考: ? ? #!.../bin/bash starttime=`date +'%Y-%m-%d %H:%M:%S'` docker exec -i 899fe01d4dbc mysql --default-character-set...和超时时间限制,查询数据的过程中,可能会造成连接断开,所以在数据表的数据量特别大的时候,需要分页或者将表拆分导入。
在脚本中,需要包含连接MySQL数据库的相关信息、备份文件的保存路径以及备份命令。 编辑备份脚本:在备份脚本中,使用适当的命令(如mysqldump)来执行MySQL数据备份。...打开终端,运行crontab -e命令编辑Cron表。 编辑Cron表:在Cron表中,添加一行指定备份脚本的执行时间和路径。...在终端中执行bash /path/to/backup.sh命令,检查备份文件是否生成。 自动定时备份:Cron将按照设置的时间自动执行备份脚本,并生成MySQL数据备份文件。...如果是在docker之中,则需要先进入到docker中 要备份Docker中的MySQL,您可以使用以下步骤:查找MySQL容器的名称或ID:运行以下命令来获取正在运行的MySQL容器的名称或ID:docker...ps 进入MySQL容器:使用以下命令进入MySQL容器的命令行界面:docker exec -it bash 在MySQL容器中执行备份命令:在MySQL容器的命令行界面中,可以使用
需要禁止使用navicat,使用命令行操作,并且能记录每个开发执行的SQL语句。...在跳板机上面写了一个shell脚本,开发只能通过执行shell脚本,来连接数据库 环境如下: 跳板机-->centos7-->192.168.78.133 MySQL-->centos6.5-->192.168.78.128...= "exit" ];then #当输入\G时,替换为\\g sql_ex=$(echo "$SQL" | sed 's@\G;$@\\G;@g') ...= 0 ];then echo -e "\033[31m sql执行错误 \033[0m" else #插入数据库...查看数据表 ?
Ø Greenplum是MPP架构数据库的代表,支持行存储和列存储,支持非常完善的SQL语法,开发和使用与传统数据库几乎一致,查询速度通常在1s到10s之间。...GPLoad的实现原理是Greenplum数据库使用可读外部表和并行文件服务gpfdist装载数据的一个命令集合,允许通过使用配置文件的方式设置数据格式、文件位置等参数来创建外部表。...GPLoad命令通过按照YAML格式定义的装载说明配置文件,然后执行insert、update、merger操作,将数据装载到目标数据库表中。...,实现以下功能: 复制yaml模板,并根据shell脚本参数替换数据库表和表名; 从HDFS上线下载文件到本地,要求数据文件必须是TEXT格式; 运行gpload命令,加载数据到Greenplum数据库.../bin/bash # 使用方式 # eg: .
了解更多的日志讯息,可以查看文章:Hibernate 为什么/在何处使用该 SQL 查询? 通过 SQL 日志可以了解哪些指标? SQL 日志可以回答下列问题: 哪些是执行过的最慢查询?...如何解析 SQL 日志 对于大量的日志文件,最可行的解析方式就是使用命令行工具,该方法的好处是非常灵活,只要写一小段脚本或命令,我们可以抽取出几乎大多数指标。只要你喜欢,任何命令行工具都适用。...速成法1——减少生成主键的代价 在插入操作频繁的进程中,主键的生成策略很重要。生成 id 的一种常见方法是使用数据库序列,通常一张表一个 id,从而避免在不同表间进行插入时的冲突。...如果收到对一张新表的插入语句,JDBC 驱动程序会先清除对前一张表的批处理语句,然后开始分批处理针对新表的 SQL 语句。 Spring Batch 内置了相似的功能。...该优化能在插入操作频繁的应用中带来30%到40%的性能提升,而不用改动任何代码行。
CDSW从1.4.2升级到1.5》升级CDSW服务后,启动CDSW服务在Cloudera Manager上显示服务启动失败“”,使用cdsw status命令查看CDSW服务中docker镜像启动情况显示如下...2 问题解决 1.在命令行使用docker命令进入正在运行的web容器中 docker exec -i -t 8ebab7285577 /bin/bash 进入正在运行的web容器中后执行sh run-db-migrations.sh...3.通过上述命令返回的信息,可以看到执行三条SQL语句的时候报错 INSERT INTO engine_images (description, repository, tag) VALUES ('Base...可以看到engine_images表中已插入了Base 7的Image信息,再查看site_config表数据 ? 发现UPDATE语句未执行成功。...2.通过上述现象分析可以看到由于CDSW1.4升级到1.5版本后,Postgresql数据库中一些SQL脚本升级执行失败导致。
领取专属 10元无门槛券
手把手带您无忧上云