查看表的OID

本文介绍了PostgreSQL中的OID(对象标识符)概念及其使用方法。OID用于唯一标识数据库集簇中的对象,如表、索引等。文章展示了如何通过SQL查询获取特定表的OID,并使用oid2name工具查询OID对应的表名。
在PostgreSQL中,OID(对象标识符)用来在整个数据库集簇中唯一地标识一个数据库对象,这个数据库对象可以是数据库、表、索引、视图、远足、类型等。


      pg提供了Oid数据类型来表示OID,它实际上是一个无符号整数。


highgo=# select oid from pg_class where relname='test' ;
  oid  
-------
 49273
 49236
 49233
(3 rows)


highgo=# select oid,relowner,reltype from pg_class where relname='test' ;
  oid  | relowner | reltype 
-------+----------+---------
 49273 |       10 |   49275
 49236 |       10 |   49238
 49233 |       10 |   49235
(3 rows)


highgo=# select * from test;
 id | name  
----+-------
  1 | aaaaa
  2 | bbbbb
(2 rows)


highgo=# select * from a.test;
 id 
----
  4
  3
  5
  6
(4 rows)


highgo=# select * from b.test;
 id 
----
  2
(1 row)




[highgo@sourcedb ~]$ oid2name -V
oid2name (HighGo Database) 3.0.2


[highgo@sourcedb ~]$ oid2name -d highgo
From database "highgo":
  Filenode         Table Name
-----------------------------
     49586              atest
     49645              banji
     49304              banji
     49337              china
     49298  edoc_todoworklist
     49568          my_colors
     49295                myt
     49642               test
     49618               test
     49621               test


[highgo@sourcedb ~]$ oid2name
All databases:
    Oid  Database Name  Tablespace
----------------------------------
  13010         highgo  pg_default
  13005      template0  pg_default
      1      template1  pg_default
  49648           test  pg_default
[highgo@sourcedb ~]$ oid2name -s
All tablespaces:
   Oid  Tablespace Name
-----------------------
  1663       pg_default
  1664        pg_global


[highgo@sourcedb ~]$ oid2name -d highgo -f 49621
From database "highgo":
  Filenode  Table Name
----------------------
     49621        test
 
[highgo@sourcedb ~]$ oid2name -d highgo -t test -f 49621 -x
From database "highgo":
  Filenode  Table Name    Oid  Schema  Tablespace
-------------------------------------------------
     49642        test  49273  public  pg_default
     49618        test  49236       b  pg_default
     49621        test  49233       a  pg_default
[highgo@sourcedb ~]$ 
### H3C交换机SNMP OID查询设备温度 对于H3C交换机,可以通过SNMP协议获取设备的各种状态信息,包括但不限于CPU利用率、内存占用率以及设备温度等。然而,在标准文档中并未明确规定统一的OID用于所有型号的H3C交换机来监测温度[^1]。 通常情况下,H3C交换机提供了一组特定于硬件健康状况的MIB对象集合,其中可能包含有关设备内部传感器读数的信息。这些数据一般位于`ENTITY-MIB`或者厂商自定义的企业私有分支下。例如: - **企业根节点**: `.1.3.6.1.4.1.25506` 是华为技术有限公司(含华三通信)注册的企业ID。 - 温度相关的OID可能会存在于`.1.3.6.1.4.1.25506.2.1.*`路径下的子树结构之中。 为了更精确地定位到具体的OID值,可以采取如下方式实现探测: #### 方法一:查阅官方手册 每款H3C交换机都会附带详细的管理指南和技术白皮书,里面会列举支持的所有SNMP OIDs及其含义说明。建议优先参考对应产品的《SNMP配置指导》或《网络管理接口描述》文件。 #### 方法二:利用工具扫描发现 如果无法找到确切的手册记录,则可借助专业的SNMP浏览器软件(如iReasoning MIB Browser Plus! 或者 SolarWinds SNMP Toolset),连接至目标交换机并遍历其整个MIB数据库寻找关键词匹配项,比如“temperature”。 以下是Python脚本示例代码片段展示如何通过PySNMP库访问远程主机上的指定OID数值: ```python from pysnmp.hlapi import * errorIndication, errorStatus, errorIndex, varBinds = next( getCmd(SnmpEngine(), CommunityData('public'), UdpTransportTarget(('demo.snmplabs.com', 161)), ContextData(), ObjectType(ObjectIdentity('.1.3.6.1.XXX'))) # 替换为实际使用的OID if errorIndication: print(errorIndication) else: for varBind in varBinds: print(' = '.join([x.prettyPrint() for x in varBind])) ``` 注意替换上述代码中的`.1.3.6.1.XXX`部分为你所确定的目标OID地址前缀。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值