SeisComP3 文档

scdb

从 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