【问题标题】:Firebird 2.5.1 List databases in use by the server (superserver mode)Firebird 2.5.1 列出服务器正在使用的数据库(超级服务器模式)
【发布时间】:2013-02-19 21:52:57
【问题描述】:

我想编写一个 C++ 管理应用程序来简化我负责的数据库的管理。目前,当我想知道是否有用户连接到由它的 2 个不同实例操作的多个 Firebird 数据库时,我必须连接到每个数据库并检查。没关系,但我不想注册每个正在创建的新数据库,而我不看,我想要一些方法来列出当前打开或服务器正在使用的数据库。我能想到的这个功能的当前两种用途是:

  1. 自动包含在备份过程中
  2. 应用程序更新,要求用户注销(一看,我就能知道要踢谁,或者至少要打电话给哪个部门)

【问题讨论】:

    标签: firebird server-administration


    【解决方案1】:

    Firebird 没有列出所有可用数据库的 API。从技术上讲,Firebird 根本不知道数据库的存在,直到您实际连接到它。

    您或许能够使用 Trace API 或监控表找到正在连接的所有数据库,但这并不排除您的系统上存在其他数据库的可能性。

    【讨论】:

    • 我知道 firebird 不知道,但是关于此 Audit/Trace 的建议很好。这正是我一直在寻找的 - 用户发起的按需跟踪是可能的。我能够使用带有简单配置文件<database %[\\/]*> enabled true log_connections true </database> 的 FBTRACEMGR 来获取我需要的所有信息。列出了某人连接到的任何数据库。知道了这一点,我将编写一个应用程序来收集这些信息并将其存储以供将来使用(我想我什至可以检查数据库的使用频率)。谢谢,马克!
    • @Kitet 不客气。请注意:AFAIK 只有 SYSDBA 用户(或具有 RDB$ADMIN 角色的用户)可以跟踪来自其他用户的连接。
    • 是的,它们是我的服务器,我将要构建的工具是为像我谦逊的自己这样的管理员准备的 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多