Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 监控数据库 » SQL Anywhere SNMP Extension Agent » 使用 SQL Anywhere SNMP Extension Agent

 

配置 SQL Anywhere SNMP Extension Agent

SQL Anywhere Extension Agent 可以监控一个或多个数据库。要被监控的数据库按照以下格式存储在 sasnmp.ini 文件中:

[SAAgent]
TrapPollTime=time-in-seconds

[DBn]
ConnStr=connection-string
UtilDbPwd=utility-database-password
CacheTime=time-in-seconds
DBSpaceCacheTime=time-in-seconds
Trapt=trap-information
Disabled=1 or 0

缺省情况下,SQL Anywhere 安装将 sasnmp.ini 文件放在 install-dir\bin32 目录中。

SAAgent 部分

文件 sasnmp.ini 的 SAAgent 部分包含有关 SQL Anywhere Extension Agent 的信息。如果不需要 TrapPollTime 字段,则可以忽略该部分。

TrapPollTime   此值指定对动态陷阱(如果指定)的轮询频率。缺省情况下,SQL Anywhere SNMP Extension Agent 每 5 秒钟对这些值轮询一次。将此值设置为 0 则禁用动态陷阱。此字段为可选字段。

DBn 部分

sasnmp.ini 文件的每个 DBn 部分都描述一个数据库,如何连接到该数据库以及该数据库中存在的所有动态陷阱。此部分中的字段区分大小写。

n 的值是用于标识数据库的编号。编号必须从 1 开始,并且不能跳过任何编号。例如,如果 sasnmp.ini 文件包含 [DB1]、[DB2] 和 [DB4] 条目,则会忽略 [DB4] 条目,原因是文件中缺少 [DB3] 条目。

ConnStr   用于连接到数据库的连接字符串。您必须提供足够的信息才能连接到数据库。此字段为必填字段。

  • 如果要使用 ODBC 数据源连接到数据库,则 ODBC 数据源必须是系统 数据源,而不能是用户 数据源。

  • 如果要使用集成登录,则必须映射到 SYSTEM 帐户,因为 SNMP Agent 是作为服务运行的。但是,这意味着任何作为服务运行的程序无需口令都可以连接到数据库。或者,也可以更改服务运行时使用的帐户,然后为该帐户创建集成登录。

  • ASTART=NO;IDLE=0;CON=SNMP;ASTOP=NO 字符串被放到连接字符串的前面。此字符串会起到以下作用:

    • 防止 SQL Anywhere SNMP Extension Agent 试图自动启动数据库服务器

    • 禁用空闲超时,因为 SQL Anywhere SNMP Extension Agent 在一段时间内处于空闲状态的情况很可能会发生

    • 命名连接以便能够标识

    • 防止数据库在 SQL Anywhere SNMP Extension Agent 断开连接时被关闭

    如果在 sasnmp.ini 文件中指定了连接字符串中的任意值,则 sasnmp.ini 文件中的值会替换缺省设置。

UtilDbPwd   设置 sa.agent.saStarted 来启动数据库时,SQL Anywhere SNMP Extension Agent 会试图使用 DBF 参数(该参数会将在何处查找数据库文件告诉给数据库服务器)连接到数据库。但是,如果启动数据库需要的权限是 DBA(网络服务器的缺省值,个人服务器和网络服务器都可以使用 -gd dba 选项来进行设置),则服务器将不允许该连接。

要启动此类服务器上的数据库,SQL Anywhere SNMP Extension Agent 必须作为具有 DBA 权限的用户连接到已在同一服务器上运行的数据库。这可以通过连接到实用程序数据库来实现。如果在 sasnmp.ini 文件中指定实用程序数据库口令(由 -su 服务器选项指定),然后启动数据库,则 SQL Anywhere Extension Agent 会连接到同一服务器上的实用程序数据库,执行 START DATABASE 语句,然后断开连接。此字段为可选字段。

CacheTime   从数据库中检索到的数据可以高速缓存到 SQL Anywhere SNMP Extension Agent 中,以便在对同一类型的数据(如服务器属性或数据库统计信息)进行后续检索时无需与数据库进行通信。虽然高速缓存数据意味着可以在后续检索时更快地获取数据,但数据可能会过时。CacheTime 字段可用于更改高速缓存时间或通过将该值设置为 0 来禁用高速缓存。缺省情况下,高速缓存时间为 0 秒。如果 CacheTime 参数设置为 0,则检索到的数据总是最新的,因为每次请求的数据都是从数据库中检索的。此字段为可选字段。

DBSpaceCacheTime   RDBMS MIB 中的 rdbmsDbLimitedResourceTable 表包含有关 dbspace 的信息。从数据库中检索到的此信息也可以高速缓存在 SQL Anywhere Extension Agent 中。dbspace 信息的缺省高速缓存时间为 600 秒(10 分钟)。此字段可用来更改高速缓存时间(或通过将该值设置为 0 来禁用高速缓存)。此字段为可选。请参见rdbmsDbLimitedResourceTable

Trapt   创建动态陷阱。值 t 必须是从 1 开始的正整数。不允许跳过编号。此字段为可选字段。请参见创建动态陷阱

Disabled   如果设置为 1,则 SQL Anywhere SNMP Extension Agent 将跳过此数据库条目。这对于从 SQL Anywhere SNMP Extension Agent 管理的数据库列表中临时删除一个数据库而言非常有用,这时无需对其余条目重新编号。此字段为可选字段。

对此文件进行编辑后,必须重新启动 SNMP 服务或重置 SQL Anywhere SNMP Extension Agent,以便 Agent 使用新设置。

♦  重新启动 SNMP 服务(命令行)
  1. 运行以下命令:

    net stop snmp

    这将停止 SNMP 服务。

  2. 执行以下命令:

    net start snmp

    这将启动 SNMP 服务。

♦  重新启动 SQL Anywhere SNMP Extension Agent

可以使用文件隐藏实用程序 (dbfhide) 通过简单加密的方式对 sasnmp.ini 文件的内容进行模糊处理。请参见隐藏 .ini 文件的内容

sasnmp.ini 文件示例

以下是 SQL Anywhere SNMP Extension Agent 的 sasnmp.ini 文件的一个示例。

[SAAgent]
[DB1]
ConnStr=UID=DBA;PWD=sql;ENG=server1;DBN=sales;DBF=sales.db
Trap1=1.1.5 > 50000
UtilDbPwd=test
[DB2]
ConnStr=UID=DBA;PWD=sql;ENG=server1;DBN=field;DBF=field.db
UtilDbPwd=test
Disabled=1
[DB3]
ConnStr=UID=DBA;PWD=sql;LINKS=tcpip;ENG=server2;DBN=hq;DBF=hq.db
UtilDbPwd=test

由于在 SAAgent 部分没有指定任何参数,SQL Anywhere SNMP Extension Agent 将每 5 秒钟轮询一次值。

SQL Anywhere SNMP Extension Agent 正在监控在两个不同服务器上运行的 3 个不同的数据库。数据库 3 在不同的计算机上运行,因此需要 LINKS 连接参数来指定协议。为 DB1 指定了一个陷阱,它将在数据库服务器发送的字节数大于 50000 时触发。