自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux批量替换目录下所有文件名

【代码】linux批量替换目录下索引文件名。

2023-04-17 16:14:23 285 1

原创 pip使用第三方源安装组件

pip3 install Django==2.2.16 -i https://mirrors.aliyun.com/pypi/simple/

2023-01-10 15:52:26 411

原创 实践练习六:查看 OceanBase 执行计划

1.安装benchmarksqlunzip benchmarksql-5.0.zipvi /export/benchmarksql-5.0/src/client/jTPCC.java修改代码添加else if (iDB.equals("mysql")) dbType = DB_UNKNOWN;vi /export/benchmarksql-5.0/src/client/jTPCCConnection.java修改代码编译安装cd /export/benchmarksql-

2022-05-03 01:34:29 710

原创 实践练习一:OceanBase Docker 体验

1.拉取和运行OceanBase CE 容器docker pull obpilot/oceanbase-ce:latest docker run -itd -m 10G --name oceanbase-ce obpilot/oceanbase-ce:latest2.启动集群obd cluster start test遇到以下两个报错[ERROR] (127.0.0.1) open files number must not be less than 20000 (Current

2022-05-02 18:32:24 3496 1

原创 scp带密码后台传输

1.安装sshpassyum -y install sshpass2.后台传输文件(密码中若有特殊字符需加单引号)nohup sshpass -p '服务器密码' scp /data/cc.sql [email protected]:/data/backup &

2022-03-28 11:02:17 3612

原创 实践练习四:迁移 MySQL 数据到 OceanBase 集群

练习目的本次练习目的掌握从 MySQL 向 OceanBase 迁移数据的基本方法:mysqldump、datax 、canal 等。练习内容请记录并分享下列内容:(必选)使用 mysqldump 将 mysql的表结构和数据同步到 OceanBase 的MySQL 租户中。(必选)使用 datax 配置至少一个表的 MySQL 到 OceanBase 的 MySQL 租户的离线同步。1.mysqldump 迁移 MySQL 表到 OceanBase1.导出指定数据库的表结构(不包括数据)m

2022-03-27 23:48:19 2875

原创 实践练习二:手动部署 OceanBase 集群

更改系统参数下载离线包上传至中控机https://open.oceanbase.com/softwareCenter/community安装obdrpm -ivh ob-deploy-1.2.1-9.el7.x86_64.rpm 构建本地源source /etc/profile.d/obd.shobd mirror clone *.rpm准备配置文件## Only need to configure when remote login is require..

2022-03-26 23:45:58 1084

原创 LC_ALL: cannot change locale (en_US.UTF8)问题解决

ssh登陆机器后报错-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF8)/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF8)检查后发现是docker,应该是环境变量问题。解决方案:执行以下命令恢复了sudo localedef -i en_US -f UTF-8 en_US.UTF-8...

2022-03-01 14:15:00 14714 3

原创 查看未提交事务或sleep session最后执行的sql语句

查看未提交事务或sleep session最后执行的sql语句SELECT *FROM performance_schema.threads t1 JOIN performance_schema.events_statements_current t2 ON t1.THREAD_ID = t2.THREAD_ID JOIN information_schema.processlist t3 ON t3.ID = t1.PROCESSLIST_IDWHERE t3.ID = 21150079;2

2022-01-26 18:34:25 1412

原创 python Django ORM ,用filter方法表示“不等于”的方法

使用Q对象例如过滤某个IPfrom django.db.models import Q Instance.objects.filter.(~Q(instance_ip='1.1.1.1'))

2021-12-15 18:22:42 3007

原创 MySQL sql trace的使用

调大trace的容量,防止被截断set session optimizer_trace_max_mem_size = 10485760;开启optimizer_traceset session optimizer_trace=“enabled=on”;执行SQLselect * from test03 where create_time > ‘2021-10-01 02:04:36’;SQL执行完成之后,查看TRACEselect TRACE from INFORMATION_SCHEM

2021-12-10 15:16:34 553

原创 linux通过bg后台执行作业

通常执行后台作业使用nohup,但是如果未加任何处理执行了命令,再想使用nohup为时已晚。可以通过bg命令实现后台继续执行。例如:1.执行命令[root@mylinux]# scp -r mysql_backup 10.10.10.10:/data/2.ctrl + z暂停[1]+ Stopped scp -r mysql_backup 10.10.10.10:/data/[root@mylinux]# 3.查询暂停的任务号[root@mylinux

