自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 Go web 开发数据库管理平台,利用远程过程调用(RPC)实现对MySQL数据库的管理和使用

Goweb开发数据库管理平台,使用gRPC实现数据库实例之间的管理和通信

2022-08-24 20:53:48 936 2

原创 一个集成redis-benchmark的redis压测的脚本

一个redis压测的脚本支持 单节点 主从 sentinel cluster (sentinel的还没写)需要调用redis-benchmark 用来测试不同版本redis7 同样写入速率和相同数据量下 redis占用内存大小写了很多def,改天统一合并到一个类里面去......

2022-06-09 00:24:00 417

原创 go 传入Byte 输出输出HumanSize

工作中,常常会有一些场景 获取到的结果单位是Byte,但是直接展示又不适合读者看,因此写了一个Human的接口,方便使用。代码实现如下:package outputtype HumanOutput struct { ByteSize int64}type HumanSizeOutput interface { HumanByteSize() (h int64, s string)}func NewHumanSizeMessage(s int64) (humansize int64,U

2022-05-22 01:09:50 385 1

原创 mac小技巧 apple music 菜单栏显示歌词

先看看效果传统的apple musice 是无法在顶部菜单栏显示歌词的,当然,你有pro版本的macbook的话,可以通过touch bar来查看歌词。个人使用的是公司的macbook air,为实现实时查看歌词的功能,瞎捣鼓mac软件来实现想要的功能。需要下载以下三个软件(apple商店可以直接下载的,国内的appleid即可下载)...

2022-05-12 21:55:55 20066 3

原创 Redis一条命令的执行 – AOF write 源码分析

Redis一条命令的执行 – AOF源码分析(本文章基于redis 5.0)aof的配置比较简单,熟练的DBA都知道通过如下方式配置appendonly no # aof开关,默认关闭appendfilename "appendonly.aof" # 保存的文件名,默认appendonly.aof# 有三种刷数据的策略appendfsync always # always是只要有数据改动,就把数据刷到磁盘里,最安全但性能也最差appendfsync everysec # 每隔一秒钟刷一

2022-04-17 16:05:55 488

原创 源码分析redis7的aof new feature AOF时间戳

源码分析redis7的aof new feature AOF时间戳首先,redis所有对于aof的具体实现代码在aof.c这个文件里时间戳的生成是下方这段代码/* Generate a piece of timestamp annotation for AOF if current record timestamp * in AOF is not equal server unix time. If we specify 'force' argument to 1, * we would gene

2022-03-29 18:07:56 1302 2

原创 来聊聊redis 7的new feature – AOF日志新增时间戳

来聊聊redis 7的new feature – AOF日志新增时间戳首先,我们要知道这是个什么内容,Github上的讨论有个链接: https://github.com/redis/redis/issues/9326大体就是讲AOF现在支持时间戳了,你可以做到基于时间点的恢复数据了。很赞👍不过,Redis是开源的啊,很多同学对于Redis做了很多二次开发工作,那如果原生的AOF日志格式被修改了,他会不会影响我们现有的其他工具的使用呢?我们先来简单看看被修改后的AOF日志的格式首先现在的aof的

2022-03-29 17:36:04 1734 2

原创 gh-ost封装脚本

针对gh-ost封装了一个使用脚本,支持gh-ost的三种使用场景#!/bin/env python# -*- encoding: utf-8 -*-# ----------------------------------------------# Purpose: gh-ost# Created: 2018-06-16# Modified: [email protected]# Modified date: 2022-01-06#

2022-01-07 18:14:39 414

原创 gh-ost学习笔记 实验验证&&代码学习

gh-ost学习笔记[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HVes9Sc2-1641550278470)(https://github.com/WQMysqlDBA/gh-ost/blob/master/doc/images/gh-ost-logo-light-160.png?raw=true)]"开始吧"gh-ost github开源的一个online ddl工具某位业内不太知名,朋友圈内比较知名的同学,关于何时使用gh-ost,做了一个经典的描述"

2022-01-07 18:12:22 269

原创 gh-ost学习笔记 试验&&代码学习

gh-ost学习笔记[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7hhPnvg-1641550092432)(https://github.com/WQMysqlDBA/gh-ost/blob/master/doc/images/gh-ost-logo-light-160.png?raw=true)]"开始吧"gh-ost github开源的一个online ddl工具某位业内不太知名,朋友圈内比较知名的同学,关于何时使用gh-ost,做了一个经典的描述"

2022-01-07 18:08:59 990

原创 MySQL复制技术的演进

MySQL 复制技术的演进binlog event以mysql 5.7来深入学习binlog环境准备/* mysql version */mysql> select version();+------------+| version() |+------------+| 5.7.30-log |+------------+1 row in set (0.00 sec)insert语句/* flush logs */CREATE DATABASE test1;USE t

2021-08-09 20:18:28 330

原创 为什么mysqldumper mydumper能实现一致性备份?--源码分析

为什么mysqldumper mydumper能实现一致性备份?–源码分析mydmper是一个针对mysql和tidb的高性能多线程备份与恢复工具,其开发人员来自mysql等。mydumper具有以下特征采用轻量c语言编写 #include <glib.h>执行速度比mysqldumper快十倍(参看资料)执行innodb表和非innodb表(是否支持事务的表都可以。不支持事务的表加表锁,innodb表开启一个事务设为RR级别)多线程备份多线程恢复基于 GNU General

2021-04-24 22:36:18 748

原创 VITESS User 密码加密策略和单用户多密码设置

说明vitess通过VTGate有自己独特的方法管理用户和权限,因此,如果通过VTGate发送,create user和grant...语法将不会有效果。create user,grant...语法是对mysql用户使用的命令VTGate始终用以下用户跟mysql沟通mysql> select user,host from mysql.user;+---------------+-----------+| user | host |+-------------

2020-12-17 17:39:44 384

原创 VITESS User Management and Authentication for minikube

User Management and Authentication 用户管理和认证vitess通过VTGate有自己独特的方法管理用户和权限,因此,如果通过VTGate发送,create user和grant...语法将不会有效果。mysql> create use chenhao identified by 'chenhao';ERROR 1105 (HY000): vtgate: http://example-zone1-vtgate-bc6cde92-6cbc74fd8c-q75b5:1

2020-12-15 20:27:36 890

原创 Vitess Operator for minikube

Vitess Operator for minikubeVitess是什么Vitess是一个用于部署,扩展和管理大型开源数据库实例集群的数据库解决方案,通俗点说,就是在云环境下对大型数据库及数据库集群进行分库分表并提供可靠性处理的方案,详情可参见Vitess官方文档。Vitess目前支持数据库类型如下:• Mysql(5.6-8.0);• Percona(5.6-8.0);• MariaDB(10.0-10.3)Vitess在github开源,是CNCF少有的毕业项目之一,其项目地址Vites

2020-12-12 16:20:53 416

原创 docker&&mgr&&maxscale

docker容器下的mgr集群,研究maxscale的转发规则docker快速启动mysql集群docker下载&&安装&&启动wget https://mirrors.cloud.tencent.com/docker-ce/linux/static/stable/x86_64/docker-19.03.9.tgztar -xf docker-19.03.9.tgzmv docker /usr/local/ln -s /usr/local/docker/* /us

2020-10-09 23:00:40 821 6

原创 一次主库binlog删除一起的mgr集群从库不停recoving

一次主库binlog删除一起的mgr集群从库不停recoving问题描述:三个用docker容器部署的mysql实例,组建了一个mgr集群在重启docker容器后,进行压测。此时只三台机器都未加入mysql group replication对master进行性能压测,构建测试库过程中出现问题:数据盘写满了 ----drop未成功都testdb,删除多余binlogbinlog序号为1->11开始prepare run 直到全部压测完毕先简单解释下磁盘满的原因:我的数据盘是50G,在压

2020-09-30 17:32:14 645

原创 etcd问题踩坑cluster ID mismatch

记一次etcd集群搭建报错systemctl restart etcd.serviceJob for etcd.service failed because a timeout was exceeded. See "systemctl status etcd.service" and "journalctl -xe" for details.报错信息如下:request sent was ignored (cluster ID mismatch: peer[f73f6335fab3c75e]=90

2020-09-22 17:38:04 4153 1

原创 2020-09-01

索引下推索引下推(ICP)mysql5.6开始推出,主要用于优化查询在不使用ICP的情况下,在使用二级索引查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。在使用ICP的情况下,如果where条件存在索引列的判断条件时,mysql-server将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合传递的条件,只有当索引符合条件时才会将数据检索出来返回给MySQL服务器 。作用索引下推下个可以:1、减少回表次数2、减少返回的数

2020-09-01 11:55:09 74

转载 Logstash 配置总结

转自xfg0218的《Logstash 配置总结》#整个配置文件分为三部分:input,filter,output#参考这里的介绍 https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.htmlinput {#file可以多次使用,也可以只写一个file而设置它的path属性配置多个文件实...

2018-09-28 17:31:34 364

原创 mysql之 MySQL 主从基于 GTID 复制原理概述

转自https://www.cnblogs.com/andy6/p/6979590.html 一、 什么是GTID ( Global transaction identifiers ): MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid,UUID保存在mysql数据目录的auto.cnf文件中, 这是一个非常重要的文件,不能删除,这...

2018-08-18 20:58:21 183

原创 mysql索引优化

简单总结索引优化 对于where条件进行优化 where条件意味着从表中取少来那个数据进行select,update,delete,where条件对应的列一定要加索引多表连接主外键必须要有索引 在实际生产中有些情况会将表的主外键关系删除,只保留主外键的列,在软件代码层实现数据一致性,主外键一定要有索引使用索引优化order by 典型使用场景: orde...

2018-08-17 21:10:43 269

原创 mysql性能监控最佳实践(监控产品及监控指标)

mysql性能监控最佳实践(监控产品及监控指标) 1、监控什么内容 1、os层面 空间监控df -h ,防止文件系统空间满造成数据库hang住 性能cpu监控 vmstat r队列,这个队列需要小于cpu核数,最大不要超过4倍??? ...

2018-08-15 21:18:27 1514

转载 mysql5.7新特性整理

mysql5.7新特性整理转自MySQL 5.7新特性介绍 安全性 1、MySQL数据库初始化完成以后,会产生一个 root@localhost 用户,并生成一个随机密码 2、MySQL官方已经删除了test数据库,默认安装完后是没有test数据库的 3、MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式 4、为用户设置密码过期策略,一定时间以...

2018-08-15 21:14:02 4935 1

转载 mysql之 MySQL 主从基于 GTID 复制原理概述

mysql之 MySQL 主从基于 GTID 复制原理概述一、 什么是GTID ( Global transaction identifiers ): MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid,UUID保存在mysql数据目录的auto.cnf文件中, 这是一个非常重要的文件,不能删除,这一部分是不会变的。另外一部分就是...

2018-08-15 21:11:11 177

原创 恢复脚本

#!/bin/bash#周日全备,周一到周六增备,每次增备完都将增备应用到全备上#将可以表示每天周几的数字定义为一个变量zhouji=$(date +"%w")#因为考虑到万一在备份的时候数据库崩掉,所以建两个备份目录if ! ls /backup/perfect &amp;&gt;/dev/null then mkdir -p /backup/perfec...

2018-08-14 20:04:32 311

原创 备份脚本

#!/bin/bash#周日全备,周一到周六增备,每次增备完都将增备应用到全备上#将可以表示每天周几的数字定义为一个变量zhouji=$(date +"%w")#因为考虑到万一在备份的时候数据库崩掉,所以建两个备份目录if ! ls /backup/perfect &amp;&gt;/dev/null then mkdir -p /backup/perfec...

2018-08-14 20:02:52 1009

原创 mysql备份恢复最佳实践

mysql备份恢复最佳实践 1、备份是DBA维护数据库的底线 2、物理备份(冷备:关库备份、热备:数据库正常打开进行备份,打开不一定意味着没用没有障碍 备份期间可能产生锁) 将数据文件备份出来 3、逻辑备份 将行数据备份出来 4、最佳实践要求: 1、物理备份为主,逻辑备份为辅 物理备份作...

2018-08-14 20:00:58 409

原创 mysql性能监控最佳实践(监控产品及监控指标)

mysql性能监控最佳实践(监控产品及监控指标)1、监控什么内容 1、os层面 空间监控df -h ,防止文件系统空间满造成数据库hang住 性能cpu监控 vmstat r队列,这个队列需要小于cpu核数,最大不要超过4倍??? top load average队列...

2018-08-14 16:47:25 1727

原创 主从原理,一主多从架构

主从架构总结主从原理 用binlog做主从,redolog只支持innodb①start slave后从库启动io线程连接主库,请求读日志②dump线程根据请求信息读取指定位置后的日志③完成后就响应成功,没有确认机制④IO线程收到信息,将受到的日志依次写入relay log⑤sql线程检测到relay log更新,就解析增加部分的relaylog内容即执行这部分sq...

2018-08-14 11:52:28 12678

转载 mha的故障切换脚本和在线切换脚本

mha的在线切换脚本#/bin/bash source /root/.bash_profile vip=`echo '192.168.10.53/24'` # Virtual IP key=`echo '1'` command=`echo &quot;$1&quot; | awk -F = '{print $2}'` orig_master_host=`echo &quot;$2&quot; | awk...

2018-08-13 19:22:46 1195

原创 mysql主从架构搭建+并行复制+MHA原理,搭建MHA,mha的手工,故障切换、修复

mysql主从架构搭建 主机环境 关闭防火墙跟selinux 两台版本、安装方式一致的数据库 配置搭建环境脚本《mysql项目需要的主机基础环境设置》安装 rpm -ivh libev4-4.15-7.1.x86_64.rpm libev-devel-4.15-21.1.x86_64.rpm percona-xtrabackup-24-2.4.4-1.el...

2018-08-13 19:20:05 925

原创 Ansible自动化管理IT资源工具安装

所需源码包安装脚本#!/bin/bashmount /dev/sr0 /mntyum install -y gcc gcc-c++ python-devel#setuptools模块安装cd /root/ruanjiantar xvzf setuptools-7.0.tar.gzcd setuptools-7.0python setup.py install#安装好...

2018-08-09 15:54:30 232

转载 传统关系数据库与分布式数据库知识点,转载自https://blog.csdn.net/weisg81/article/details/72810454

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”, 泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种...

2018-08-08 19:59:26 299

原创 数据库突然慢分析

再准备优化手法之前先弄清楚数据库最近一段时间数据库做了什么事,比如系统版本和数据库版本有没有更新,数据库结构有没有变化,有没有大量的更新 再看状态网络是否正常os层面os层面考虑 cpu负载、 topH看有没有过载的用户线程、 查看swap信息,有没有产生大量swap(如果有就是innodb size小了,一般调成内存的70%左右)查看用户线程...

2018-08-08 19:57:36 570

原创 innodb事务,事务特性,事务隔离级别最佳实践

事务什么是事务? 事务,就是把一堆事情绑在一起做,都成功了才算完成,否则就恢复之前的样子 事务的属性 1.原子性:一个事务中所有的DML语句要么都成功、要么都失败,也就是说这些DML语句不能出现部分成功、部分失败的情况:这些DML不能分割start transaction; DML…; commit; 事务提交的情况 commit; 会让事务提交 ddl;...

2018-08-08 15:21:02 157

原创 checkpoint undo mvcc 事务 内存锁 表锁 行锁 GAP锁总结

检查点checkpoint 脏页回写 1、后台写线程在某些情况下会阻塞前台线程 1、lru冷端没有足够干净块,前台线程会触发后台线程加快写入脏块,前台线程等待 加大写力度 innodb_lru_scan_depth innodb_io_capacity innodb...

2018-08-06 20:51:48 299

原创 mvcc原理

mvcc:多版本并发控制 multiple version concurrency control在共享表空间的第五个页是undo(一般是通过设置innodb_undo_directory undo独立表空间路径,把undo从ibdata分离出去) 系统事务表里指向128 个undo 段,每个undo 段里面有段头和一些undo 数据页,一个undo 段头页里,可以写51...

2018-08-05 20:58:14 1218

原创 checkpoint检查点,脏页回写

mysql&amp;gt; show engine innodb status\G;LOG---Log sequence number 14963129 Log flushed up to 14963129Pages flushed up to 14963129Last checkpoint at 149631200 pending log flushes,...

2018-08-05 19:07:55 482

原创 mysql优化的核心参数

mysql优化的核心参数cpu优化 参数 参数功能 取值范围 经验值 innodb_thread_concurrency 并发执行的线程的数量(同时干活的线程的数量),保护系统不被hang住 0-1000 一般要求是cpu核数的4倍内存优化 参数 参数功能 取值范围 经验值 innodb_buffer...

2018-08-04 19:22:20 1936 3

xtrabackup

主从复制+mha架构的工具包........................................................................................................

2018-08-13

ansible包离线安装

离线安装ansible,怎么这个描述好麻烦啊,还得有字数要求,有什么特殊含义么?????

2018-08-09

空空如也

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

TA关注的人

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