.OIDS的自诊断有哪些功能

.OIDS的自诊断有哪些功能,第1张

采集Attribute数据并记录到数据库文件。

OIDS监控功能开启后,设备会根据Type+Object+Attribute维度周期性地采集Attribute数据并记录到数据库文件。对于采集到的Attribute数据,OIDS模块将KPI数据发给各个业务模块。

使能OIDS诊断功能后,当设备检测到的KPI数据超过内部定义的阈值时会记录OIDS事件,并且OIDS模块会进一步判断是否需要触发OIDS诊断。如果触发OIDS诊断,OIDS模块会指定相应业务模块进行诊断。OIDS模块收到业务模块的诊断结果后,记录到数据库。 *** 作步骤:执行命令system-view,进入系统视图。执行命令oidsmonitorenable{typetype-name|all},使能OIDS监控功能。缺省情况下,OIDS监控功能处于使能状态。执行命令oidsdiagnoseenable{typetype-name|all},使能OIDS诊断功能。缺省情况下,OIDS诊断功能处于去使能状态。

gaussdb数据库参数说明【版本和平台兼容性】【14】

1. 历史版本兼容性

数据库系统的向后兼容性能够为对旧版本的数据库应⽤提供⽀持。

array_nulls

参数说明:控制数组输⼊解析器是否将未⽤引⽤的 NULL 识别为数组的⼀个 NULL 元素。

取值范围:布尔型

on 表⽰允许向数组中输⼊空元素。但 PostgreSQL 8.2 之前的版本不⽀持这么做,因此将把 NULL 当作字符串 “NULL” 。

off 表⽰向下兼容旧式模式。仍然能够创建包含 NULL 值的数组。

默认值:on

backslash_quote

参数说明:控制字符串⽂本中的单引号是否能够⽤ \’ 表⽰。

符合 SQL 标准的写法是将其双写(’’),之前版本的 PostgreSQL 允许使⽤\’ 表⽰。但是使⽤ ’ 容易导致安全漏洞,因为存在某些多字节字符集中的最后⼀个字节与 \ 的 ASCII 值相等。服务器拒绝带有反斜杠转义的查询可以预防这种风险。

注意:

在字符串⽂本符合 SQL 标准的情况下,\ 没有任何其他含义。这个参数影响的是如何处理不符合标准的字符串⽂本,包括明确的字符串转义语法是(E’…’)。

取值范围:枚举类型

on 表⽰⼀直允许使⽤ \’ 表⽰。

off 表⽰拒绝使⽤ \’ 表⽰。

safe_encoding 表⽰仅在客户端字符集编码不会在多字节字符末尾包含 \ 的 ASCII 值时允许。

默认值:safe_encoding

default_with_oids

参数说明:在没有声明 WITH OIDS 和 WITHOUT OIDS 的情况下,这个选项控制在新创建的表中 CREATE TABLE 和 CREATE TABLE AS 是否包含⼀个 OID 字段。它还决定 SELECT INTO 创建的表⾥⾯是否包含 OID 。

不推荐在⽤户表中使⽤ OID ,故默认设置为 off。需要带有 OID 字段的表应该在创建时声明 WITH OIDS 。

取值范围:枚举类型

说明:

在 PostgreSQL 8.1 之后 default_with_oids 缺省为由 on 改为 off 。

默认值:off

escape_string_warning

参数说明:警告在普通字符串中直接使⽤反斜杠转义。

如果需要使⽤反斜杠作为转义,可以调整为使⽤转义字符串语法(E’…’)来做转义,因为在每个 SQL 标准中,普通字符串的默认⾏为现在将反斜杠作为⼀个普通字符。

这个变量可以帮助定位需要改变的代码。

取值范围:布尔型

默认值:on

lo_compat_privileges

参数说明:控制是否启动对⼤对象权限检查的向后兼容模式。

取值范围:布尔型

on 表⽰当读取或修改⼤对象时禁⽤权限检查,与PostgreSQL 9.0 以前的版本兼容。

默认值:off

quote_all_identifiers

参数说明:当数据库⽣成 SQL 时,此选项强制引⽤所有的标识符(包括⾮关键字)。这将影响到 EXPLAN 的输出及函数的结果,例如pg_get_viewdef。 详细说明请参见 gs_dump 的 --quote-all-identifiers 选项。

取值范围:布尔型

默认值:off

sql_inheritance

参数说明:控制继承语义。

取值范围:布尔型

off 表⽰各种命令不能访问⼦表,即默认使⽤ ONLY 关键字。这是为了兼容 7.1 之前版本⽽设置的。

默认值:on

standard_conforming_strings

参数说明:控制普通字符串⽂本(’…’)中是否按照 SQL 标准把反斜扛当普通⽂本。

应⽤程序通过检查这个参数可以判断字符串⽂本的处理⽅式。

建议明确使⽤转义字符串语法(E’…’)来转义字符。

取值范围:布尔型

说明:

从 PostgreSQL 9.1 版本开始,默认值改为由 off 改为 on。

默认值:on

synchronize_seqscans

参数说明:控制启动同步的顺序扫描。在⼤约相同的时间内并⾏扫描读取相同的数据块,共享 I/O 负载。

取值范围:布尔型

on 表⽰扫描可能从表的中间开始,然后选择"环绕"⽅式来覆盖所有的⾏,为了与已经在进⾏中的扫描活动同步。这可能会造成没有⽤ORDER BY ⼦句的查询得到⾏排序造成不可预测的后果。

off 表⽰确保 PostgreSQL 8.3 之前的版本的顺序扫描是从表头开始的。

