如何查看oceanbase数据库修改过的参数

news/2024/12/24 20:42:00/文章来源:https://www.cnblogs.com/coygfly/p/18622500

OceanBase中没有像ORACLE或MySQL那样独立的参数文件,因此在进行数据库迁移的这种场景下,如何保持新老数据库的参数的一致成了OceanBase中的一个问题。这个问题其实也可以转化为如何查询OceanBase数据库中修改过的参数,我们需要找到那些和默认值不一致的参数,并以此在新数据库环境中同步修改。

一. OCP查询

在OCP集群和租户界面的参数管理功能下,可以查看“参数列表”和“修改历史”。但是这里“修改历史”只能查询通过OCP平台修改过的参数,如果是通过命令行修改的则无法查询,并且如果OCP重装后这里的“修改历史”也会被清空。因此,通过OCP查询参数的修改历史不能保证获取全部修改过的参数。

二. obdiag工具

2.1 obdiag集群参数分析

obdiag是OB官方推出的黑屏诊断工具,obdiag有个参数分析功能,可以一键分析OceanBase集群参数和默认值的差异。分析集群参数时,首先需要使用集群参数收集功能一键收集集群参数信息,然后用生成的csv文件进行参数比对。

#集群参数收集
obdiag gather parameter
#集群参数比对
obdiag analyze parameter default --file    

在OceanBase3.2.3版本使用参数分析功能时,报了以下错误。这是因为323版本不存在oceanbase.GV$OB_PARAMETERS试图,所以这个功能至少得4版本以后的OB才可以用。

在OceanBase4.2.1进行参数比对时,发现所有参数都和默认值相同,这明显是不符合实际的。因为这里是用采集生成的csv文件作为默认值文件,所以自然不能找到非默认值参数。对于OB 4.2.2之后的版本,则无需添加--file选项,直接使用obdiag analyze parameter default功能即可找出非默认值参数。因此,obdiag的这个功能其实要在4.2.2版本后才能真正达到和默认值对比的效果。此外,我们也可以在集群迁移的时候,在新集群收集一份参数的存档文件,通过对比新老集群的参数找出不一致的参数。

 2.2 obdiag租户变量分析

 obdiag analyze variable diff 可以一键分析 OceanBase 在线集群变量和之前相比是否变更了,有助于排查变量变更带来的问题。同样,分析变量时,首先也需要一键收集变量信息,然后使用收集变量信息生产的csv文件进行变量比对。

#变量收集
obdiag gather variable
#变量比对
obdiag analyze variable diff --file=/tmp/gather_variables/ob_test2_stb_variables_20241015110704.csv

同样obdiag变量分析功能其实也是和使用obdiag收集的变量存档文件进行比对,而不能直接找出非默认值参数。这样的话,就需要在集群搭建好的时候使用obdiag收集一份变量的存档文件进行变量比对。或者,在租户迁移的时候,在新环境收集一份变量存档文件,然后用这份存档文件和老环境的变量进行比对,这样也能找出两边不一致的变量。

三、系统视图查询

oceanbase中提供了参数相关的数据字典视图,我们可以从这些视图中发现一些端倪。在3版本和4版本的OB中,描述租户变量的视图分别是__all_virtual_sys_variable和cdb_ob_sys_variables,在这两个视图中有两列gmt_create和gmt_modified,代表着变量的创建和修改时间,通过比对这个时间,可以找到修改过的租户变量。

