自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 收藏
  • 关注

原创 虚拟机开机黑屏问题

虚拟机开机黑屏问题最近由于误操作,导致5台虚拟机异常不能使用,down了一天镜像,重装了4台,辛辛苦苦装了了4台mysql,jdk全部升级到1.8,保存快照完工,次日想温习下redis cluster,开机,悲剧开始了,4台虚拟机总有一台虚拟机黑屏,老办法走起,管理员身份运行netsh winsock reset命令,重启,在开虚拟机,还是有一台黑屏,反反复复重启折腾了5,6次,总是有一台黑屏,彻底无语,问了下同事,给了个终极方案,虚拟机->编辑->首选项->设备->启用虚拟机打

2022-02-14 18:25:23 915

转载 zookeeper ACL权限管理

ACL 命令行getAcl 命令:获取某个节点的 acl 权限信息。 setAcl 命令:设置某个节点的 acl 权限信息。 addauth 命令:输入认证授权信息,注册时输入明文密码,加密形式保存。ACL 构成zookeeper 的 acl 通过[scheme:id:permissions]来构成权限列表。1、scheme:代表采用的某种权限机制,包括 world、auth、digest、ip、super 几种。 2、id:代表允许访问的用户。 3、permissions:..

2021-03-14 11:25:51 377

原创 zookeeper session原理,四字命令

Zookeeper session 基本原理客户端与服务端之间的连接是基于 TCP 长连接,client 端连接 server 端默认的 2181 端口,也就是 session 会话。从第一次连接建立开始,客户端开始会话的生命周期,客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。Session 的状态下面介绍几个重要的状态:connecting:连接中,session 一旦建立,状态就是 connecting 状态,时间很短。 connected:已连接,连接成功之

2021-03-14 10:26:29 460

原创 ZooKeeper 数据模型 znode 结构

在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。通过sh zkCli.sh打开命令行终端,执行 “ls /” 命令显示:我们直观的看到此时存储的数据在根目录下存在 zookeeper 节点,zookeeper 节点下存在 quota 这个节点。创建一个新的 znode ,使用 create /zk00

2021-03-13 19:28:50 462

原创 Zookeeper HA集群搭建,主备切换测试验证

Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3、5、7个节点)较为合适。zookeeper服务集群工作图:zookeeper HA集群搭建:设备信息:设备:192.168.136.136设备:192.168.136.137设备:192.168.136.1381,首先在三台设备上分别安装单机zookeeper,方法已经在上篇blog介绍过,2, 接下...

2021-03-13 18:44:08 801

原创 zookeeper入门基础

Zookeeper是什么zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。1、 文件系统每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。有四种类型的znode:PERSISTENT

2021-03-13 14:58:11 213

原创 file_instances:文件实例

file_instances:文件实例用户的表文件等表中记录了系统中打开了文件的对象,包括ibdata文件,redo文件,binlog文件,用户的表文件等,比如redo日志文件:/u01/my3306/data/ib_logfile0。open_count显示当前文件打开的数目,如果重来没有打开过,不会出现在表中。mysql> select * from file_instances;+------------------------------------------------.

2020-11-08 08:14:01 151

原创 mysql的三种外键约束方式

