我最近刚刚开始在Linux Redhawk 5.4.11系统上使用firebird DB v2.1。我试图创建一个通过cron作业启动的监视脚本。但是,我遇到了一些问题,希望能得到一些建议...
首先,我已经阅读了firebird DB随附的大多数文档以及其站点上提供的许多文档。我尝试使用提供的gstat工具,但似乎没有给我我想要的信息。我遇到了README.monitoring_tables文件,该文件似乎正是我要监视的文件。但是,这是我开始遇到进步的地方。
从isql登录数据库后,我运行SELECT MON$PAGE_READS, MON$PAGE_WRITES FROM MON$IO_STATS;
,我可以得到一些似乎还可以的数字。但是,再次运行该命令后,由于数字未更新,数据似乎已过时。我等待了1分钟,5分钟,15分钟,并且每次期间的所有数据都相同。一旦注销并再次运行该命令,数据就会更改。看来,只有在重新记录时,数据才会刷新,但是我不确定即使是正确的数据也是如此。
我的问题是,我现在是否这样做正确?这些命令是真正监视我的数据库还是仅监视命令本身?为何还要重新记录以刷新统计信息?我担心的一件事是我的数据不一致。换句话说,每次读/写没有线性增加时,登录时我的系统仍在运行。它们从10k到500到2k不等。任何建议或帮助,将不胜感激!
最佳答案
查询监视表时,将创建监视信息的快照,因此监视表的内容对于其余事务是稳定的。如果您需要新的信息,则需要提交并开始新的事务。 Firebird始终使用事务(如果未显式启动任何事务,则isql隐式启动事务)。
这也记录在doc/README.monitoring_tables
中(至少在Firebird 2.5版本中):
(强调我的)
请注意,根据您的监视需求,您还应该查看Firebird 2.5中引入的trace functionality。
关于linux - Firebird DB-监控表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24974495/