问题1:程序、数据库升级
一、情况描述:
近期在客户处做项目实施,涉及到数据库的升级问题。情况是这样的:
1、 旧库是运行库,目前正在使用,不允许停止;旧库对应一个旧的处理程序。
2、 需要建新库,新库的库表结构有少量改动。 新库有一个新的处理程序。
3、 新的处理程序需要在新库上,试运行一段儿时间后,才能正式上线处理数据;
4、 旧库有很多已处理的历史数据,需要迁移到新库;
二、存在的风险:
1、 数据库的安全是关键。升级工作绝对不能破坏旧的数据。
2、 试运行工作,绝对不能在目前的工作库(旧库)上进行。
3、 即使建立一个新库,且试运行没有问题,也要考虑以后怎么创建新的运行库;
三、最终实施的策略:
1、 将旧的数据库拷贝一份,做为试运行的库。试运行库包含所有旧库中包含的历史数据;
2、 在新库上进行升级、以及处理程序的试运行;
3、 如果试运行一段儿时间没有问题,试运行库直接做为新的运行库。
4、 旧库停止运行,并做为阶段性备份;
本人也没有太多经验,像项目实施、升级这种工作,一般肯定涉及客户历史数据的迁移等问题。一切操作的核心在于:绝对保证现有数据的安全。比如本项目,目前运行库已经有500G的大小,一但数据丢失,后果不堪设想。最好在实施之前,制定完备、周密的操作流程,不能全凭个人经验想到哪儿做到哪儿。根据策略,500G的数据,需要从SQL Server中分离,并进行复制。然后附加旧的数据库。操作只有三步:分离->拷贝->附加。
虽然简单,但是要考虑如下问题:大数据量拷贝,系统是否支持?速度?是否会对原有数据造成损害?尤其是500G数据只有一个文件,一但文件有损害,无法重新附加怎么办?
事实证明:拷贝没有出问题,问题恰恰出现在拷贝后,旧库进行附加的时候。下一文进行描述: