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开始了,避免了刚刚那个问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)