zoukankan      html  css  js  c++  java
  • 系统二次上线体会之数据设计维护

      先说明一下系统二次上线:今年3月份上线了办公和财务,这次上线生产管理系统,用的是同一个数据库,同时也属于同一个项目的不同阶段,故而诚挚慰问二次上线。

      目前在某电网的子公司做一个管理系统,采用多个子模块迭代开发的方式,因此用的是同一个数据库,子模块多次开发最头疼的应该就是数据库的更新了。上线的是办公和财务子系统,9月份上线生产管理系统,本文章主要谈谈数据库维护的一些体会。

      数据库设计我们用PowerDesinger(下文简称PD)PD可以生成Sql语句,执行SQL语句后就可以生成表结构。因为年初发布的时候我们只执行了办公和财务的SQL语句,所以现在我们只能在现有数据库上执行生产管理的SQL语句(在PD中生成)。所以目前问题的关键就是如何保证PD的数据库设计是最新的。

      当然,这个时候就有人问,问什么PD不能保证是最新的呢?其实,有过开发经验的人都会知道数据库设计在开发过程中是会不断微调的。这也不全归咎于设计人员的水平,因为客户业务是会变得,因此数据库出现微调是必然的。

      因此,我们只能拥抱变化,呵呵,如何拥抱呢?采取如下方法:

    1、修改数据库,发邮件通知PD维护人员

    2、PD人员,以周为单位更新数据库。

    从理论上来讲这样维护出来的PD肯定是最新的,但是理论终归是理论太多于理想化,开发过程中肯定有开发人员修改了数据库没有发送邮件,PD维护人员没有更新的情况存在。那怎么办呢?

    只能采取“软着路”的方法了。我们在系统上线一周前,我们备份生产机的数据库下来,将最新的PD生成的SQL语句执行上去,并且进行BVT测试(把所有的业务流程从头到尾走一边)。其实这个过程还是很痛苦的,因为有的数据表缺少字段,有的应该是非必填字段弄成了必填字段。。。经过了一天多的测试,终于把所有所有数据库问题都解决了,在这个过程中,我们记录下每一条执行的SQL语句(便于发布到正式的数据库),在把它发给PD维护人员。

    可能有人会问,为什么都不能直接把刚才那个数据库直接还原呢?呵呵,因为我们之前上线的系统在工作日几乎每个小时都会有数据产生,所以只能在周末把正式数据库还原上去,然后在执行PD中的SQl并执行修改后的SQL,并将其还原的生产环境。最终,我们利用周末两天的时间成功上线了。

    回想整个过程,如果我们当初没有维护PD的话,由于数据库的差异造成的阻力肯定是很大的。经过了这个我们也意识到了更新PD的性了。

  • 相关阅读:
    Mysql技术内幕——InnoDB存储引擎
    Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化
    Mysql5.5 InnoDB存储引擎配置和优化
    MySQL存储引擎总结
    MySQL存储引擎--MyISAM与InnoDB区别
    MySQL存储引擎
    Mysql的建表规范与注意事项
    安装好oracle11gR2之后在相应路径下却没有生成tnsnames.ora和listener.ora
    split切割.号的字符串
    配置文件c3p0-config.xml
  • 原文地址:https://www.cnblogs.com/xiajf/p/2168556.html
Copyright © 2011-2022 走看看