2021-10-11 14:53:09 651

原创 通过zabbix数据库批量查询服务器最新磁盘剩余空间

主要涉及两个sqlsql1:select t1.hostid,t1.name from hosts t1 join hosts_groups t2 on t1.hostid=t2.hostid where t1.available=1 and t1.status=0 and t2.groupid in(1,2);t2.groupid in(1,2)为主机群组的groupid,这里举例groupid为1和2,可以直接查询groups表获取groupid。如果不区分群组可以去掉这个条件。sql2

2021-10-09 14:52:42 691

原创 slave_exec_mode参数跳过复制异常

通过将slave_exec_mode设置为IDEMPOTENT模式,可以跳过主键冲突错误和删除行不存在错误。set global slave_exec_mode='IDEMPOTENT';stop slave;start slave;接着,可以通过pt工具比对主从数据差异并修复,最后重新调整为严格模式set global slave_exec_mode='STRICT';stop slave;start slave;...

2021-10-08 17:51:14 185

原创 linux批量替换文件夹中所有文件内容

记录一下,以防自己忘了~替换单个文件sed -i "s/旧字符串/新字符串/g 文件名替换文件夹中所有文件内容sed -i "s/旧字符串/新字符串/g" `grep "旧字符串" -rl 目录`

2021-09-27 16:00:52 2876 1

原创 redis 6.0 redis-proxy搭建

一.搭建redis cluster(本例是在测试环境搭建,所以cluster6个节点及proxy节点都在一台机器)1.下载gcc及依赖redis 5.0之后版本的redis-cli --cluster已经实现了集群的创建,无需依赖redis-trib.rb,包括ruby环境gcc版本需要升级,编译安装需要gcc5.3以上yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devt

2021-07-19 11:07:32 1717

原创 python导出mysql授权语句

vi grants.pyimport sysimport getoptimport pymysqlopts, args = getopt.getopt(sys.argv[1:], "m:")for op, value in opts: if op == '-m': mm = value else: sys.exit()def get_conn_master(): conn = pymysql.connect( host

2021-07-05 11:06:38 114

原创 linux生成大文件

在当前目录生成一个1G的名为test的文件dd if=/dev/zero of=test bs=1M count=1024

2021-06-17 14:13:00 203

原创 常见raid介绍

对于DBA来说,可能并不经常会基础到底层基础硬件相关的东西,但是相关的一些知识能够具备当然更好,以下简单罗列了一些常见raid。raid 0:空间:不变化故障:0容忍性能:高容量:L*NRaid 1:空间:减半故障:一块性能:高容量:(L/2)*NRaid 5:空间:不变化故障:一块性能:低容量:(L-1)*NRaid 10:空间:不变化故障:每一个子阵列允许坏一块性能:高容量:(L/2)*N300G 8块为例:RAID 0: 2.4T、Raid1 1.2T、Ra

2021-06-17 10:56:44 201

原创 MySQL更换内存分配器

除了mysql原生的内存分配器之外,还有两种内存分配器的性能更佳。在之前遇到过mysql内存泄漏的问题中,通过更换内存分配器的方式成功解决。以下是两种内存分配器的配置方法:jemalloc1.安装jemallocgit clone https://github.com/jemalloc/jemalloccd jemalloc./autogen.sh./configuremake && make install2.mysql配置jemalloc修改mysql配置文件,添加[

2021-06-15 20:41:33 938

原创 linux scp限制传输速度

当跨机房传输大文件例如数据库备份文件时,为了不把生产带宽占满,可以使用手动限速的方式传输文件。使用-l参数,单位为KB/s例如:scp -l 1024 mysql.sql 10.0.1.1:/data/bak/限制每秒传输1024KB,即1MB每秒。...

2021-04-20 16:13:16 7292

原创 Linux物理CPU及逻辑CPU查看

物理CPU:服务器插槽上实际的CPU个数查看方法:cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l 逻辑CPU:查看方法:cat /proc/cpuinfo |grep "processor"|wc -l 查看CPU核数:cat /proc/cpuinfo |grep "cores"|uniq 计算方法:逻辑CPU数=物理CPU数 * CPU核数(弱支持超线程则再*2)...

2021-03-22 13:53:44 163

原创 ssh_exchange_identification: Connection closed by remote host解决方法

scp远程传输文件时发现报ssh_exchange_identification: Connection closed by remote host尝试ssh报相同的错误,首先telnet 22端口排除防火墙问题。查看/etc/hosts.allow配置文件,看是否设置了白名单。cat /etc/hosts.allowsshd:10.1.22.13:allow果然做了限制,将 sshd:10.1.22.13:allow改为sshd: ALL或者添加需要ssh的IP即可。...

2021-02-19 16:19:26 4964

原创 MySQL查询冗余索引和未使用过的索引

MySQL5.7及以上版本提供直接查询冗余索引、重复索引和未使用过索引的视图,直接查询即可。查询冗余索引、重复索引select * sys.from schema_redundant_indexes;查询未使用过的索引select * from sys.schema_unused_indexes;如果想在5.6和5.5版本使用,将视图转换成SQL语句查询即可查询冗余索引、重复索引select a.`table_schema`,a.`table_name`,a.`index_name`,a.

2021-02-02 10:14:11 1945 1

原创 统计mysql binlog日志总大小

a=`find /export/data/mysql/data/ -name "mysql-bin*"|xargs du -s|awk '{print $1}'|awk '{sum1+= $1}END{print sum1}'`b=$(expr $a / 1024 / 1024)echo $b'G'

2021-01-18 14:13:12 1096

原创 Redis常用命令

Redis常用命令1.redis-cli的用法a)连接redis(参数后面必须加空格)redis-cli -h xx.xx.xx.xx -p 6379 -a "xxxx"b)–bigkeysredis-cli --bigkeys统计bigkey的分布,使用scan命令对redis的键进行采样,从中找到内存占用比较大的键,这些键可能是系统的瓶颈。生产环境执行时强烈建议在从节点实行,如果担心OPS太高,可以使用 -i 0.1 ,表示每100条scan命令休眠0.1秒c)–hotkeysred

