Introducción
El servidor necesita utilizar una base de datos para almacenar la definición de todos sus objetos así como los valores que se recogen desde la instalación.
El servidor viene preparado en su configuración por defecto para trabajar con dos tipos de base de datos, pero es posible incluir soporte para nuevas bases de datos.
Las bases de datos soportadas son Oracle y Apache Derby.
Oracle
Si utilizamos Oracle, significa que estamos utilizando un servidor de base de datos que ya existe en nuestra organización.
Los comandos de los que disponemos nos permitirán proporcionar los parámetros necesarios para establecer una conexión con una base de datos Oracle ya existente.
admin> help oracle
ORACLE cmd
Gestiona el elmacenamiento del SCADA en Oracle.
CHECK Informa del estado del esquema de datos.
INSTALL Instala el esquema del modelo de datos necesario para el
SCADA.
SET Configura los distintos parametros de la conexion con
Oracle.
START Inicia la conexion con Oracle.
STATUS Informa del estado de la conexion con Oracle.
STOP Detiene la conexion con Oracle.
admin>
Una vez está establecida la conexión con el servidor Oracle deberemos utilizar el comando
ORACLE INSTALL para crear el modelo de datos que necesitará nuestro servidor de adquisición de datos.
Entonces podremos iniciar la conexión con la base de datos con el comando
ORACLE START.
En estos momentos nuestro servidor de adquisición de datos ya tiene una base de datos con la que podrá trabajar.
Apache Derby
En aquellas instalaciones que no dispongan de su propia base de datos, se proporciona este servidor de base de datos que está completamente integrado.
Servidor Apache Derby
Disponemos de un conjunto de comandos para configurar el servidor de la base de datos Apache Derby.
admin> help derbyserver
DERBYSERVER cmd
Gestiona servidor Derby.
START Inicia el servidor Derby.
STATUS Informa del estado del servidor Derby.
STOP Detiene el servidor Derby.
admin>
El primer paso es iniciar el servidor.
admin> derbyserver start
derbyserver iniciado.
admin>
Una vez el servidor esta iniciado dispondremos de algunos comandos más para gestionarlo.
Volvamos a ver la lista de comandos.
admin> help derbyserver
DERBYSERVER cmd
Gestiona servidor Derby.
BACKUP Realiza un backup online de la B.D.
PROPERTIES Muestra las propiedades del servidor Derby.
RUNTIMEINFO Muestra informacion del runtime de Derby.
START Inicia el servidor Derby.
STATUS Informa del estado del servidor Derby.
STOP Detiene el servidor Derby.
SYSINFO Muestra informacion del sistema de Derby.
admin>
La base de datos está disponible tanto para nuestro servidor como para cualquier otra aplicación que desee utilizarla.
Una vez hemos iniciado el servidor de la base de datos Apache Derby, se nos habilitará un cliente que será el encargado de conectar con esta base de datos.
Vemos ahora la lista general de aplicaciones.
admin> help
HELP [APP_NAME [CMD_NAME] ]
HELP
Muestra la lista de aplicaciones disponibles en el sistema.
HELP APP_NAME
Muestra la ayuda de la aplicacion APP_NAME y a continuacion la lista de
comandos que dispone.
HELP APP_NAME CMD_NAME
Muestra la ayuda del comando CMD_NAME de la aplicacion APP_NAME y a
continuacion la lista de parametros soportados.
Las aplicaciones disponibles en este momento son:
DERBYCLIENT Gestiona la base de datos.
DERBYSERVER Gestiona el servidor Derby.
FILE Proporciona los comandos necesarios para poder administrar
los ficheros de configuracion del dispositivo.
GATEWAY Gestiona las pasarelas Modbus.
ORACLE Gestiona el elmacenamiento del SCADA en Oracle.
PARAMETER Proporciona los comandos necesarios para poder administrar
los parametros de configuracion del dispositivo.
SCADA Gestiona el modelo de datos.
SERIAL Proporciona informacion sobre los puertos serie.
SYSTEM Proporciona los comandos necesarios para poder administrar
el sistema.
admin>
Cliente Apache Derby
Veamos las posibilidades que nos ofrece esta nueva aplicación.
admin> HELP DERBYCLIENT
DERBYCLIENT cmd
Gestiona la base de datos.
CHECK Informa del estado del esquema de datos.
INSTALL Instala el esquema del modelo de datos necesario para el
SCADA.
START Inicia la base de datos.
STATUS Informa del estado de la base de datos.
STOP Detiene la base de datos.
admin>
Ahora utilizaremos
DERBYCLIENT para crear el modelo de datos que necesitaremos en el servidor Apache Derby
admin> derbyclient install
Count Operation
====== ======================================================================
1 CREATE TABLE APP.ALARMS (ID BIGINT NOT NULL GENERATED BY DEFAULT AS
IDENTITY (START WITH 1, INCREMENT BY 1),OBJECTTYPE INTEGER NOT
NULL,OBJECTID INTEGER NOT NULL,ACTIVETS TIMESTAMP NOT NULL,INACTIVETS
TIMESTAMP,ALARMFAMILY INTEGER NOT NULL,ALARMTYPE INTEGER NOT
NULL,MESSAGE VARCHAR(1024) NOT NULL)
2 ALTER TABLE APP.ALARMS ADD CONSTRAINT ALARMS_PK PRIMARY KEY (ID)
3 CREATE TABLE APP.NODES (ID BIGINT NOT NULL GENERATED ALWAYS AS
IDENTITY (START WITH 1, INCREMENT BY 1),GATEWAY VARCHAR(20) NOT
NULL,SLEEP INT NOT NULL,ENABLED SMALLINT NOT NULL)
4 ALTER TABLE APP.NODES ADD CONSTRAINT NODES_PK PRIMARY KEY (ID)
5 ALTER TABLE APP.NODES ADD CONSTRAINT GATEWAY_UK UNIQUE (GATEWAY)
6 CREATE TABLE APP.GROUPS (ID BIGINT NOT NULL GENERATED BY DEFAULT AS
IDENTITY (START WITH 1, INCREMENT BY 1),PARENTID BIGINT,NAME
VARCHAR(20) NOT NULL)
7 ALTER TABLE APP.GROUPS ADD CONSTRAINT GROUPS_PK PRIMARY KEY (ID)
8 ALTER TABLE APP.GROUPS ADD CONSTRAINT GROUPS_GROUPS_FK FOREIGN KEY
(PARENTID) REFERENCES APP.GROUPS (ID)
9 INSERT INTO APP.GROUPS (ID, PARENTID, NAME) VALUES (0, NULL, '/')
10 CREATE TABLE APP.POINTS (ID BIGINT NOT NULL GENERATED ALWAYS AS
IDENTITY (START WITH 1, INCREMENT BY 1),NODEID BIGINT NOT NULL,GROUPID
BIGINT NOT NULL,NAME VARCHAR(20) NOT NULL,PLCTYPE INT NOT
NULL,POINTTYPE INT NOT NULL,SCALE DOUBLE PRECISION NOT
NULL,INITIALVALUE DOUBLE PRECISION NOT NULL,BITNUMBER INT NOT
NULL,LOGGINGMODE INT NOT NULL,READSYNC INT NOT NULL,PERIODUNIT INT NOT
NULL,READPERIOD BIGINT NOT NULL,LOGATPERIOD INT NOT NULL,DEVICE INT
NOT NULL,ADDRESS INT NOT NULL,BANK INT NOT NULL,ENABLED SMALLINT NOT
NULL)
11 ALTER TABLE APP.POINTS ADD CONSTRAINT POINTS_PK PRIMARY KEY (ID)
12 ALTER TABLE APP.POINTS ADD CONSTRAINT POINTS_UK UNIQUE (GROUPID,NAME)
13 ALTER TABLE APP.POINTS ADD CONSTRAINT POINTS_NODES_FK FOREIGN KEY
(NODEID) REFERENCES APP.NODES (ID)
14 ALTER TABLE APP.POINTS ADD CONSTRAINT POINTS_GROUPS_FK FOREIGN KEY
(GROUPID) REFERENCES APP.GROUPS (ID)
15 CREATE TABLE APP.POINTVALUES (ID BIGINT NOT NULL GENERATED ALWAYS AS
IDENTITY (START WITH 1, INCREMENT BY 1),POINTID BIGINT NOT NULL,TS
TIMESTAMP NOT NULL,QUALITY INT NOT NULL,VALUE FLOAT NOT NULL,POINTTYPE
INT NOT NULL)
16 ALTER TABLE APP.POINTVALUES ADD CONSTRAINT POINTVALUES_PK PRIMARY KEY
(ID)
17 ALTER TABLE APP.POINTVALUES ADD CONSTRAINT POINTVALUES_POINTS_FK
FOREIGN KEY (POINTID) REFERENCES APP.POINTS (ID)
18 CREATE TABLE VERSION (MAJOR BIGINT NOT NULL,MINOR BIGINT NOT NULL)
admin>
Finalmente activaremos el cliente.
admin> derbyclient start
derbyclient iniciado.
admin>
admin> derbyclient status
derbyclient.................: Iniciado
Inicio......................: Mon Apr 18 17:47:16 CEST 2011
admin>
En estos momentos nuestro servidor de adquisición de datos ya tiene una base de datos con la que podrá trabajar.