MySQL [oceanbase]> desc __all_virtual_sys_variable;
+--------------+----------------+------+-----+---------+-------+
| Field        | Type           | Null | Key | Default | Extra |
+--------------+----------------+------+-----+---------+-------+
| tenant_id    | bigint(20)     | NO   | PRI | NULL    |       |
| zone         | varchar(128)   | NO   | PRI | NULL    |       |
| name         | varchar(128)   | NO   | PRI |         |       |
| gmt_create   | timestamp(6)   | NO   |     | NULL    |       |
| gmt_modified | timestamp(6)   | NO   |     | NULL    |       |
| data_type    | bigint(20)     | NO   |     | NULL    |       |
| value        | varchar(65536) | YES  |     | NULL    |       |
| info         | varchar(4096)  | NO   |     | NULL    |       |
| flags        | bigint(20)     | NO   |     | NULL    |       |
| min_val      | varchar(65536) | NO   |     |         |       |
| max_val      | varchar(65536) | NO   |     |         |       |
+--------------+----------------+------+-----+---------+-------+
11 rows in set (0.00 sec)MySQL [oceanbase]> select min(gmt_create) from __all_virtual_sys_variable where tenant_id=1028;
+----------------------------+
| min(gmt_create)            |
+----------------------------+
| 2024-08-30 14:48:19.243321 |
+----------------------------+

MySQL [oceanbase]> select * from __all_virtual_sys_variable where tenant_id=1028 and gmt_modified>'2024-08-30 14:48:19.243321';
+-----------+------+------------------+----------------------------+----------------------------+-----------+------------+----------------------------------+-------+---------+---------+
| tenant_id | zone | name             | gmt_create                 | gmt_modified               | data_type | value      | info                             | flags | min_val | max_val |
+-----------+------+------------------+----------------------------+----------------------------+-----------+------------+----------------------------------+-------+---------+---------+
|      1028 |      | ob_query_timeout | 2024-10-15 15:12:40.329644 | 2024-10-15 15:12:40.329644 |         5 | 1000000000 | Query timeout in microsecond(us) |   131 |         |         |
+-----------+------+------------------+----------------------------+----------------------------+-----------+------------+----------------------------------+-------+---------+---------+
1 row in set (0.00 sec)

对于集群参数,相关的数据字典视图分别是3版本的__all_virtual_tenant_parameter_stat和__all_virtual_sys_parameter_stat,以及4版本的gv$ob_parameters。在这几个数据字典视图中没有相关的信息可以找到曾经修改过的集群参数。

MySQL [oceanbase]> desc __all_virtual_sys_parameter_stat;
+---------------+----------------+------+-----+---------+-------+
| Field         | Type           | Null | Key | Default | Extra |
+---------------+----------------+------+-----+---------+-------+
| zone          | varchar(128)   | NO   |     | NULL    |       |
| svr_type      | varchar(16)    | NO   |     | NULL    |       |
| svr_ip        | varchar(46)    | NO   |     | NULL    |       |
| svr_port      | bigint(20)     | NO   |     | NULL    |       |
| name          | varchar(128)   | NO   |     | NULL    |       |
| data_type     | varchar(128)   | YES  |     | NULL    |       |
| value         | varchar(65536) | NO   |     | NULL    |       |
| value_strict  | varchar(4096)  | YES  |     | NULL    |       |
| info          | varchar(4096)  | NO   |     | NULL    |       |
| need_reboot   | bigint(20)     | NO   |     | NULL    |       |
| section       | varchar(128)   | NO   |     | NULL    |       |
| visible_level | varchar(64)    | NO   |     | NULL    |       |
| scope         | varchar(64)    | NO   |     | NULL    |       |
| source        | varchar(64)    | NO   |     | NULL    |       |
| edit_level    | varchar(128)   | NO   |     | NULL    |       |
+---------------+----------------+------+-----+---------+-------+

MySQL [oceanbase]> desc gv$ob_parameters;
+------------+----------------+------+-----+---------+-------+
| Field      | Type           | Null | Key | Default | Extra |
+------------+----------------+------+-----+---------+-------+
| SVR_IP     | varchar(46)    | NO   |     | NULL    |       |
| SVR_PORT   | bigint(20)     | NO   |     | NULL    |       |
| ZONE       | varchar(128)   | NO   |     | NULL    |       |
| SCOPE      | varchar(64)    | NO   |     | NULL    |       |
| TENANT_ID  | bigint(20)     | YES  |     | NULL    |       |
| NAME       | varchar(128)   | NO   |     | NULL    |       |
| DATA_TYPE  | varchar(128)   | YES  |     | NULL    |       |
| VALUE      | varchar(65536) | NO   |     | NULL    |       |
| INFO       | varchar(4096)  | NO   |     | NULL    |       |
| SECTION    | varchar(128)   | NO   |     | NULL    |       |
| EDIT_LEVEL | varchar(128)   | NO   |     | NULL    |       |
+------------+----------------+------+-----+---------+-------+

