从 XML 文件或消息中增加 SQL 数据库
SeisComP3 系统中一个重要的组件就是数据库。几乎所有应用都会读取数据库,并且所有的处理结果和对象都会写入数据库。这些就是 scdb 的任务。
scdb 不会检查数据库中存在的对象,仅会生成INSERT/UPDATE/DELETE
语句并将其发送至数据库。如果 scdb 接收到插入新对象的消息,但该对象已存在,那么数据库将抛出错误。
scdb 可用于保持一个数据库的备份或归档。当 scdb 作为数据库守护进程运行时,scdb 将通知客户端数据库连接可用。客户端发送DatabaseRequest
消息,scdb 发送DatabaseResponse
消息,包含数据库连接参数。
下例连接消息服务器,将所有接收消息写入配置数据库:
scdb -H server -o mysql://sysop:sysop@db-server/seiscomp3
要覆盖只读数据库,只需覆盖应用数据库地址:
scdb -H server -d mysql://sysop:sysop@db-server/seiscomp3 \
-o mysql://writer:12345@db-server/seiscomp3
scdb 另一个重要任务,增值数据库的数据模型内容。联合使用 scxmldump 可从数据库复制事件。
下例不连接至消息服务器,从 XML 文件读取数据并写入数据库:
scdb -i data.xml -d mysql://sysop:sysop@db-server/seiscomp3
etc/defaults/global.cfg
etc/defaults/scdb.cfg
etc/global.cfg
etc/scdb.cfg
~/.seiscomp3/global.cfg
~/.seiscomp3/scdb.cfg