导语在日常工作中可能会存在误删数据的情况,今天就简单介绍下如何利用延迟库进行数据库的快速恢复。步骤1.环境准备建立一个测试的主从库,写入一些测试数据,非本文要点,过程略。2.设置延迟同步在原有同步信息的基础上进行如下操作,设置延迟同步1小时设置延迟1小时mysql>stopslave;mysql>CHANGEREPLICATIONSOURCETOSOURCEDELAY3600;mysql>startslave;mysql>showslavestatus\G;1.rowSlaveIOState:Waitingformastertosendevent...
2022-08-23 16:21:21 4509浏览 0点赞 0回复 0收藏
导语有时候用Postman接口测试需要获取MySQL的查询结果做接口输出的校验,这里介绍下Postman通过RestfulAPI接口访问MySQL的工具xmysql的使用方法。步骤一、使用nmp安装xmysql注:npm的安装和配置自行百度,这里主要讲xmysql,就不赘述了C:\Users\wmp>nodevv12.16.3C:\Users\wmp>C:\Users\wmp>npminstallgxmysqlC:\Users\wmp\AppData\Roaming\npm\xmysql>C:\Users\wmp\AppData\Roaming\npm\nodemodules\xmysql\bin\index.js>es5ex...
2022-08-23 16:21:04 5815浏览 0点赞 0回复 0收藏
MySQL5.7MGR升级成GreatSQL开始今天的文章之前,先简单介绍下GreatSQL吧:●GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。●GreatSQL可以作为MySQL或PerconaServer的可选替代方案,用于线上生产环境。●GreatSQL完全免费并兼容MySQL或PerconaServer。GreatSQL是国产MySQL的一个重要分支,目前主推的是GreatSQL8.0.25和GreatSQL5.7.36,如果...
2022-08-23 16:20:46 6977浏览 0点赞 0回复 0收藏
导语在日常开发过程中难免会使用到第三方库或者需要将部分库分离另外存储,如果将库与代码放在一起难免会造成工程庞大,此时就可以采用将库与源码分离的方式,在编译时根据情况来判断是否需要下载。步骤下面来解析下具体操作步骤,以下以oracleoci库下载为例。UNSET命令初始化本次编译用到的参数变量初始化oci库压缩包路径参数LOCALOCILIBZIPUNSET(LOCALOCILIBZIPCACHE)初始化oci库解压路径参数LOCALOCILIBDIRUNSET(LOCALOCILIB...
2022-08-23 16:20:34 6159浏览 0点赞 0回复 0收藏
导语在数据检索的过程中,经常会有多个列的匹配需求,今天介绍下联合索引的使用以及最左匹配原则的案例。最左匹配原则作用在联合索引中,假如表中有一个联合索引(tcol01,tcol02,tcol03),只有当SQL使用到tcol01、tcol02索引的前提下,tcol03的索引才会被使用;同理只有tcol01的索引被使用的前提下,tcol02的索引才会被使用。下面我们来列举几个例子来说明。步骤使用mysqlrandomdataload创建测试数据建库和建表CREATEDATABASEI...
2022-08-23 16:20:18 4609浏览 0点赞 0回复 0收藏
前情介绍:我们都知道登录MySQL数据库时,连接层接入数据库需要经过mysql.user表中,用户名密码的验证才能登录数据库。如果mysql.user中不存在此用户或者密码不正确,则会返回错误提示。假如mysql.user数据库表中没有对应的账号,我们能不能登录数据库呢?今天我们来介绍一下如何来使用Linux操作系统用户,通过验证插件映射MySQL内的账号,登录数据库管理的方法。操作环境:操作系统:centos7.6MySQL版本:MySQLEnterpriseServe...
2022-08-23 16:20:03 4749浏览 0点赞 0回复 0收藏
导语SHOWCREATETABLE语句用于为指定表视图显示创建的语句,本文将简要描述如何在MySQL源码里跟踪和学习此类语句的执行流程。(注:使用版本为PerconaServer8.0.2515)步骤准备工作编译调试版本的mysqlserver程序,创建数据库实例后建立一张示例表:createtablet1(c1int);有了示例表,在客户端执行如下语句,就可以在服务端开始我们的语句跟踪了:showcreatetablet1;断点设置在如下函数方法中设置断点(gdb):dispatchsqlcommand对sq...
2022-08-23 16:19:41 3554浏览 0点赞 0回复 0收藏
导语SHOWCREATETABLE语句用于为指定表视图显示创建的语句,本文将简要描述如何在MySQL源码里跟踪和学习此类语句的执行流程。(注:使用版本为PerconaServer8.0.2515)步骤准备工作编译调试版本的mysqlserver程序,创建数据库实例后建立一张示例表:createtablet1(c1int);断点设置在如下函数方法中设置断点(gdb):dispatchsqlcommand对sql语句做词法语法解析,得到实际要运行的sql命令mysqlexecutecommand根据lex>sqlcommand值调用...
2022-08-23 16:19:31 4225浏览 0点赞 0回复 0收藏
在多写(多节点写入)数据库(例如MySQLMGR的multiprimarymode)与应用之间,往往会加一层代理组件,通过算法调节不同节点负载,分发高并发读写请求。要求代理工具需要具有请求转发、负载均衡、故障转移的功能。在后端节点故障发生或者连接因为客户端异常、网络问题断开时,需要及时将故障节点及时踢出负载均衡队列或者关闭异常连接,做到故障转移。这就是接下来介绍的主要内容,使用golang简单编写一个这样的工具,来深入学习...
2022-08-23 16:19:10 4632浏览 0点赞 0回复 0收藏
●1.MGR架构●2.事务数据同步、认证过程◆2.1事务处理合法性判断◆2.2事务消息中都包含哪些信息◆2.3事务认证流程几个关键点◆2.4事务认证数据库清理●3.多数派原则●4.启用MGR的一些先决条件●5.小结参考资料、文档免责声明加入团队本文简单介绍下MGR的整体技术架构概况,事务同步过程,事务认证机制等关键知识点。1.MGR架构再来看一遍MGR的架构图:从上图可知,MGR工作时,主要涉及到以下三层:1.Server层:负责处理用户请求...
2022-08-23 16:17:57 5048浏览 0点赞 0回复 0收藏
MySQL的表有很多种,对表的操作主要是增删改查,今天来浅谈一下这些操作的底层代码和流程,以下以tmptable为例子,为了更好的说明操作流程,该表没有建立primarykey。1.首先创建一张tmptable,第三个参数isvirtualfalse代表这不是虚拟表,如果这个值设置为true那说明这是虚拟表,主要给存储过程建立临时表来存储参数的,这种虚拟表没有handler,只能存储列信息和单行列值,不能存放多行值,不能进行增删操作。Tabletablecreatet...
2022-08-22 16:02:48 4394浏览 0点赞 0回复 0收藏
MySQL主要索引类型有如下几种:1.主键索引2.唯一索引3.普通索引4.空间索引5.全文索引假设有如下一张表CREATETABLEt1(idbigintunsignedNOTNULLAUTOINCREMENT,u1intunsignedNOTNULLDEFAULT'0',u2intunsignedNOTNULLDEFAULT'0',u3varchar(20)NOTNULLDEFAULT'',u4varchar(35)NOTNULLDEFAULT'',PRIMARYKEY(id))ENGINEInnoDB聚簇索引索引与数据存放在一起,找到索引的同时也找到了数据;聚簇索引具有唯一性,一张表只有一个聚簇索引。...
2022-08-22 16:02:39 5915浏览 0点赞 0回复 0收藏
理论知识错误日志内容错误日志包含mysqld启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行时出现的错误、警告和其他需要注意的信息。例如:如果mysqld检测到某个表需要检查或修复,会写入错误日志。根据错误日志配置,错误消息还可能填充performanceschema.errorlog表,以便为日志提供SQL接口,使错误日志能够查询。如果用mysqldsafe启动mysqld,mysqldsafe会将消息写入错误日志。例如,当mysqldsa...
2022-08-22 16:02:29 6455浏览 0点赞 0回复 0收藏
一、update跟踪执行配置使用内部程序堆栈跟踪工具pathviewer,跟踪mysqlupdate一行数据的执行过程,配置执行脚本:callupdate.shDROPDATABASEIFEXISTSd1;CREATEDATABASEd1;used1;droptableifexiststest;CREATETABLEtest(c0intNOTNULLAUTOINCREMENT,c1dateDEFAULTNULL,c2timeDEFAULTNULL,c3datetimeDEFAULTNULL,c4yearDEFAULTNULL,c5intDEFAULTNULL,c6decimal(10,6)DEFAULTNULL,c7doubleDEFAULTNULL,c8floatDEFAULTNULL,c9varchar...
2022-08-22 16:02:12 5225浏览 0点赞 0回复 0收藏
●1.选主算法●2.多版本兼容性●3.MGR5.7滚动升级至8.0●4.小结●参考资料、文档●免责声明●加入团队本文介绍MGR的选主算法,以及当MGR集群中有多个不同版本混搭时,如何才能正常运行,有什么注意事项。1.选主算法MGR运行在单主模式时,当发生主节点切换,就需要进行选主工作。多主模式下,所有节点都是主节点,就不需要选主了。MGR的选主工作是自动的,每个节点都会参与。选主时会检查当前最新的组视图,对潜在的新主节点(各...
2022-08-22 16:01:30 5237浏览 0点赞 0回复 0收藏
索引介绍索引是一种特殊的数据库结构,被设计用来快速查询数据库表中的特定记录。索引有多种类型,就像字典有拼音查找和偏旁查找一样都是为了提高检索效率。MySQL中最常见的索引类型有B+树索引和哈希索引,下面来简单介绍一下这两种索引类型有哪些差别和优劣。B+树索引B+树索引是一种多路径的平衡搜索树,具有如下特点:●1.非叶子节点不保存数据,只保存索引值●2.叶子节点保存所有的索引值和数据●3.同级节点通过指针自小而大...
2022-08-22 16:00:18 4098浏览 0点赞 0回复 0收藏
●0.前言●1.修改说明●2.编译mysqlshell◆2.1环境准备◆2.2开始编译mysql&mysqlshell◆2.3利用patchelf修改mysqlsh二进制文件●3.运行mysqlshellforGreatSQL0.前言由于GreatSQL8.0.27版本中引入MGR仲裁节点(投票节点,ARBITRATOR)特性,MySQL提供的mysqlshell无法识别该特性,因此提供mysqlshellforGreatSQL版本。1.修改说明需要修改mysqlshell源码,增加对仲裁节点(投票节点)角色类型的支持,涉及到两个文件:●mysqlshdk...
2022-08-22 16:00:10 5429浏览 0点赞 0回复 0收藏
1、安装Docker2、拉取GreatSQL镜像,并创建容器2.1拉取镜像2.2创建新容器2.3容器管理3、构建MGR集群3.1创建专用子网3.2创建3个新容器3.3初始化MGR集群3.4启动MGR服务3.5写入测试数据4、利用Dockercompose创建Docker容器5.小结参考资料、文档免责声明加入团队为了方面社区用户体验GreatSQL,我们同时还提供Docker镜像,本文详细介绍如何在Docker中部署GreatSQL,并且构建一个MGR集群。本文涉及的运行环境如下:[rootgreatsql]cat...
2022-08-22 15:59:30 5345浏览 0点赞 0回复 0收藏
视图定义视图是一种有结构的虚拟表,本身不存放数据,视图中数据来源于真实的表,真实的表也被称之为基表。视图作用1.简化SQL语句:比如将一条多表联合查询做成视图,后续直接SELECT视图进行查询即可。2.相对安全的权限控制:针对不同应用只需要建立对应视图表,提供所需要的字段信息,应用无法感知到其他字段信息。3.保障数据安全:对视图进行删除操作不会影响基表的数据。创建视图基本语法CREATE[ORREPLACE][ALGORITHM{UNDEFINED...
2022-08-22 15:59:15 4189浏览 0点赞 0回复 0收藏
1.安装ansbile2.配置ansible3.建立ssh信任4.测试ansible5.使用ansible自动安装GreatSQL5.1修改etchosts设置正确的主机名5.2下载GreatSQLansible安装包,解压缩5.3利用ansible安装GreatSQL5.4检查Ansible运行过程输出5.5检查GreatSQL安装结果6.小结参考资料、文档免责声明加入团队本次介绍如何利用ansible一键安装GreatSQL并完成MGR部署。本文介绍的运行环境是CentOS7.9:[rootgreatsql]catetcredhatreleaseCentOSLinuxrelease7....
2022-08-22 15:59:04 4128浏览 0点赞 0回复 0收藏