SMG-BOSS db说明 以及smg引擎系统安全注意事项 1.3.0
# all rights copy by runus [
[email protected]], SMG-OEBS OpenEBS http://oebs.vicp.net
#google 关键词:smg-boss
$history
what who when version
修改中文乱码 runus 2011-03-22 1.2.0
design runus 2011-03-22 1.0.0
1 数据库版本 mysql Server version 5.0.67 (NT/Linux)
本版本以NT版本为举例
安装过程注意指定默认字符集latin1
2 安装过程
以root 帐号 建立4个空数据库 如下:
建立一个sms mysql 帐号,权限为root权限
create database service;
create database ppg_sps;
create database ppg_cps;
create database fos;
3 执行脚本导入、导出
bin/smgdbimp.bat $usrid $passwd $sqlpath 导入
bin/smgdbexp.bat $usrid $passwd $sqlpath 导出
检测如果错误重复执行几次;直到没有错误
4 数据库介绍
service 业务库 包含基本信息公共信息配置
ppg_sps sp网关集群库 包含所有通道的上下行,dlr实时,历史数据
ppg_cps cp网关同步库 包含所有同步给cp的数据 上行,dlr 历史数据
fos 财务数据库 包含所有财务统计数据
5 结构安装顺序
系统安装必须以下列顺序导入安装
5.1 $db_tbl.sql 为空表结构
5.2 $db.sql 为过程,函数,视图
5.3 $db_data.sql 为系统默认安装必须的元数据
(.dic.txt 为字典文档)
$db 为数据库名
执行数据库顺序 service->ppg_sps->ppg_cps->fos
6 表结构
参考docs/*.dic.sql
7 过程,函数,视图
参考docs/*.dic.sql
8 基本规范
8.1 数据库表名统一小写
8.2 表明 tb_ ,tmp_ 为系统临时表 t_ 为非系统临时表可删除 ;几个基本特殊表如mo,mt,send,dir
8.3 视图以v_开头,函数以f_开头,过程以 pcd_开头
8.4 $ptr_$prj_$dic
eg:pcd_mt,pcd_mt_sub,tb_ppg_user,tb_ppg_mo,tb_session
_his$ 为当月历史记录表 eg:mo_his
_his$yyyymm 为历史月表 eg:dlr_his201008
8.5 字典定义统一小写,个别特殊词大写,简短易懂
8.6 合理设计索引,避免模糊查询 可提高查询效率
9 db 目录结构
db/bin 导入导出脚本
db/docs readme 词典
db/*.sql 数据库安装脚本模板
10 相关问题解决
data数据导入乱码问题解决
在 *_data.sql
SET FOREIGN_KEY_CHECKS=0;前加入 set names utf8;
重新执行imp可导入;然后查询中文,以cmd 方式登录修改 查看中文
eg:
mysql> select * from fos.tb_fos_msgtype;
+---------+------+
| msgtype | des |
+---------+------+
| 0 | 激活 |
| 1 | 上行 |
| 2 | 下行 |
+---------+------+
3 rows in set (0.01 sec)
存储过程中文注解乱码问题;暂时解决不了。因系统中调用中文都以数据库方式;故过程中文注解以词典为主;尽量避免中文注解
请以本次版本数据位置。
删除之前版本的压缩包包括元数据
*11 SMG引擎系统安全注意事项
11.1 SMG java wrapper 服务 -logout/shutdown
smg引擎是基于wrapper服务 (google java wrapper) 为中间件,与操作系统间接交互的.java wrapper 是个开源小巧的软件.
jboss,tomcat都用它来注册服务,作为开机守候进程服务. 在实际应用中发现以下问题.
以windows 系统为例.当有俩个用户以同样帐号如:root登录到系统中时,实际在系统登录前,smg引擎便以system帐号默认登入,随服务器启动而启动.
所以,以root帐号登录后,smg服务已经在运行态.如果,这时候任何一个用户,无论何时,在操作系统内点注销服务(logout) 都会产生一个注销事件,
java wrapper 会捕捉到这一事件,便会退出jvm 虚拟机,从而导致smg引擎间接退出. 如何避免这种情况 .如果有多个帐号登录,可使用终端服务管理器,注销掉该用户即可
这个注销不是,不是操作系统用户.而是相当于采用kill进程方式直接讲多余用户的系统进程给踢出系统,java wrapper不会产生logout事件.
如果已经产生了logout事件,smg引擎退出前会产生一个报警(如果默认打开报警) .操作者要重视此报警.及时重启服务,进行预防,以免造成不必要的业务数据损失.
另外操作系统关机,smg引擎都会捕捉到关机事件会发出报警,并在启动时也会报警.
11.2 报警类别
1) 系统报警 必须严肃对待
2) 日常业务报警可根据情节处理,有些不需要报的 可忽略
3) 就是无dlr, 无上行,无mt 报警 可自行开发.
做到这3点可保证网关通道安全.
另外,建议报警也同时报给商务或其他技术人员,以防止只报警给一个人,而恰恰手机关机,或忽略报警,而造成业务损失.
by runus 20110629