四、总结

本文总结了在OceanBase数据库中找出和默认值不一样的参数的三种方法。目前看来,通过obdiag工具在新部署的数据库环境收集参数信息生成存档文件,然后再通过obdiag工具比对参数存档文件和老数据库的参数,这种方法是最靠谱有效的。此外通过变量数据字典视图也可以帮助我们找到那些曾经修改过的参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858332.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

upload-labs-master第21关详细教程

文件上传漏洞即upload-labs-master第21关超详细教程,有详细版的配置教程、源码分析原理、完整版的操作步骤,零小白跟着做也能成功环境配置需要的东西phpstudy-2018 链接: https://pan.baidu.com/s/1D9l13XTQw7o6A8CSJ2ff9Q 提取码:0278 32 位 vc 9 和 11 运行库 链接: htt…

防重复点击处理

方法注册: 调用:

P9017 [USACO23JAN] Lights Off G

前言 困了一下午, 仅仅只搞懂了个大概, 我们赶紧把这些题补了, 冷静一点 思路 观察大样例可以发现, 答案好像都不大 容易证明的是先用最多 \(n\) 次关闭所有开关, 然后在 \(2n\) 次打开每个灯, 这样一定不超过 \(3n\) 次就可以成功的打开所有灯 那么我们考虑以这个为突破口, 枚…

物联网数据处理-iris数据集(鸢尾花)

物联网数据处理-iris数据集(鸢尾花) 大作业题目读入 iris.txt 里的鸢尾花数据,不考虑标签信息(标签是用来监督学习用的,这里是无监督),利用 PCA(减少噪声,利于可视化) 将数据从 4 维降成 2 维 之后,进行以下操作:利用不同的方式构建邻接矩阵(高斯核,k-临近等)(…

基于扩频解扩+turbo译码的64QAM图传通信系统matlab误码率仿真,扩频参数可设置

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要该通信系统主要用于图像传输,适用于对图像质量和传输可靠性要求较高的场景,如无人机图像传输、视频监控、无线电视广播等。在复杂的电磁环境…

SIP协议中与Dialog相关的概念

如下RFC文档所述:在SIP协议中,对话(Dialog)是由两个用户代理(User Agent,简称UA)之间持续一段时间的端到端关系,通过Call-ID、To-tag和From-tag来标识(即Dialog ID),用于对一个会话(Session)进行信令交互。对话代表一个上下文场景,据此来阐释相关的SIP消息(即一系…

HBuilderX运行到微信开发者工具

HBuilderX运行到微信开发者工具

快手MARM 文章理解

阅读了快手的论文 MARM,论文中的算法 符号看起来不容易理解。 对照图自己研究了下, 理解了。需要知道为什么(b) 和(c) 中 的中间结果是相同的。需要知道 masked-self-attention缓存是怎么处理,看箭头快手 MARM: Unlocking the Future of Recommendation Systems through Mem…

NSSCTF--Crypto--[CISCN 2023 初赛]badkey

NSSCTF Crypto [CISCN 2023 初赛]badkey[CISCN 2023 初赛]badkey task: from Crypto.Util.number import * from Crypto.PublicKey import RSA from hashlib import sha256 import random, os, signal, stringdef proof_of_work():random.seed(os.urandom(8))proof = .join([ra…

deque容器/构造函数/赋值操作/大小操作/插入和删除/数据存取/排序

deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入删除速度会比vector块 vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:…

CSS基础-长度单位

💖简介 在CSS中,长度单位分为绝对长度单位和相对长度单位。这些单位用于定义元素的尺寸、边距、填充、字体大小等属性值 vmin和vmax是CSS中的相对长度单位,它们基于视口(viewport)尺寸来定义元素的宽度或高度。这些单位使得元素的尺寸可以根据视口的大小进行缩放,从而有…