08 2019 档案
摘要:http://blog.chinaunix.net/uid-31396856-id-5758295.htmlhttps://blog.51cto.com/legehappy/2151986?source=drahttps://blog.csdn.net/wzy0623/article/details
阅读全文
摘要:手动触发 每天定期的去执行一次 写了一个脚本 bgrewriteaof.sh 内容如下: #!/bin/bash /usr/local/redis/redis-cli -p 6379 -h 127.0.0.1 BGREWRITEAOF 添加权限 chmod 755 brgewriteaof.sh 设
阅读全文
摘要:https://blog.csdn.net/tenaguan4461/article/details/82286781 https://www.jianshu.com/p/b3dac5a3479a
阅读全文
摘要:最近在数据库优化的时候,看到一些表在设计上使用了text或者blob的字段,单表的存储空间已经达到了近100G,这种情况再去改变和优化就非常难了 一、简介 为了清楚大字段对性能的影响,我们必须要知道innodb存储引擎的处理方式: 1、一些知识点 1.1 在InnoDB 1.0.x版本之前,Inno
阅读全文
摘要:摘要:MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 本文将从操作手册、技术研究、会议分享、场景应用等几个方面给大家推荐干货好文。 MongDB操作手册 快速入门旨在帮助您快速创建MongoDB实例、对实例进行基本设置以及连接实
阅读全文
摘要:MongoDB支持客户端灵活配置写入策略(writeConcern),以满足不同场景的需求。 db.collection.insert({x: 1}, {writeConcern: {w: 1}}) writeConcern选项 MongoDB支持的WriteConncern选项如下 w: <num
阅读全文
摘要:MongoDB journal 与 oplog,谁先写入?最近经常被人问到,本文主要科普一下 MongoDB 里 oplog 以及 journal 这两个概念。 journal journal 是 MongoDB 存储引擎层的概念,目前 MongoDB主要支持 mmapv1、wiredtiger、m
阅读全文
摘要:一、前言 vmstat命令: 用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况 二、虚拟内存运行原理 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使
阅读全文
摘要:MySQLdb要快点,原因是这个是C写的,速度快 MySQLdb只支持Python2.x,还不支持3.x 可以用PyMySQL代替。安装方法:pip install PyMySQL 然后在需要的项目中,把 __init__.py中添加两行: import pymysqlpymysql.install
阅读全文
摘要:https://blog.csdn.net/cnh294141800/article/details/53768464
阅读全文
摘要:https://blog.csdn.net/xiongwenwu/article/details/79981712
阅读全文
摘要:一、分布式数据一致性 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。 1.什么是数据一致性 在数据有多份副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致,
阅读全文
摘要:1、id: MySQL Query Optimizer 选定的执行计划中查询的序列号。 2、select_type: 所使用的查询类型,主要有以下这几种查询类型。 DEPENDENT SUBQUERY:子查询内层的第一个select,依赖于外部查询的结果集。 DEPENDENT UNION:子查询中
阅读全文
摘要:DBA守则在对生产环境进行修改前,一定要进行备份,一定要在测试环境进行测试,否则不要进行轻易的更改一次尽量只做一件事,不要受环境影响 DBA的十大任务1.了解和掌握硬件环境2.规划数据库3.安装数据库软件和创建数据库4.日常运行监控管理和故障处理5.性能优化6.数据库备份/恢复7.数据库安全性管理8
阅读全文
摘要:绩效考核是对一名员工所作工作的数量、质量、难度、强度、效率的量化考量。由于DBA的工作性质与纯粹的研发人员或运维人员有所区别,对DBA的KPI考核指标也有其特殊性。参考以往的经验和一些较大的DBA team(如阿里巴巴80多人的DBA队伍)的做法,对一名DBA的绩效大致可以从以下四个方面进行考核:
阅读全文
摘要:1、into outfile 生成sql:一般都是生成文本或者其他形式的文件,现在需要生成sql形式的文件。配置文件加secure_file_priv=''select concat('insert into tab_name(id,name,age) values(',id,',','\'',na
阅读全文
摘要:strace介绍及用途 strace是一个用于诊断,分析linux用户态进程的工具 类似的工具pstrace,lsof,gdb,pstrack strace观察mysqld对my.cnf 配置文件的加载顺序 命令如下:strace -T -tt -s 100 -o start.log /usr/lo
阅读全文
摘要:在MySQL 5.7.x版本中,mysqlbinlog工具解析任何一个本地的binlog或relay log时,都不会在mysqlbinlog命令执行结束时追加rollback语句, 但在MySQL 5.6.x版本中,mysqlbinlog工具解析每一个本地binlog和relay log时在mys
阅读全文
摘要:做了很多年Oracle,转行到MySQL了,算是借鉴 Oracle日常维护管理指标 一、 基本硬件环境 1、 主机硬件环境 品牌 型号 数量 物理CPU核数及逻辑CPU数 内存大小 本地硬盘大小 光驱 双网卡绑定 HBA卡 冗余电源 IPMI 机房机架位置 维保时间 厂商联系人 IP列表 2、 存储
阅读全文
摘要:MySQL性能瓶颈原因 硬件、系统因素 CPU 磁盘I/O 网络性能 操作系统争用 MySQL相关因素 数据库设计 索引、数据类型 应用程序性能 特定请求、短时事务 配置变量 缓冲区、高速缓存、InnoDB 瓶颈分析工具 sysstat工具集 sar、iostat、pidstat、mpstat pe
阅读全文
摘要:性能容量关键指标: 每秒tps,峰值tps 基础数据量,日均增长数据量 最大连接数 内存分配 IOPS 重点关注指标: 业务指标: 每秒并发用户请求、每秒订单数、用户请求响应时长 折算成性能指标: qps、tps、rt 提出测试预期目标: 根据性能指标制定测试方案 测试结果尽可能以这些指标来表达 业
阅读全文
摘要:监控的意义&目的 业务/数据库服务是否可用 通过事务实时性能数据变化感知业务的变化 数据库性能变化趋势判断服务器资源是否足够 数据可靠性 业务数据是否可靠 服务可用,不代表数据就是正确的 有可能误操作删除数据,或者其他意外原因丢失数据 或者主从复制延迟,导致在从数据库无法读取到最新数据 通过模拟随机
阅读全文
摘要:不同引擎对比 MyRocks FB基于LevelDB实现RocksDB,移植到MySQL后,称为MyRocks,其本质是一个KVDB 在FB内部被广泛使用 ,大有取代InnoDB趋势 MyRocks复制特点 也是基于binlog实现,但MyRocks引擎不能和binlog实现XA协同 异常crash
阅读全文
摘要:关于锁 锁的作用:避免并发请求时对同一个数据对象同时修改,导致数据不一致 怎么加锁: 事务T1在对某个数据对象R1操作之前,先向系统发出请求,对其加锁L1,之后,事务T1对该数据对象R1有了相应的控制,在T1释放L1之前,其它事务不能修改R1 加锁对数据库的影响: 锁等待,锁L1锁定某个对象R1,锁
阅读全文
摘要:事务 事务(Transaction)是一组SQL组成的执行单元(unit),是数据库并发控制和恢复回滚的基本单位 一个事务可能包含多个SQL,要么都失败,要么都成功 事务具备4个基本属性: Atomic,同一个事务里,要么都提交,要么都回滚 Consistency,即在事务开始之前和事务结束以后,数
阅读全文
摘要:二分查找法/折半查找法 一种在有序数组中查找某一特定元素的搜索算法 二分查找法的优点是比较次数少,查找速度快,平均性能好。其缺点是要求待查表为有序表,且插入删除困难。因此,二分查找方法适用于不经常变动而查找频繁的有序列表 二叉树,binary tree 二叉树的每个节点至多只有两棵子树(不存在度大于
阅读全文
摘要:三层体系结构 连接层: 通信协议处理、线程处理、账号认证、安全检查等 SQL层: 权限判断、查询解析、优化器&缓存、查询执行&返回等 存储引擎层: 存储引擎(基于磁盘),InnoDB,MyISAM,TokuDB,存储引擎API接口,请求日志,错误日志,二进制日志,中级日志 建立连接过程: 等待建立新
阅读全文
摘要:整形 最小的tinyint占用1字节,最大的bigint占用8字节 (1、2、3、4、8) 取值范围255、65535、1600万、42亿、超级大 对于整形,其实不用太苛刻,即便用错了,差距也不会太大 但作为严谨的程序员/DBA,选择最合适的类型即可 INT(11),11是修饰符,不是长度限制,和z
阅读全文
摘要:什么是字符集 字符集是一套符号和编码的规则,字符串都必须有相应的字符集 校验集是这套符号和编码的校验规则,定义字符排序规则,字符串之间比较的规则 多字节字符间是以字符进行比较,而非以字节为单位进行比较 XXX_bin将字符串中的每一个字符用二进制数据存储,区分大小写 XXX_general_ci不区
阅读全文
摘要:OS部署规范 关闭CPU节能模式,设定为最大性能模式 关闭NUMA、C-states、C1E 若有阵列卡,则使用FORCE WB策略,且关闭预读 若使用机械盘,则所有盘组成RAID-10阵列 SSD盘可以只有两块组成RAID-1或三块组成RAID-5 xfs/ext4 + deadline/noop
阅读全文
摘要:分库分表 拆分的目的是什么? 拆库,还是拆表?两者结合? 拆库方便进行扩容 其规则设计的好,表也可以移动 拆成多少合适 单实例最多1千张表 单表按1千万~1亿条数据规划,10G左右 对于大字段blob,text字段建议拆分并压缩,用主键关联(查询) 每个表必须有主键,主键采用自增int/bigint
阅读全文
摘要:最好用的是mysql cli 专业化mysql client配置如下:prompt="\u@\h \R:\m:\s [\d]> "pager="less -i -n -S"tee="/tmp/query.log"no-auto-rehash 显示登录信息 ,很方便的知道当前客户端位于哪个mysql
阅读全文
摘要:大纲 DBA最应该做的事情 新项目开发环境应该注意什么 功能测试和压力测试MySQL DBA关注点 线上环境关注点 业务在大压力情况下,MySQL如何能活下来 DBA最应该做的事情 备份 建议每天全备 每天把Binlog也要进行备份 理想的目标:可以把数据还原到任意时间点(近2周的能力) 监控 了解
阅读全文
摘要:数据库异常假死排查需要数据(当时问题的时间,前后时间在2个小时的数据就行) 1.MySQL相关配置 整体可以借助于pt-mysql-summary生成(percona-tools工具) 2.操作系统方面/var/log/message & 内核日志 硬件基本信息,可以借助于pt-summary信息(
阅读全文
摘要:DNS 推荐从Bind-DLZ入手,资料多可控制度更好(查询DNS记录SQL可定制)据说性能差 Bind-DLZhttps://www.cnblogs.com/saneri/p/8178065.html PowerDNSSQL schema设置规范性能比Bind-DLZ好 coredns 和k8s结
阅读全文
摘要:[root@mydb1 ~]# wget https://releases.hashicorp.com/consul/1.4.0/consul_1.4.0_linux_amd64.zip[root@mydb1 ~]# mkdir -p /opt/consul /opt/consul/conf /da
阅读全文
摘要:pt-table-checksum和pt-table-sync使用 数据库版本:5.6.25 pt工具版本:2.2.14 主从关系一:不同机器同一端口 10.10.228.163:4306(rescs5) 10.9.33.154 : 4306 rescs6) 主从关系二:同一机器不同端口 10.10
阅读全文
摘要:MySQL ddl 的问题现状 在 运维mysql数据库时,我们总会对数据表进行ddl 变更,修改添加字段或者索引,对于mysql 而已,ddl 显然是一个令所有MySQL dba 诟病的一个功能,因为在MySQL中在对表进行ddl时,会锁表,当表比较小比如小于1w上时,对前端影响较小,当时遇到千万
阅读全文
摘要:1、数据字典全部采用InnoDB引擎存储,支持DDL原子性、crash safe,metadata管理更完善 2、快速在线加新列(腾讯互娱DBA团队贡献) 3、并行redo log,并提升redo log的I/O性能 4、新增倒序索引 5、 增强CBO特性 6、消除了buffer pool mute
阅读全文
摘要:1.Python语言高级特性 1).深入浅出Python生成器 2).深入浅出Python装饰器 3).Python上下文管理器 2.MySQL数据库 1).Python连接数据库 2).使用上下文管理器对数据库连接进行管理 3).案例:从csv文件导入数据到MySQL 3.Python并发编程 1
阅读全文
摘要:1.Ansible介绍 1).Ansible的优点 Ansible是一个简单的自动化引擎,可完成配置管理、引用部署、服务编排以及其他各种IT需求 Ansible是Python开发并实现的开源软件,其依赖Jinja2,paramiko和PyYAML这几个Python库 安装部署简单 基于SSH进行配置
阅读全文
摘要:1.使用SSH协议访问远程服务器 SSH协议 OpenSSH协议 使用密钥登陆远程服务器 使用ssh-agent管理私钥 2.使用Polysh批量管理服务器 3.SSH协议的Python实现paramiko 1).paramiko的安装 pip install paramiko 2).SSHClie
阅读全文
摘要:1.列出网络上所有活跃的主机 1).使用Python判断主机是否活跃 2).使用生产者消费者模型减少线程的数量 2.端口扫描 1).使用Python编写端口扫描器 2).使用nmap扫描端口 3).使用python-nmap进行端口扫描 3.使用IPy进行IP地址管理 IPy模块是一个处理IP地址的
阅读全文
摘要:1.使用Python处理Excel文档 1).openpyxl简介与安装 2).使用openpyxl读取Excel文档 3).使用openpyxl修改Excel文档 4).案例:合并多个Excel文档到一个Excel文档 2.使用Python操作PDF文档 1).PyPDF2安装与介绍 PyPDF2
阅读全文
摘要:1.Python编写的监控工具 1).多功能系统资源统计工具dstat 2).交互式监控工具glances 2.使用Python打造自己的监控工具 1).Linux系统的/proc目录介绍 Linux系统将监控数据保存在proc目录下 proc目录是一个控制中心,用户可以通过更改其中某些文件来改变内
阅读全文
摘要:众所周知,redis里面的大key存在是非常危险的一件事情。因为最近的工作转移到中间件相关的工作,因此关注了一下bigkey的扫描方法。首先介绍一下阿里云提供的扫描脚本:具体可见:https://yq.aliyun.com/articles/117042?t=t1我对这个脚本进行了一个压力测试,在r
阅读全文
摘要:1.文件读写 1).Python内置的open函数 2).避免文件句柄泄露 3).常见的文件操作函数 4).Python的文件是一个可迭代对象 5).案例:将文件中所有单词的首字母变成大写 2.文件与文件路径管理 1).使用os.path进行路径和文件管理 拆分路径 构建路径 获取文件属性 判断文件
阅读全文
摘要:Python2.7.9+或Python3.4+版本,内置了pip 安装pip# unzip setuptools-38.5.1.zip # cd setuptools-38.5.1# python setup.py install# tar -zxvf pip-9.0.1.tar.gz# cd pi
阅读全文
摘要:mydb1 Ops Manager,mongodb,agent mydb2 mongodb,agent mydb3 mongodb,agent NUMA Settings sysctl -w vm.zone_reclaim_mode=0 NTP Settings yum install -y ntp
阅读全文
摘要:一、为什么使用GridFS GridFS是MongoDB的一个子模块,使用GridFS可以基于MongoDB来持久存储文件,并且支持分布式应用(文件分布存储和读取)。作为MongoDB中二进制数据存储在数据库中的解决方案,通常用来处理大文件,对于MongoDB的BSON格式的数据(文档)存储有尺寸限
阅读全文
摘要:explain执行计划 MongoDB 提供了一个 explain 命令让我们获知系统如何处理查询请求。利用 explain 命令,我们可以很好地观察系统如何使用索引来加快检索,同时可以针对性优化索引。 "stage" : "IXSCAN",稍好一些 还要看nReturned,totalDocsEx
阅读全文
摘要:MongoDB提供了原生的管理接口:REST接口和HTTP接口。REST接口可用于配置监控、告警脚本和其他一些管理任务。HTTP接口在Web界面上显示MongoDB服务的情况 使用mongo命令进入Shell客户端后使用命令: MongoDB服务的状态 >db.serverStatus(); 主机名
阅读全文
摘要:数据备份mongodump 在mongodump可执行文件的bin目录使用命令: ./mongodump -d test -o /home/joe/ 有配置环境的Linux任意路径使用命令: mongodump也可以使用-q参数增加查询条件,只导出满足条件的文档,使用命令: mongodump -d
阅读全文
摘要:主机 ip 服务和端口 mydb1 192.168.1.101 Shard1 master 7001 Shard2 slave 7002 Shard3 slave 7003 Config Server 27001 mongos 37001 mydb2 192.168.1.102 Shard1 sla
阅读全文
摘要:1:安装 用InstallMongoDB_7.sh安装 2:启动3个实例,且声明实例属于某复制集 # /usr/local/mongodb/bin/mongod -f /app/mongodb/27017/mongodb.config 3:配置,一次性配置 节点1: # /usr/local/mon
阅读全文
摘要:MongoDB的安全模式默认是关闭的 绑定监听ip 例如192.168.199.8上的MongoDB实例可使用命令如下: mongod --bind_ip 127.0.0.1, 192.168.199.8 设置监听端口 MongoDB默认的监听端口是27017,为了安全起见,可以修改这个监听端口,避
阅读全文
摘要:索引 1)创建索引 >db.user.ensureIndex({age: 1}); >db.user.ensureIndex({myName: 1, age: -1}); 创建索引还可以搭配一些参数: >db.test.ensureIndex({"username":1},{"background"
阅读全文
摘要:简单添加用户 MongoDB shell version: 3.4.* >use admin >db.createUser( { user: "root", pwd: "abc123", roles: [ { role: "root", db: "admin" } ] } ) >use test >
阅读全文
摘要:InstallMongoDB_7.sh InstallMongoDB_multi.sh
阅读全文
摘要:Python2.7.9+或Python3.4+版本,内置了pip 安装pip# unzip setuptools-38.5.1.zip # cd setuptools-38.5.1# python setup.py install# tar -zxvf pip-9.0.1.tar.gz# cd pi
阅读全文
摘要:迁移键: move key db 用于在Redis内部进行数据迁移 dump key + restore key ttl value 可以实现在不同的Redis实例之间进行数据迁移 127.0.0.1:6379> dump name "\x00\x05allen\a\x00\x82\x9a*T/\x
阅读全文
摘要:Zabbix监控Redis服务 OpenFalcon监控Redis服务 CacheCloud搭建 系统CentOS 7.4,mysql 5.7,Redis 4.0 # yum -y install git # cd /usr/local/ # git clone https://github.com
阅读全文
摘要:Redis集群配置 支持多节点数据集自动分片 提供一定程度的分区可用性,部分节点挂掉或者无法连接其他节点后,服务可以正常运行 集群中的每个Redis节点需要2个TCP连接端口,如6379端口用于Client连接,16379端口用于集群数据通信 集群采用Hash Slot方案,而不是一致性哈希,共16
阅读全文
摘要:redis-benchmark -c 100 -n 20000 -t get,set -q --csv -c代表客户端并发数量,默认是50 -n代表客户端请求总量,默认为100000 -q显示requests per second信息 -r SET/GET/INCR 使用随机 key, SADD 使
阅读全文
摘要:Redis数据备份与恢复 127.0.0.1:6379> save //该命令将在redis安装目录中创建dump.rdb文件 OK 数据恢复,如果需要恢复数据,只需要将备份文件(dump.rdb)移动到redis安装目录并启动服务即可。获取redis目录可以使用config命令 127.0.0.1
阅读全文
摘要:Redis脚本 Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...] 127.
阅读全文
摘要:Redis事务处理 众所周知,事务是指“一个完整的动作,要么全部执行,要么什么也没有做”。 在聊redis事务处理之前,要先和大家介绍四个redis指令,即MULTI、EXEC、DISCARD、WATCH。这四个指令构成了redis事务处理的基础。 1.MULTI用来组装一个事务; 2.EXEC用来
阅读全文
摘要:Redis配置简介 可以在启动redis-server时指定应该加载的配置文件,方法如下: $ ./redis-server /path/to/redis.conf redis配置文件被分成了几大块区域,它们分别是: 1.通用(general) 2.快照(snapshotting) 3.复制(rep
阅读全文
摘要:Redis主从用法 像MySQL一样,redis是支持主从同步的,而且也支持一主多从以及多级从结构。 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担。redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低redis的处理性能
阅读全文
摘要:Redis持久化-两种方式 redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。 RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上; AOF,则是换了一个角度来实现持久化,那就是将redi
阅读全文
摘要:Redis数据结构简介 redis是一种高级的key:value存储系统,其中value支持五种数据类型: 1.字符串(strings) 2.字符串列表(lists) 3.字符串集合(sets) 4.有序字符串集合(sorted sets) 5.哈希(hashes) 而关于key,有几个点要提醒大家
阅读全文
摘要:全局命令: 查看所有键: keys * 键总数: dbsize 检查键是否存在: exists key 删除键: del key [key...] 键过期: expire key seconds 键的数据类型: type key 通过object encoding命令查询内部编码 Redis使用了单
阅读全文
摘要:1.redis是什么 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的官网地址,非常好记,是redis.io。目前,Vmware在资助着redis项目的开发和维护。 Redis会将所有数据都存放在内存中,所以它的读写性能拾惊人的。
阅读全文
摘要:InstallRedis_CentOS7.sh InstallRedis_multi.sh
阅读全文
摘要:MySQL5.7中performance和sys schema中的监控参数解释 在MySQL5.7中,performance schema有很大改进,包括引入大量新加入的监控项、降低占用空间和负载,以及通过新的sys schema机制显著提升易用性。下面通过本文给大家介绍 MySQL5.7中 per
阅读全文
摘要:Install_CentOS7_MySQL8_binary.sh Install_CentOS7_MySQL8_multi_instance.sh
阅读全文
摘要:【MySQL】企业级监控解决方案Promethus+Grafana Promethus用作监控数据采集与处理,而Grafana只是用作数据展示 一、Promethus简介 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展
阅读全文
摘要:https://book.open-falcon.org/zh_0_2/ 本文档记录了CentOS7.4下open-falcon-v2监控系统的部署流程,以及一些需要注意的地方。 环境准备 安装Redis 0.InstallRedis3.2.sh redis-3.2.3.tar.gz 安装mysql
阅读全文
摘要:应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用、易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台。 官网下载地址:https://www.elastic.co/downloads Elastics
阅读全文
摘要:MYSQL5.7下搭建Replication-Manager 环境说明 在主机1,主机2,主机3上安装MySQL服务端和客户端。 主机1 主机2 主机3 操作系统 CentOS7.4 CentOS7.4 CentOS7.4 主机名 mydb1 mydb2 mydb3 IP 192.168.1.101
阅读全文
摘要:MYSQL5.7下搭建Orchestrator 环境说明 在主机1,主机2,主机3上安装MySQL服务端和客户端。 主机1 主机2 主机3 操作系统 CentOS7.4 CentOS7.4 CentOS7.4 主机名 mydb1 mydb2 mydb3 IP 192.168.1.101 192.16
阅读全文
摘要:SOAR 简介 SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品 SOAR 体系架构 SOAR主要由语法解析器,集成环境,优化建议,重写逻辑,工具集五大模块组成。 语法解析和语法检查 一条SQL从文件,标准输入或命令
阅读全文
摘要:binlog2sql使用总结:binlog2sql是大众点评开源的一款用于解析binlog的工具 功能:1.提取SQL2.生成回滚SQL 关于该工具的使用方法可参考github操作文档:https://github.com/danfengcao/binlog2sql 使用该工具的前提:1.binlo
阅读全文
摘要:GitHub的MySQL无触发器在线更改表定义工具! 目的是解决一个经常碰到的问题:不断变化的产品需求会不断要求更改MySQL表结构。gh-ost通过一种影响小、可控制、可审计、操作简单的方案来改变线上表结构。 目前,在线修改表定义的任务主要是通过这三种途径完成的: 1.在从库上修改表定义,修改之后
阅读全文
摘要:percona-toolkit简介percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql任务和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索引 对服务器信息进行汇总 分析来自日志和tcpdu
阅读全文
摘要:CentOS7 配置如下 5.7.22 Group ReplicationMySQL5.7.22安装略 在三台db服务器上面设置/etc/hosts映射,如下:192.168.1.101 mydb1192.168.1.102 mydb2192.168.1.103 mydb3 安装的数据库服务器:数据
阅读全文
摘要:一.建立3台服务器之间ssh互信在mydb1,mydb2,mydb3服务器上分别执行:ssh-keygen -t rsassh-copy-id -i .ssh/id_rsa.pub root@192.168.1.101ssh-copy-id -i .ssh/id_rsa.pub root@192.1
阅读全文
摘要:MYSQL5.7下搭建MHA 环境说明 在主机1,主机2,主机3上安装MySQL服务端和客户端。 主机1 主机2 主机3 操作系统 CentOS7.4 CentOS7.4 CentOS7.4 主机名 mydb1 mydb2 mydb3 IP 192.168.1.101 192.168.1.102 1
阅读全文
摘要:https://github.com/sysown/proxysql/wiki https://github.com/sysown/proxysql/wiki/ProxySQL-Configuration关于ProxySQL的文档请见:https://github.com/sysown/ProxyS
阅读全文
摘要:# wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz # tar xvf fio-2.2.5.tar.gz# cd fio-2.2.5# ./configure# make && make install FIO的用法:FIO分顺序读,随机读,顺序
阅读全文
摘要:os: centos 7.4 db: mysql 5.7 software: tpcc-mysql TPC-C是专门针对联机交易处理系统(OLTP系统)的规范。 tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于MySQL基准测试 下载https://gi
阅读全文
摘要:什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。 基
阅读全文
摘要:复制延迟 搞明白当前的数据库在干什么 查看MySQL当前SQL的状态 利用perf top查看MySQL的调度情况 复制延迟解决方法 常规检查 所有的机器是不是一样 MySQL的版本是不是一样 相关配置是不是一样 网络是不是存在较大的延迟 IO thread延迟 master: show maste
阅读全文
摘要:复制过滤注意事项 可以在主库binlog记录时设置记录或是不记录,慎用 binlog_do_db binlog_ignore_do_db 针对sql_thread change replication filter ... replication_db_db = (db_list) replicat
阅读全文
摘要:1.字符串常量 1).字符串是不可变的有序集合 Python不区分字符和字符串 所有的字符都是字符串 字符串是不可变的 字符串是字符的有序集合 2).字符串函数 通用操作 与大小写相关的方法 判断类方法 字符串方法startswith和endswith 查找类函数 字符串操作方法 3).使用Pyth
阅读全文
摘要:1.与命令行相关的Python语言特性 1).使用sys.argv获取命令行参数 2).使用sys.stdin和fileinput读取标准输入 3).使用SystemExit异常打印错误信息 4).使用getpass库读取密码 2.使用configparser解析配置文件 3.使用argparse解
阅读全文
摘要:基于从库+binlog方式恢复数据 将bkxt从库的全备份在rescs5上恢复一份,恢复到6306端口,用cmdb操作 恢复全备后执行如下操作 set global read_only=OFF; stop slave; reset slave all; 看xtrabackup_slave_info文
阅读全文
摘要:基于全备份+binlog方式恢复数据 将bkxt从库的全备份在rescs5上恢复一份,用cmdb操作 恢复全备后执行如下操作 set global read_only=OFF; stop slave; reset slave all; 拉取主库的binlog看xtrabackup_slave_inf
阅读全文
摘要:主从架构的改变 主从关系一:A->B->C,B是A的从库,C是B的从库 10.10.228.163:3306(rescs5) 10.10.228.163:3307(rescs5) 10.10.228.163:3308(rescs5) 主从关系二:A->B,C,B和C是A的从库 10.10.228.1
阅读全文
摘要:CentOS7 配置如下 5.7.22 Group ReplicationMySQL5.7.22安装略 在三台db服务器上面设置/etc/hosts映射,如下:192.168.1.101 mydb1192.168.1.102 mydb2192.168.1.103 mydb3 安装的数据库服务器:数据
阅读全文
摘要:# cat my_full_backup.sh #!/bin/bash BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` format_time=`date +"%Y-%m-%d_%H:%M:%S"` week=`date +%w` port=3306 ip=192.168.1.101 backdir=/tmp/xtrabackup file_cnf=/...
阅读全文
摘要:1、两个空库,都是row+gtid,版本为MySQL5.7.22mydb1执行:(dba_user@localhost) [(none)]> show master status;+ + + + + +| File | Position | Binlog_Do_DB | Binlog_Ignore_
阅读全文
摘要:普通主从:跳过一个事务mysql> set global sql_slave_skip_counter=1; Query OK, 0 rows affected (0.00 sec)mysql> start slave; GTID主从:跳过一个GTID(root@localhost) [(none)
阅读全文
摘要:slave复制中,常见的错误有: 1032:Can't find record in %s1053:Server shutdown in process1062:Duplicate entry %s for key %d1050:Table %s already exists1051:Unknown
阅读全文
摘要:延迟复制特性:只需要将Slave节点中MASTER_DELAY选项即可,通过CHANGE MASTER TO语句进行设定CHANGE MASTER TO MASTER_DELAY=n;Slaves节点接收到Master节点生成的二进制日志,不会马上应用,而是等待,直到时间符合设定的延迟条件后才开始应
阅读全文
摘要:GTID模式基于多源复制的高可用架构约束:1、基于row格式的Binlog2、启用GTID3、使用多源复制4、同一时间只在一个节点写入 5.7.16 Multi Source Replication192.168.1.201 master192.168.1.202 master192.168.1.2
阅读全文
摘要:一、并行复制的背景 首先,为什么会有并行复制这个概念呢? 1. DBA都应该知道,MySQL的复制是基于binlog的。 2. MySQL复制包括两部分,IO线程 和 SQL线程。 3. IO线程主要是用于拉取接收Master传递过来的binlog,并将其写入到relay log 4. SQL线程主
阅读全文
摘要:半同步机制: MySQL复制环境中的同步,默认采用异步的方式。从MySQL5.5开始提供半同步复制机制(Semisynchronous Replication)。Master在返回操作成功(或失败)信息给发起请求的客户端前,还是要将事务发送给Slave节点,Master节点只需要确认至少一个Slav
阅读全文
摘要:MySQL默认的复制都是异步的,在服务器崩溃时丢失事务是使用异步复制不可避免的结果。而5.5之后推出的一项新功能:半同步复制,可以限制事务丢失的数量。 MySQL5.7在5.6/5.5的基础上增强了几点功能: 1)无数据丢失 MySQL5.6/5.5半同步复制的原理:提交事务的线程会被锁定,直到至少
阅读全文
摘要:什么是GTID呢, 简而言之,就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能。GTID是事务提交时创建分配的唯一标识符,给每个事务做一个唯一的编号,所有事务均与GTID一一映射。 MySQL5.7的GTID
阅读全文
摘要:1.Python内置小工具 1).1秒钟启动一个下载服务器: python -m SimpleHTTPServer python3 -m http.server 会在当前目录下启动一个文件下载服务器,默认打开8000端口 2).字符串转换为JSON:echo '{"address":{"provin
阅读全文
摘要:1.Python语言为什么流行 1).简单易学 2).丰富强大的库 3).开发效率高 2.Python语言有什么缺点 1).Python的执行速度不够快 2).Python的GIL锁限制并发:GIL是指Python全局解释器锁(Global Interpreter Lock) 3).Python2与
阅读全文
摘要:变量名与赋值:变量名只能是字母、数字或下划线的任意组合,变量名的第一个字符不能是数字,关键字不能声明为变量名 常用数据类型: 整型:布尔型,标准整型,长整型 非整型:双精度浮点型,复数,decimal(不是内建类型) 序列类型:字符串,元组(tuple),列表(list) 映像类型:字典(dict)
阅读全文
摘要:复制环境配置宝典:全新环境配置Replication:表示主从数据库服务均为全新,这种场景下的配置方案最为简单和灵活现有环境配置Replication:表示主数据库服务已有数据,这种情景下的配置就需要考虑多种因素为现有环境配置Replication复制,可以细分为:创建一台Slave:当前已有Mas
阅读全文
摘要:需求 Python 2.6 MySQL Connector/Python 连接器 下载地址: http://dev.mysql.com/downloads/utilities/ 安装示例# rpm -Uvh mysql-connector-python-2.1.6-1.el7.x86_64.rpm
阅读全文
摘要:物理备份xtrabackup原理 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB 1.innobackupex在执行后会fork一个xt
阅读全文
摘要:# cat my_full_backup.sh #!/bin/bash BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` format_time=`date +"%Y-%m-%d_%H:%M:%S"` week=`date +%w` port=3306 ip=192.168.1.101 backdir=/tmp/xtrabackup file_cnf=/...
阅读全文
摘要:关于mysqlbinlog命令,下列参数应用频率较高:--base64-output:选项有三个参数,never表示不处理ROW格式日志,只处理传统的基于STATEMENT格式日志。decode-rows,解码处理,通常会与-v一起使用。auto,按照常规方式处理-v:重组伪SQL语句的输出,专门用
阅读全文
摘要:mydumper 特性 (1)多线程备份(和mysqlpump的多线程不同,mysqlpump多线程备份的粒度是表,mydumper多线程备份的粒度是行,这对于备份大表特别有用)(2)因为是多线程逻辑备份,备份后会生成多个备份文件(3)备份时对 MyISAM 表施加 FTWRL (FLUSH TAB
阅读全文
摘要:MySQL5.7之后多了一个备份工具:mysqlpump。它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针对如何使用做下说明。 mysqlpump和mysqldump一样,属于逻辑备份,备份以SQL形式的文本保存。
阅读全文
摘要:使用mysqldump命令行工具创建逻辑备份: 注意mysqldump的版本和路径mysqldump命令创建的是逻辑备份,结果集有两种格式:一种是将数据转换成标准的SQL语句(一堆CREATE,DROP,INSERT等语句),另一种是将数据按照指定分隔符,输出成定界格式的平面文件。[root@myd
阅读全文
摘要:一、概述 1、运行mysql_upgrade时需要禁用GTID,因为运行mysql_upgrade会修改mysql引擎的系统表,这不是一个事务表2、升级到5.7官方推荐的两种方法: a)in-place upgrade:原地升级法,利用已存在的datadir目录进行升级 b)logical upgr
阅读全文
摘要:#!/bin/bash MySQL_Package=Percona-Server-5.7.22-22-Linux.x86_64.ssl101.tar.gz Package_Source=Percona-Server-5.7.22-22-Linux.x86_64.ssl101 PORT=3306 PrepareENV() { #Remove MySQL Local yum -y remove...
阅读全文
摘要:Install_CentOS7_MySQL57_multi_instance.sh#!/bin/bash #请提前准备好参数文件my.cnf PORT=3307 InitMySQL() { mkdir -p /app/mysqldata/{$PORT/{data,tmp,binlog,redolog,undolog},backup,scripts} ###################...
阅读全文
摘要:Install_CentOS7_MySQL57_binary.sh#!/bin/bash MySQL_Package=mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz Package_Source=mysql-5.7.22-linux-glibc2.12-x86_64 PORT=3306 PrepareENV() { #Remove MySQL Loca...
阅读全文
摘要:echo 'HISTTIMEFORMAT="%F %T "' >> /etc/profile source /etc/profile
阅读全文
摘要:Linux终端复用神器-Tmux使用梳理 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;是BSD实现的Scre
阅读全文
摘要:screen -S yourname -> 新建一个叫yourname的sessionscreen -ls -> 列出当前所有的sessionscreen -r yourname -> 回到yourname这个sessionctrl + ad detach某个session # screen -S
阅读全文
摘要:Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用、安装软件、执行命令、配置和编排任务。 一、Ansible工作机制 从图中可以看出ansible分为以下几个部份: 1) Control Node:控制机器 2) Invent
阅读全文
摘要:简单的执行跟踪,会使得Shell显示每个被执行到的命令sh -x delete.sh 查找与替换grepsed -i "s/t_rs_customer/t_rs_customer_bak/g" t_rs_customer_bak.sql 使用cut选定字段cut -d : -f 1,5 /etc/p
阅读全文
摘要:[root@temp ~]# lsof -p 5643COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEoracle 5643 oracle cwd DIR 8,2 4096 1556206 /u01/app/oracle/product/10.2.
阅读全文
摘要:ulimit -a用来显示当前的各种用户进程限制 修改所有 linux 用户的环境变量文件:vi /etc/profileulimit -u 10000 #用户的最大进程数ulimit -n 4096 #每个进程可以打开的文件数目ulimit -d unlimited #数据段长度ulimit -m
阅读全文
摘要::set nu在命令模式下显示行号 进入输入模式 新增 (append) a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 A:从光标所在列最後面的地方开始新增资料。 插入 (insert) i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I :从光标所在
阅读全文
摘要:按G进行排序du -sh * | grep G | sort -nr
阅读全文
摘要:修改方式:使用root权限修改ssh的配置文件,vim /etc/ssh/sshd_config增加一行记录:UseDNS no修改GSSAPIAuthentication参数为 no,默认是yesPermitRootLogin 注释掉 重启服务
阅读全文
摘要:perf 是一个调查 Linux 中各种性能问题的有力工具。 # perf --help usage: perf [--version] [--help] COMMAND [ARGS] The most commonly used perf commands are: annotate Read p
阅读全文
摘要:grep -rn "map" * 说明:-r 是递归查找-n 是显示行号* : 表示当前目录所有文件,也可以是某个文件名
阅读全文
摘要:$ iotop -oP命令的含义:只显示有I/O行为的进程
阅读全文
摘要:可以使用一下命令查使用内存最多的10个线程 ps aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个线程 ps aux | sort -k3nr | head -n 10 查看最消耗CPU的线程# ps H -eo pid,pcpu|sort -nk
阅读全文
摘要:运维工程师必会的109个Linux命令 文件管理basename:从文件名中去掉路径和扩展名 cat:把档案串连接后传到基本输出(屏幕或加 > filename 到另一个档案)cd:切换目录chgrp:变更文件或目录的所属群组chmod:变更文件或目录的权限chown:变更文件或目录的拥有者或所属群
阅读全文
摘要:升级gityum -y update git 配置阿里云yum源yum -y update nssyum -y update nss curl libcurl
阅读全文
摘要:1.删除自带的yum源:#cd /etc/yum.repos.d/#rm -rf * 2.配置远程yum源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repowget -O /e
阅读全文
摘要:CentOS 7 vs CentOS 6的不同(1)桌面系统[CentOS6] GNOME 2.x[CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统[CentOS6] ext4[CentOS7] xfs (3)内核版本[CentOS6] 2.6.x-x[CentOS7]
阅读全文