我们正在一个项目中,我们正在从旧的旧系统迁移到新系统。
因此,在上线之前,我们需要在旧系统数据库和非生产数据库之间进行数据比较(我们在非生产环境中启用了大约2周的新潜在生产流程)
在需要的时候,我们计划发布一个版本,在该版本中,我们将迁移到新系统,并复制在实际生产系统中非生产环境中拥有的2周数据。
现在,使用这种方法,手动插入脚本有可能会遇到问题,并且可能会损坏/删除数据。我感觉这是一种非常冒险的方法,因为我的生产数据库已经拥有大量数据。
是否有任何准则/想法将这样的系统更可靠地迁移到生产中?还是数据库插入脚本是我唯一的选择?
答案 0 :(得分:0)
在进行大的更改之前,您应该始终备份数据库,以便在出现任何问题时可以回滚。如果您提前宣布,则用户应该期望系统停机。
我可以想到两种基本方法来完成此操作,尽管根据您所使用的RDBMS,您可能还有其他/更好的选择:
在源表上进行数据转储,然后将该表重新加载到新数据库中。然后运行INSERT INTO SELECT
,将旧表中的行插入新表中。
在源表上进行数据转储,然后编辑文件以删除所有将清除表的语句,然后将数据直接加载到新表中。
无论哪种方式,请确保先进行备份,然后根据数据的大小,删除表上的索引并在大容量插入完成后重建它们可能会有所帮助(节省时间)
如果您可以告诉我您正在使用哪个RDBMS,我可以为您寻找更多选择。如果您感到紧张,可以随时在家中模仿工作环境并进行练习。