服务器迁移之PostgreSql篇
                            上周终于完成了计费/代理服务器的迁移,超期服役的HP e200服务器在服务了5年之后,终于退据二线。
HP E200 2001年4月采购,现在看来,配置实在太低了:
   CPU:p3 800Mhz, RAM:1Gb(最初只有128Mb),HD:SCSI 36G(40mb/s)+ 120GB(ide)。
  操作系统也很老:TurboLinux Server 6.1,相应的软件系统也严重老化。
新服务器,其实只是一个配置稍高的普通PC,但由于比较新,硬件能力远超出老迈的HP E200,其目前的具体配置如下:
  CPU: P4 3.0E,RAM:1.5GB(DDR 400mb/s), HD: sata 160Gb*2.
操作系统也比较新:Fedora Core 3.0
  服务器迁移的必要性很明显,此服务器身兼计费、代理上网二大重任,但HP E200 硬件、软件均老化,超期服役,随时有崩溃的可能。如果学生上机、上网的计费数据丢失,则非常麻烦。
  此次服务器迁移的难点就是PostgreSql的升级迁移,计费服务器采用的计费数据库是PostgreSql 7.2。
   升级PostgreSql本身很容易,难的是有一系列与它相关的计费程序:上机计费数据的入库程序,是用perl编写的,上网计费数据则是用c语言程序写入数据库,而学生网上查询,用的又是php.
     录要点如下,备忘。
  1. 在新服务器上安装最新的 PostgreSql  8.1.3,
      ./configure --prefix=/app/pgsql
     其他照INSTALL就成了。
  2. 数据迁移:
    INSTALL刚好有升级说明,先从老服务器上倒出数据,再导入,也一步成功。
  3.安装apache2+php5
     原来的版本太老是apach 1.3+ php 4.1
    这次也直接升级到最新版本:apache 2.2+php 5.12。
   下到同一目录,按照php的说明,加上 --prefix=/app/www --with-posstgresql=/app/pgsql ,其他没有什么特别的。
  要点是php安装的时候,需要从/app/pgsql/include以及lib目录读一些文件。
   迁移php程序的时候,犯了一个错误,才知道php5处理表单与php4稍有差异,必须用$name= $_POST["name"]方式取出表单数据。
  4.最费力气的是让perl程序支持新的PostgreSql数据库。
     简单copy失败了,也干脆用最新的per以及组件了。使用 Fedora Core 3自带的 5.8.5,而原来的perl版本太老,是5.6.1。
     下最新的PERL DBI,再下 perl DBD:pg.
        安装DBI非常顺利,但到DBD:pg时,安装测试未完全通过。实际测试,则连接数据库失败,提示是共享库文件找不到。
     原来要手工把/app/pgsql/lib里面的库文件主要时libpq* copy 到 /usr/lib
   5. 让c程序支持新的postgresql 8.1.3,要点是将原来开发环境postgresql lib文件用新安装的/app/pgsql/lib里面的文件覆盖,就可以了。
hofman   2006-04-25 10:31:59 评论:99   阅读:626   引用:0
2003-2007@copyright