在线文档教程
Erlang 20

snmpa_local_db

snmpa_local_db

模块

snmpa_local_db

模块摘要

SNMP内置数据库

描述

该模块snmpa_local_db包含使用SNMP内置数据库实现表(和变量)的功能。数据库存在两个实例,一个是volatile,一个是persistent。易失性数据库是用ets实现的。持久性数据库使用dets实现。

这个数据库存在缩放问题。

  • 对于大型表格,插入和删除效率不高。 这个问题最好通过使用Mnesia来解决。 以下函数描述了snmpa_local_db的接口。 每个函数都有一个Mnesia等价物。 参数NameDb是一个元组{Name,Db},其中Name是被管理对象的符号名称(在MIB中定义),Db可以是volatile或persistent。 mnesia是不可能的,因为所有这些函数都是snmpa_local_db特定的。 常用数据类型在下面定义的函数中,使用以下类型:

  • NameDb = {Name, Db}

  • Name = atom(), Db = volatile | persistent

  • RowIndex = [int()]

  • Cols = [Col] | [{Col, Value}], Col = int(), Value = term()

其中,RowIndex表示OID的最后部分,用于指定表中行的索引。Cols是获取操作时的列号列表,以及设置操作时的列号和值列表。

输出

dump() -> ok | {error, Reason}

类型

此函数可用于手动将数据库转储到文件中。

match(NameDb, Pattern)

在表上执行ETS/Dets匹配。有关Pattern以及返回值。

print()print(TableName)print(TableName, Db)

类型

在屏幕上打印数据库的内容。这对于调试很有用,因为STANDARD-MIBOTP-SNMPEA-MIB(也可能是你自己的MIB)存储在snmpa_local_db中。

TableName是数据库中表的原子。当不提供名称时,将显示整个数据库。

table_create(NameDb) -> bool()

创建一个表。如果表已经存在,则旧副本将被销毁。

如果NameDb参数指定不正确,则返回false,否则返回true。

table_create_row(NameDb, RowIndex, Row) -> bool()

类型

在表中创建一行。Row是包含所有列(包括索引列)的值的元组。

table_delete(NameDb) -> void()

删除一个表。

table_delete_row(NameDb, RowIndex) -> bool()

删除表中的行。

table_exists(NameDb) -> bool()

检查表是否存在。

table_get_row(NameDb, RowIndex) -> Row | undefined

类型

Row是包含所有列(包括索引列)的值的元组。

另见

ets(3), dets(3), snmp_generic(3)