默认值 :on

2. 平台和客户端兼容性

transform_null_equals

参数说明:控制表达式expr = NULL(或 NULL = expr)当做expr IS NULL处理。如果expr得出NULL值则返回真,否则返回假。

正确的SQL标准兼容的expr = NULL总是返回NULL(未知)。

Microsoft Access⾥的过滤表单⽣成的查询使⽤expr = NULL来测试空值。打开这个选项,可以使⽤该接⼝来访问数据库。

注意:

这个选项只影响 = NULL精确形式,不包括其他⽐较 *** 作符或者其他与⼀些涉及等号 *** 作符的表达式计算(⽐如 IN)。

取值范围:布尔型

默认值:off,新⽤户经常在涉及NULL的表达式上语义混淆,故默认值设为off。

is_equal_nullstring_and_nullvalues

参数说明:控制空字符串’'与空值NULL是否等价。

on表⽰SQL语句中的空字符串’'在语法分析阶段会被当做空值NULL来处理。

off表⽰空字符串’'不会被当做NULL来处理。

说明:

当sql_format=mysql时,空字符串’'也不会被当做NULL来处理。⼆者是"或"的关系,即只要满⾜前⾯任何⼀个条件,空字符串都与NULL不等价。

取值范围:布尔型

默认值:on,即空字符串与NULL是等价的。

sql_format

参数说明:控制数据库的SQL语法和语句⾏为同哪⼀个主流数据库兼容。

oracle表⽰同oracle兼容。

mysql表⽰同mysql兼容。

取值范围:枚举型

默认值:oracle

5.9

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

gaussdb数据库参数说明【版本和平台兼容性】【14】

gaussdb数据库参数说明【版本和平台兼容性】【14】

1. 历史版本兼容性

数据库系统的向后兼容性能够为对旧版本的数据库应⽤提供⽀持。

array_nulls

参数说明:控制数组输⼊解析器是否将未⽤引⽤的 NULL 识别为数组的⼀个 NULL 元素。

取值范围:布尔型

on 表⽰允许向数组中输⼊空元素。但 PostgreSQL 8.2 之前的版本不⽀持这么做,因此将把 NULL 当作字符串 “NULL” 。

oid是一个系统的隐藏列。直接修改是不行的。

mysql=# update pg_class set oid = 99999 where oid=73728

ERROR: cannot assign to system column "oid"

LINE 1: update pg_class set oid = 99999 where oid=73728

但是我们可以将其删除

mysql=# delete from pg_class where oid=73728

DELETE 1

在postgresql中有一个copy命令,有一个参数 with oids,可以将oid一起导入,利用这个特性,我们可以达到oid的修改功能。

1.首先新建一个文件,将数据放入,新的oid已修改

[mysql@pttest4 cxf]$ cat 2.dat

73740|test|2200|73729|10|0|73740|0|0|0|0|0|f|f|r|1|0|0|0|0|0|f|f|f|f|814|/N|/N

2.使用copy命令导入数据

copy pg_class from '/home/mysql/cxf/2.dat' null as E'//N' csv delimiter '|' oids

3.修改其他表中的对应oid数据

update pg_attribute set attrelid ='73740' where attrelid ='73728'

update pg_depend set refobjid='73740' where refobjid ='73728'

update pg_type set typrelid ='73740' where typrelid = '73728'

ps:如果还涉及其他的数据字典,应一并修改掉

4.查询,可以看出oid已变更

mysql=# select * from test

ERROR: could not open relation 1663/16386/73740: No such file or directory

mysql=# select oid from pg_class where relname ='test'

oid

-------

73740

(1 row)

5.将数据文件更名为新的oid

[mysql@pttest4 16386]$ mv 73728 73740

再查数据库,原有的那条数据还是可以访问到的。

mysql=# select * from test

a

---

1

(1 row)

至此,oid修改成功。

修改oid引发的其他问题。由于当前系统的oid是73735,而我们变更的oid(73740)在这个之后,接着我们创建表的时候这个oid还会重用,这样有可能会造成oid错乱。如下

mysql=# create table helloworld(b varchar(1))

CREATE TABLE

mysql=# select oid from pg_class where relname='helloworld'

oid

-------

73735

(1 row)

mysql=# create table helloworld1(b varchar(1))

CREATE TABLE

mysql=# create table helloworld2(b varchar(1))

CREATE TABLE

mysql=# create table helloworld3(b varchar(1))

CREATE TABLE

mysql=# select oid from pg_class where relname like 'helloworld%'

oid

-------

73735

73737

73739

73741

(4 rows)

mysql=# select * from pg_type where oid = '73740'

typname | typnamespace | typowner | typlen | typbyval | typtype | typisdefined | typdelim | typrelid | typelem | typinput | typoutput | typreceive | typsend | typanalyze | typalign | typstorage | typnotnull | typbasetype | typtypmod | typndims | typdefaultbin | typdefault

-------------+--------------+----------+--------+----------+---------+--------------+----------+----------+---------+-----------+------------+-------------+-------------+------------+----------+------------+------------+-------------+-----------+----------+---------------+------------

helloworld2 | 2200 | 10 | -1 | f| c | t| ,|73739 | 0 | record_in | record_out | record_recv | record_send | - | d| x | f | 0 |-1 |0 | |

(1 row)

可以看到,新的pg_type的oid用到了73740。

为了避免这种情况,我们可以用pg_resetxlog重置oid。

如:pg_resetxlog -o 80000 ~/postgresql/data/

这样子建表的时候oid就重80000开始了,避免了刚刚那个问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9980943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存