mysql的三种外键约束方式如果表A的主键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL为例,总结一下3种外键约束方式的区别和联系。以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。首先创建用户组表:创建用户组表create table t_group(id i...

2020-10-19 22:44:25 715

原创 redis-cluster搭建

一,系统概述1系统总体构架Redis-Cluster架构图说明:每台Redis机器上有三个Redis实例:一个Master节点,两个Slave节点(Slave节点用来对主节点数据进行备份以及故障切换使用)。Master-Slave的组合方式如图1所示,在Cluster模式下,每个组内有一个Master和一至多个Slave(图中为1个Master对应2个Slave),且多个组的master共同组成一个Cluster集群。(1)所有的Redis节点彼此互联(PING-PONG...

2020-10-02 22:30:47 322

原创 Redis sentinel搭建

Redis sentinel介绍Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:·监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。·提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。·自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时,

2020-10-01 21:54:49 1095

原创 redis主从复制搭建

安装环境:redis:192.168.136.136(master节点)redis;192.168.136.137(slave节点)开始安装1,安装redis 依赖的包和上传下载的软件automake,autoconf基础的编译环境yum -y install gcc gcc-c++ automake autoconf lrzsz解压redis软件包:tar -xvf redis-3.2.3.tar.gzcdredis-3.2.3.tar.gz...

2020-09-27 22:58:10 95

原创 show profiles

mysql提供的可以用来分析当前会话语句执行资源消耗情况的命令profile.默认是关闭的。have_profiling=YES表示当前版本支持 该功能,我们需要开启profile功能,set profiling=1;来开启(当前会话关闭前,只需要执行一次)执行一条SQL语句:select *from t3;通过 show profiles查看SQL运行结果。show profiles;+----------+------------+--------------------

2020-08-22 00:38:25 162

原创 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec

今天测试select ...into outfile备份工具,发现如下报错:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement截图如下:出现这个错误是因为没有给数据库指定写出文件的路径或者写出的路径有问题。首先使用下面的命令show variables like '%secure%';查看数据库的存储路..

2020-08-16 13:19:29 1120

原创 MGR集群原理及特性

1,MGR简介MGR全称MySQL Group Replication(Mysql组复制),是MySQL官方的一个全新的高可用与高扩展的解决方案。MGR提供了高可用、高扩展、高可靠的MySQL集群服务。在MGR出现之前,用户常见的MySQL高可用方式,无论怎么变化架构,本质就是Master-Slave架构。MySQL 5.7版本开始支持无损半同步复制(lossless semi-sync replication),从而进一步提示数据复制的强一致性。MySQL Group Replication(M

2020-07-19 14:26:10 1637

原创 mysql cpu 内存的选择

1,cpumysql在执行单个SQL的时候,在底层只能用到一个CPU,所以要想提升SQL的执行效率,在考虑CPU的时候,最好选择主频高,有利于加速单条SQL语句的执行效率。在有些极端条件下,如秒杀等密集型业务,并发需求很大,这个时候,并发执行的SQL需求很大,要保证在短时间内有巨大的吞吐量,就需要选择核心数多的CPU。2,内存内存是解决磁盘IO能力不足,有效提升性能的利器。在大部分情况下,增加mysql主机内存,并配置到数据库引擎中去,可以有效提升性能,数据库所配置的物理内存已经远远超出了

2020-07-19 09:49:32 2384

原创 mysql重要参数介绍

1,query_cache_sizequery_cache_size:query cache 是用来缓存SQL语句文本和对应查询结果的缓存空间,如果相应的表没有变化,那么下次在碰到完全一致的SQL的时候,则跳过一切解析和查询,直接返回结果,这对某些情况是适合的,但是如果表变化非常频繁,SQL也是动态生成的,则由于要不断更新CACHE中的内容,并且这个时候锁粒度是非常大,反而会成为瓶颈,所以很多情况下,会关掉这个选项,设置此参数为0.具体配置方法:1.将query_cache_size设置为具体的大

2020-07-15 23:18:23 1263

原创 mysql索引的正确使用

mysql索引的正确使用1,mysql使用索引时,采用的是最左匹配原则。如果是单列索引很容易理解,如果是多列索引,例如idx_a_b_c(a,b,c),则可以发挥索引功能组合为(a),(b)(a,b,c),并且索引是一次遍历没有回溯的,所以如果要用到两列或者两列以上,那么除了最后一列外,前面的都需要精确匹配才行,因此下面的SQL可以用到索引:select * from t order by a,b,c;select * from t where a=constant order by...

2020-07-12 23:17:56 211

原创 mysql表的设计

关于mysql表的设计,咱也不是开发,粗谈下自己总结的经验。1,字段的合理设置。 在设置表的时候,要合理的选择正确的字段类型,根据需要而定,不能过度滥用。有个原则是:尽可能使用最小的数据类型,最小的页是最有效的。例如,所有的数字都用bigint,所有的字符窜都用varchar(1024)或直接用text等,这都是不对的,仅仅是数字类型,mediumint就比int节省四分之一的空间,有个著名的特例,就是IP类型的存储,惯例上会用字符窜存储点分十进制数据,而IP本质上确是一个无符号的整形数字,这..

2020-07-12 18:15:08 342

原创 mysql碎片空洞问题

碎片空洞问题数据文件空洞的问题,主要关注innodb引擎,innodb在执行数据的修改操作,例如删除一行数据时,表面上看到的是数据库返回删除成功,但在底层并非如此,实际上这行数据在物理上只是被标记为删除,并不会从索引和数据文件中真实删除,所以,它所占据的空间也没有真正释放,在innodb后台有个purge thread,会定期去清理这些已经删除的缩影和文件,即便如此,innodb也不会回收这些已经删除的空间给操作系统,这就会在数据文件中存在很多空洞,这些空洞很可能会一直存在,并且越来越大。(..

2020-07-12 01:18:00 430

原创 mysql数据安全

mysql在保障数据安全 方面,提供了很多可配置的功能和特性,正确的使用这些功能和特性,是保障数据安全的根本。单机安全从单实例的角度来看数据落盘的安全要考虑mysql实例进程挂掉和mysql实例所在的操作系统挂掉的情况,类似于其他关系型数据库,mysql提供了undo log和redo log来保证数据库非正常重启后数据恢复的机制,同时mysql采用了热油的double write机制来保证写入磁盘数据的完整性和正确性,double write可以采用参数innodb_doublewrite来控制,

2020-07-07 22:18:54 595

原创 mysql分库分表的原则

分库分表的种类分库分表是指把数据库中数据物理地拆分到多个实例或多台机器上,非mysql原生态partitioning。partitioning是mysql官方支持,在本地针对表的分区进行操作,它 可以将一张表的数据分别存储为多个文件。如果在写SQL的时候,遵从了分区的规则,就能把原本需要遍历全表的工作转变为只需要遍历表里某一个分区或某些分区的工作,这样降低了查询对服务器的压力,提升了查询效率,如果分区表使用得当,也可以大规模地提升mysql的服务能力。但是这种分区方式,一方面,在使用的时候必须遵

2020-06-29 23:40:02 3016

原创 keepalived配置文件keepalived.conf详解

keepalived.conf详解一个功能比较完整的常用的 keepalived 配置文件,主要包含以下三块第2行全局定义块是必须配置项,一,全局定义块这部分主要用来设置Keepalived的故障通知机制和Router ID标识。示例代码如下:1)第1行为注释2)第4~7行:email通知,用于服务有故障时发送邮件报警。可选项,不建议用。需系统开启sendmail服务,建议用第三方独立监控服务。3)第8行:...

2020-06-21 23:15:30 3799 2

原创 keepalived+mycat+mysql数据库集群架构搭建

keepalived+mycat+mysql框架搭建节点 ip 软件 mysql136 192.168.136.136 keepalived,mycat,mysql(3306) mysql137 192.168.136.137 keepalived,mycat,mysql(3306) mysql138 192.168.136.138 mysql(master3306) mysql139 192.168.136.139 my.

2020-06-20 13:31:12 442

原创 MySQL+keepalived双主热备高可用方案

MySQL+keepalived双主热备高可用方案的实施。架构组件:主机 ip 软件 keepalived136 192.168.136.136 keepalived keepalived137 192.168.136.137 keepalived mysql138 192.168.136.138 mysql mysql139 192.168.136.139 mysql 其中mysql138,mysql139...

2020-06-18 23:09:04 172

原创 mycat9066管理端口命令总结

Mycat (1.5版本)默认开通2个端口,可以在server.xml中进行修改。8066 数据访问端口,即进行 DML 和 DDL 操作。9066 数据库管理端口,即 mycat 服务管理控制功能,用于管理mycat的整个集群状态。管理端口9066常常使用的命令:1,reload命令:重新加载配置文件,在修改完配置文件之后,不用重启mycat,可以使用如下命令重新加载:reload @@config 会加载schema.xml配置的调整。reload @@config_all 会加载全局配置

2020-06-08 00:09:10 2419

原创 mycat读写分离,数据库切换测试演练

测试环境信息:节点 安装软件 mysql136:192.168.136.136 mycat,mysql mysql137:192.168.136.137 mysql mysql138:192.168.136.138 mysql(master) mysql139:192.168.136.139 mysql(slave) (注)mysql138,mysql139节点为主从关系。1,首先看schema.xml文件,这里只拿employee表做测试,e.

2020-06-06 21:52:02 255

原创 mycat mod-long分片规则的使用

mod-long分片规则的使用1,查看schema.xml,看到hotnews表使用的分片规则为mod-long2,查看规则文件rule.xm,mod-long对应的规则及函数3,连接mycat,建表,插入数据mysql> insert into hotnews(id,title,comment)values(9,"sc","xxxxx"); //插入第1条表记录,9和3取余 余0 记录存储在136服务器的db1库里Query OK, 1 row affe..

2020-06-03 21:09:52 444

原创 MyCat安装与简单测试(1)

一、什么是MYCAT?1. 一个彻底开源的,面向企业应用开发的大数据库集群2. 支持事务、ACID、可以替代MySQL的加强版数据库3. 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群4. 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server5. 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品6. 一个新颖的数据库中间件产品从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的Serve...

2020-05-28 14:55:00 269

原创 mysql表空间加密

ERROR 3185 (HY000): Can't find master key from keyring, please check in the server log if a keyring plugin is loaded and initialized successfully.看到这个报错,感觉很陌生,查了下资料是表空间加密文件被删除了,顺便了解下表空间加密。MySQL5.7开始支持表空间加密了,这个特性默认是没有启用的,要使用这个功能要安装插件keyring_file。1..

2020-05-18 22:47:46 2650

原创 binlog2sql使用介绍

mysql原生自带mysqlbinlog,但使用binlog恢复的原理是“重做”而不是“回滚”,所以很多应急场景mysqlbinlog已经不再合适,那就研究下binlog2sql怎么使用。安装依赖特别多,推荐大神博客下载安装就可以,https://www.cnblogs.com/ivictor/p/6418409.html。使用该工具的前提1. binlog_format为ROW,且binlog_row_image为full或noblog,默认为full。2. 必须开启MySQL Se.

2020-05-13 19:12:29 3091

原创 binlog,redo log的一致性分析

MySQL中binlog和redo log的一致性问题binlog和redo log都是在事务提交阶段记录的。这时我们不禁会有一些疑问:是先写redo log 还是先写binlog,是先写binlog,还是先提交?写binlog和redo log的顺序对于数据库系统的持久性和主从复制会不会产生影响?如果有影响,MySQL又是怎么做到binlog和redo log的一致性的呢?带着这些问题...

2020-05-04 23:53:49 226

原创 mysqlbinlog数据恢复,--skip-gtids=true

mysqlbinlog工作中最常用的功能可能就是解析binlog了,写成脚本,一次可以解析多个,今天玩玩mysqlbinlog恢复数据的用法.1,单个binlog恢复数据。先看看test库下t1表的数据情景,不小心误删数据。现在使用mysqlbinlog工具试着恢复数据:首先确认目前写的binlog是mysql-bin.000001恢复过程:首先分析应该恢...

2020-05-04 21:59:02 2725 1

原创 ERROR 1782 (HY000) at line 17: @@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MOD

今日研究数据库rowid的问题,mysql的binlog是server层的东西,而innodb中的Rowid是存储引擎的东西,server层根本感知不到Rowid的存在,那么复制时从库如何感知哪一行对应哪一个Rowid呢?这话视乎是老生常谈了,但总感觉有些官方,让人理解一些东西,最好还是拿出一些实证来,首先创建一个没有主键的表:mysql> desc t2;...

2020-05-03 14:07:01 5271 2

原创 mysql binlog详细介绍

MySQL binlog记录的所有操作实际上都有对应的事件类型的,STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型。下面就挑几个重点的说一下:QUERY_EVENTQUERY_EVENT以文本的形式来记录事务的操作。QUERY_EVENT类型的事件通常在以下几种情况下使用:1. 事务开始...

2020-04-17 00:00:23 1284

原创 mysql 二段式提交

MySQL中binlog和redo log的一致性问题binlog和redo log都是在事务提交阶段记录的。这时我们不禁会有一些疑问:是先写redo log 还是先写binlog,是先写binlog,还是先提交?写binlog和redo log的顺序对于数据库系统的持久性和主从复制会不会产生影响?如果有影响,MySQL又是怎么做到binlog和redo log的一致性的呢?带着这些...

2020-04-16 14:39:03 525 2

原创 mysql宕机恢复原理

异常故障恢复并行复制总是存在一个不可避免的问题,那就是在从库并行执行的过程中,如果数据库或操作系统挂了,那么此时每个线程执行的点就都是不确定的。也就是说顺序的binlog被分发出去了之后,从最小位置到最大位置之间这块连续的内容之间存在断点的。如此一来,从库恢复之后,开始执行时就需要准确无误地还原哪些已经执行,哪些还没有执行。一个正在并行执行的事物队列,也可以说这些事务的last_commi...

2020-04-12 23:02:11 958

原创 MYSQL5.7多线程复制原理

MYSQL5.7多线程复制原理在使用mysql的过程中,复制延迟一直是一个DBA头疼的问题。延迟优化方法:增大从库参数innodb_buffer_pool_size的值,可以缓存更多数据,减少由于转换导致的IO压力。 增大参数innodb_log_file_size,innodb_log_file_in_group的值,减少buffer pool的磁盘IO,提升写入性能。 修改参...

2020-04-09 00:11:07 1209

原创 利用GTID模式快速改变主从复制关系

利用GTID模式快速改变主从复制关系在日常数据库运维中,经常需要调整复制的拓扑关系。master A:192.168.136.137slave B:192.168.136.138slave C:192.168.136.139在维护过程中需要将从节点C的复制源修改为B,即将复制拓扑修改为级联关系:A->B->C ,#1停止C实例的复制mysql>slt...

2020-04-06 16:02:02 119 1

原创       GTID入门篇

GTID入门篇GTID是全局事物标识符,是mysql5.6版本在主从复制方面推出的重量级特性。有了gtid,一个事物在集群中就不在孤独,在每一个节点中,都存在具有相同标识符的兄弟们和它作伴,同一个事物中就不在孤独,在每一个节点中,都存在具有相同标识符的兄弟们和它作伴,同一个事物,在同一个节点中出现多次的情况,也不会重现了,gtid的出现,直...

2020-04-06 11:55:36 569

原创 mysql5.7有哪些新特性

mysql5.7新特性1,online alter table5.7版本支持对索引的重命名alter table tb_name rename index old_index_name to new_index_name;varchar 列的大小在线调整的方法。alter table t1 algotithm=inplace,change column meg1 meg1 varc...

2020-03-29 12:40:40 385 2

sixty_nine_app_20230925_gjcp.apk

sixty_nine_app_20230925_gjcp.apk

2023-10-05

空空如也

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

TA关注的人

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