2021-01-18 09:23:02 356

原创 crontab定时任务不生效问题解决

导致crontab定时任务不生效问题可能的原因非常多首先,排查一些可能会导致问题出现的简单原因。1.Linux的时间与互联网时间不一致2.定时执行的.sh文件无执行权限3.crontab进程未启动4.定时任务重定向日志的路径不存在5.环境变量问题6.没有写绝对路径通过排查,一一否定了上述所有可能,不是某个定时任务有问题,而是所有定时任务均不生效。继续查看crontab的日志tail -f /var/log/cronDec 3 08:30:01test crond[21199]: (r

2020-12-03 15:23:52 17997

原创 grep匹配上下几行的方法

-A显示匹配后和它后面的n行。(After,之后)-B显示匹配行和它前面的n行。(Before,之前)-C匹配行和它前后各n行。(Context,上下文)例如cat test.log |grep -B 1 zabbix查看test.log文件中带zabbix关键字的行及上面一行...

2020-11-19 16:01:43 6849

原创 误删除了mysql库的user表解决办法

如果线上数据库的user表被误删除了,如果发生了此情况,千万不要慌,可以用多种方法去恢复1.delete from mysql.user;如果是使用delete删除了mysql.user表的数据,直接通过binlog2sql生成回滚数据插入即可。2.drop table mysql.user;或truncate table mysql.user;如果是drop或者truncate最好的方法是使用近期的备份去恢复,因为用户表的变动很小,使用最近的备份基本是能够恢复所有数据的。如果没有备份,首先使用s

2020-11-17 14:28:25 2588 2

原创 mysql查询索引相关信息查询

#索引数大于7的表select table_schema,table_name,count(*) count from (select distinct TABLE_NAME,table_schema,index_NAME from information_schema.STATISTICS)A group by table_schema,TABLE_NAME HAVING count>7 order by count desc ;#组合索引中字段多于5的表select table_sch

2020-10-16 15:51:48 576

原创 mysqld: [Warning] World-writable config file ‘/etc/my.cnf‘ is ignored.问题解决

mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql初始化mysql时报错mysqld: [Warning] World-writable config file '/etc/my.cnf' is ignored.检查后是my.cnf权限不对,之前因为其他问题以为my.cnf权限不够直接授权为777。报错意思是参数文件权限全局可写,任何一个用户都可以写,有安全隐患所以忽略掉这个配置文件。chmod 644 /et

2020-10-13 17:20:03 1267

原创 explain for connection用法

当show processlist时遇到慢sql通常会去看sql的执行计划。如果sql过长会显示不全。一般我们会使用show full processlist去查看完整的语句并explain语句得到执行计划。也可以使用explain for connection直接查看正在执行sql的执行计划。例如:mysql> show processlist;+----+------+-----------------+------+---------+------+----------+----------

2020-10-13 14:08:24 1217

原创 python使用print语句时显示特殊字符

正常情况下输入print("test\n\t\r")会输出test用r" “可以表示’” "内部的字符串默认不转义print(r"test\n\t\r")输出test\n\t\r

2020-09-21 09:29:15 4060

原创 python三引号的作用及用法

python中三引号允许一个字符串跨多行,也可以包含换行符、制表符、引号以及其他特殊字符。举例:test = """... test \@#*... test '... test "... """... print(test)test \@#*test 'test "

2020-09-18 14:57:49 2366

原创 redis查询key的数量

方法1:dbsize显示当前库key的数量192.168.0.1:6379> dbsize(integer) 69421方法2:info keyspace可以看到所有库key的数量192.168.0.1> info keyspace# Keyspacedb0:keys=69421,expires=10845,avg_ttl=570070743方法3(不建议):keys * 查询所有key数据量很小的时候可以使用,生产环境极不推荐。会引起阻塞,严重的话会引起应用程序出现

2020-08-11 10:58:13 32870 2

原创 mysql执行计划字段解释

idid值有相同,又有不同:id值越大越优先;id值相同,从上往下顺序执行select_type 查询类型PRIMARY:包含子查询SQL中的主查询(最外层)SUBQUERY:包含子查询SQL中的子查询(非最外层)simple:简单查询(不包含子查询、union)derived:衍生查询(使用到了临时表)a.在from子查询中只有一张表b.在from子查询中,如果有table1 union table2,则table1就是derived,table2就是unionunion:上例uni

2020-08-03 17:21:21 196

原创 MySQL备份脚本

#!/bin/bash# 备份文件要保存的目录basepath='/data/backup/'user="root"pass="mypassword"mv /data/backup/backup.log /data/backup/backup-$(date +%Y%m%d-%H%M%S).logecho "start time:`date +%s`">>/data/backup/backup.logif [ ! -d "$basepath" ]; then mkdir -p "

2020-07-31 09:09:11 122

原创 Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode错误解决

MySQL5.6迁移至5.7,常用的方法是新搭建5.7作为5.6的从库。start slave时遇到报错: Slave_IO_Running: Yes Slave_SQL_Running: No …… Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode. Encountered event Gtid, relay-log name ./mysq

2020-06-19 11:16:31 624

原创 TIDB报错statement count 5001 exceeds the transaction limitation, autocommit = false问题解决

【TiDB 版本】:3.0.12报错信息:statement count 5001 exceeds the transaction limitation, autocommit = false开发反馈数据写入失败,查看tidb.log发现了该报错,语句与开发提供的语句一致。通过查看tidb官网stmt-count-limitTiDB 单个事务允许的最大语句条数限制。默认值:5000在一个事务中,超过 stmt-count-limit 条语句后还没有 rollback 或者 commit,TiD

2020-06-01 17:30:42 1183

原创 模拟端口监听

安装数据库之前想测一下防火墙,需要模拟一下端口监听,再从原地址telent目标地址的端口,使用nc命令模拟端口监听nc -l 0.0.0.0 3306

2020-05-19 10:59:12 1525

gh-ost-binary-linux-20170914095800.tar

gh-ost-binary-linux-20170914095800.tar 常采用的是对几百万以上的表用pt-online-schema-change,这种方式会产生大量的binlog,业务高峰期不能做,会引起主备延迟,gh-ost有一定优势

2019-01-22

binlog2sql

mysql闪回工具,误删数据回滚使用,使用方法见个人博客

2019-01-08

奖学金评定系统

奖学金评定系统

2014-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除