OceanBase:谁动了我得参数?
作者:郑增权
爱可生南区数据库工程师,爱可生 DBA 团队成员,负责数据库相关技术支持。爱好:桌球、羽毛球、咖啡、电影。
本文来源:原创投稿
- 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
背景
客户想在业务上线前记录现有 OceanBase 集群的 Parameters、Variables、ProxyCofnig 参数值。然后,将其与“默认值”或“DBA 主动刷的调优参数”进行对比,若是“默认值”或“DBA 主动刷的调优参数”则符合预期,否则认为其是不符合预期的值。最后,生成一份报表文件,标记出非预期的值,再由人工确认其合理性。
客户所用的 OceanBase 版本还没有提供追溯所有参数修改记录的方法,作者提供了利用 Shell 脚本 + Excel VLOOKUP 函数,快速采集 OB 参数,并生成参数存档文件 的方法来实现该需求。 下面将展示该方法的实现步骤。
实现
2.1 准备脚本和模板文件
测试环境安装同版本的 OBServer、OBproxy,编写 Shell 脚本用于获取默认的 Parameters、Variables、ProxyCofnig 参数值,并将其提取出来,放至 Excel 作为“默认值模板”。
主备集群模式,主集群和备集群需分别执行脚本获取参数文件:
参数 | 级别 | 说明 |
---|---|---|
Parameters | 集群级 | 每个集群获取一份参数 |
Variables | 租户级 | 每个租户获取一份参数 |
ProxyConfig | 节点级 | 每个 OBProxy 节点获取一份参数 |
三个脚本在文末呈现并已传至 GIthub。
运行三个脚本,并下载结果文件。
整理下载的文件,形成三个汇总文件。
- Parameters 默认值模板
- Variables 默认值模板
- ProxyConfig 默认值模板
2.2 提取参数
将 DBA 主动刷的参数提取出来,仿照“默认值模板”放至 Excel 作为“刷参数默认值模板”sheet。
2.3 获取对比参数
在生产环境运行 Shell 脚本获取参数,将参数放至 Excel,基于 vlookup 进行跨 sheet 对比,将不符合预期的参数值以红色底纹展示。
下面以 Variables 为例进行展示,Parameters 和 ProxyConfig 与其类似。
=IFERROR(IF(B2=VLOOKUP(A2,variables模板!A:B,2,FALSE),"一致","不一致"),"不存在")
=IFERROR(IF(B2=VLOOKUP(A2,刷参数默认值模板!A:B,2,FALSE),"一致","不一致"),"不存在")
2.4 人工确认
将不符合预期的参数与客户进行确认,不符合要求的需择期整改。
总结
- OceanBase 当前版本尚未提供追溯所有参数修改记录的方法,本文为记录参数修改记录提供一种思路。
- 基于本文方法进行参数对比,在参数有更新时需在 Excel 中同步更新。
- 当项目上线后,若有参数被违规修改,基于此存档文件可进行追溯对比。 更多技术文章,请访问:https://opensource.actionsky.com/
关于 SQLE
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。
SQLE 获取
类型 | 地址 |
---|---|
版本库 | https://github.com/actiontech/sqle |
文档 | https://actiontech.github.io/sqle-docs/ |
发布信息 | https://github.com/actiontech/sqle/releases |
数据审核插件开发文档 | https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse |
相关文章:
OceanBase:谁动了我得参数?
作者:郑增权 爱可生南区数据库工程师,爱可生 DBA 团队成员,负责数据库相关技术支持。爱好:桌球、羽毛球、咖啡、电影。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转…...
Python快速入门体验
Python快速入门体验 一、环境信息1.1 硬件信息1.2 软件信息 二、Conda安装2.1 Conda介绍2.1.1 Conda简介2.1.2 Conda、Anaconda及Miniconda及的关系 2.2 Conda安装包下载2.2.1 Miniconda下载2.2.2 Anconda下载 2.3 Conda安装2.3.1 Miniconda安装2.3.2 Anconda安装 2.4 Conda初始…...
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
文章目录 贪婪和非贪婪模式进阶案例 贪婪和非贪婪模式 Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符; 非贪婪则相反,总是尝试匹配尽可能少的字符。 在*、?、、{m,n}后面…...
MongoDB【CRUD练习-条件查询-文档关系】
练习1-CRUD // 进入test数据库 use test; // 查询文档内容 db.students.find(); // 显示当前数据库中所有集合 show collections; // 向数据库的user集合中插入一个文档 db.users.insertOne({username: "lyh"} ); // 查看当前数据库中所有的集合 发现users集合被创建…...
使用M2Mqtt 接受以及发布MQTT消息
在NuGet库里面直接查找M2Mqtt就可以安装库。 使用framework4.5.2 1.配置文件操作 public static class GModel{public static BassSetup MainSetup { get; set; }public static void GetThisAdd(){MainSetup new BassSetup();string IPAdd ConfigurationManager.AppSettings…...
【SA8295P 源码分析】33 - Android GVM USB 透传配置
【SA8295P 源码分析】33 - Android GVM USB 透传配置 1. QNX 侧配置 USB1 为 GVM 使用2. Android 端配置 dts:以配置 USB1 为例3. QNX 端配置 linux-la.config:以配置 USB1 为例4. 在Android shell 中配置USB0 / USB1 的 Host/device 模式切换系列文章汇总见:《【SA8295P 源…...
华为OD机试 - 过滤组合字符串 - 深度优先搜索dfs算法(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…...
【Unity自制手册】游戏基础API大全
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
【LVS】4、HAProxy搭建web集群
目前常见的Web集群调度器分为软件和硬件 软件通常使用开源的LVS、Haproxy、Nginx LVS性能最好(基于内核转发),但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性…...
【应用层】网络基础 -- HTTP协议
再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…...
【线性DP】模型总结(terse版)
【线性DP】模型总结 最长上升子序列 DP法 dp[i]表示以i结尾的最长上升子序列的长度。 对于每个i,遍历j1~i-1,若a[j] < a[i], 则dp[i] max(dp[i], dp[j] 1); 二分法 可以优化时间复杂度。 dp[]数组用来存储当前最长上升子序列。 若dp[]数…...
conda 常用命令
conda 常用命令 一、创建环境二、删除环境三、环境重命名四 、查看环境列表五、进入某个虚拟环境六、退出当前环境七、查看当前虚拟环境下的所有安装包八、安装或卸载包(进入虚拟环境之后)九、分享虚拟环境十、源服务器管理十一、升级十二、卸载十三、卸载十四、pip…...
前端面试:【异步编程】Callback、Promise和Async/Await
嗨,亲爱的JavaScript探险家!在JavaScript开发的旅程中,你会经常遇到异步编程的需求。为了处理异步操作,JavaScript提供了多种机制,包括Callbacks、Promises和Async/Await。本文将深入介绍这些机制,让你能够…...
大数据(四):Pandas的基础应用详解
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教…...
计算机网络第3章(数据链路层)
计算机网络第3章(数据链路层) 3.1 数据链路层概述3.1.1 概述3.1.2 数据链路层使用的信道3.1.3 三个重要问题 3.2 封装成帧3.2.1 介绍3.2.2 透明传输3.2.3 总结 3.3 差错检测3.3.1 介绍3.3.2 奇偶校验3.3.3 循环冗余校验CRC(Cyclic Redundancy Check)3.3.…...
stm32之4.时钟体系
3.时钟体系(给单片机提供一个非常稳定的频率信号) ①可以使用三种不同的时钟源来驱动系统时钟(SYSCLK),CPU运行的频率为168MHZ; HSI(RC振荡器时钟,也就是高速内部时钟,一般来说很少用,因为精度…...
RPC和HTTP协议
RPC 全称(Remote Procedure Call),它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。 它的核心目标是,让开发人员在进行远程方法调用的时候,就像调用本地方法一样,不需要额外为了完成这个交…...
BUGFix:onnx -> TensorRT转换过程失败
先附上相关的onnx2trt的部分代码: def onnx2trt(onnx_path):logger trt.Logger(trt.Logger.ERROR)builder trt.Builder(logger)network builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))parser trt.OnnxParser(netw…...
FFMPEG小白常用命令行
序列帧转H264视频 ffmpeg -r 60 -f image2 -s 1920x1080 -i fram%d.jpg -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4 -vcodec h264 .\ffmpeg -r 60 -f image2 -s 1920x1080 -i %04d.jpeg -vcodec h264 test.mp4 %04d 表示用零来填充直到长度为4,i.e 000…...
个性定制还是纯粹简约:探寻界面选择背后的心理宇宙
在数码世界中,我们的界面选择成为了一张架起的桥梁,连接着个性的渴望与效率的追求。当我们面对个性化定制界面和极简版原装界面,我们仿佛站在了一座分岔路口,左右各有一片令人心驰神往的风景。究竟是走向五光十色的个性世界&#…...
【Java 高阶】一文精通 Spring MVC - 转发重定向(四)
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…...
嵌入式Linux开发实操(十):ADC接口开发
#前言 ADC就是模数转换,可以用来接一些模拟量设备,所谓模拟量就是波形不是方波而是各种包络形状的波形的信号,比如电压、电流等电信号或压力、温度、湿度、位移、声音等非电信号,ADC就是将这些信号转换为数字方波信号,以便于信息传递的。 #ADC硬件设计 key按键连接了AD…...
精进语言模型:探索LLM Training微调与奖励模型技术的新途径
大语言模型训练(LLM Training) LLMs Trainer 是一个旨在帮助人们从零开始训练大模型的仓库,该仓库最早参考自 Open-Llama,并在其基础上进行扩充。 有关 LLM 训练流程的更多细节可以参考 【LLM】从零开始训练大模型。 使用仓库之…...
数据采集:selenium 提取 Cookie 自动登陆
写在前面 工作需要,简单整理博文内容涉及 通过 selenium 实现自动登陆理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的&#x…...
[Go版]算法通关村第十三关黄金——数字数学问题之数论问题(最大公约数、素数、埃氏筛、丑数)
目录 题目:辗转相除法(求最大公约数)思路分析:辗转相除法(也叫欧几里得算法)gcd(a,b) gcd(b,a mod b)复杂度:时间复杂度 O ( n l o g ( m a x ) ) O(nlog(max)) O(nlog(max))、空间复杂度 O (…...
Qt双击某一文件通过自己实现的程序打开,并加载文件显示
双击启动 简述方法一方法二注意 简述 在Windows系统中,双击某类扩展名的文件,通过自己实现的程序打开文件,并正确加载及显示文件。有两种方式可以到达这个目的。 对于系统不知道的扩展名的文件,第一次打开时,需要自行…...
硬件产品的量产问题------硬件工程师在产线关注什么
前言: 产品开发测试无误,但量产缺遇到很多不良甚至DOA问题。 硬件开发过程中如何确保产线的治具、生产及硬件工程师在产线需要关注一些什么。 坚信:好的产品是要可以做出来的。 1、禁忌: 禁忌热插拔;禁忌测试不防呆…...
Vulnhub系列靶机--- Hackadmeic.RTB1
系列:Hackademic(此系列共2台) 难度:初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容,点击target 点击…...
redis高级----------主从复制
redis的四种模式:单例模式;主从模式;哨兵模式,集群模式 一、主从模式 单例模式虽然操作简单,但是不具备高可用 缺点: 单点的宕机引来的服务的灾难、数据丢失单点服务器内存瓶颈,无法无限纵向扩…...
posgresql通过PL/pgSQL脚本统一修改某字段大小写
项目在做postgresql数据库适配时遇到了某些问题,需要统一将某个模式含id字段的全部表,将id字段由小写转换为大写,可以通过PL/pgSQL脚本实现。 先确保当前用户有足够的权限 DO $$ DECLARE current_table text;current_column text; BEGIN --…...
公司两学一做网站/竞价广告推广
点击上方“蓝色字”可关注我们!暴走时评:Decred公司于今日上线Politeia软件,在现有的工作证明和股权证明共识相结合的基础上,试图将所有治理决策权交给那些在进行任何特定决策时,积极参与其协议运作的投资者。拥有Decr…...
建设银行公司机构找不到网站/针对本地的免费推广平台
FTP是file transfer protocol(文件传输协议)的缩写,用来在两台计算机之间相互传递文件,FTP协议要用到两个TCP连接,一个的命令连接dir等,用来在客户端和服务器之间传递命令;另一个是数据链路&…...
在线印章制作生成免费/百度seo点击软件
引用:http://blog.csdn.net/luyi325xyz/article/details/42342899 当用户强制退出App,清空后台时,Activity和Service的onDestory()方法都将失效。此时若App的Service可以自启动,如何判断此时的Service是重启后的Service࿰…...
wordpress 做购物网站/整站排名优化公司
From http://www.cnblogs.com/clara/archive/2011/09/17/2179493.html转载于:https://www.cnblogs.com/liangnote/p/4299194.html...
医疗网站建设效果/aso优化吧
我把Python学习分成了三个阶段第一个阶段:Python的基础知识初学者需要对Python的基础知识做一个全方位的了解,要清楚什么是条件选择,循环的作用,List集合和Dict字典集合;什么是函数,如何进行异常处理&#…...
备份的网站建设方案书/seo查询外链
0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 完全背包问题: 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i]&#…...