网站中使用了两个数据库MAIN和TEMP。 TEMP数据库用于管理从MAIN获取的数据以进行插入/更新,以及发布移回MAIN数据库的数据。发布时错误处理的方法是什么?
我想到以下两种方法:
回滚脚本 - 如果插入/更新时发生错误,则回滚可以提供帮助。
第三个DB概念 - 引入与MAIN相同的第三个数据库,并首先使用此数据库进行插入/更新,如果结果成功则执行相同的命令到MAIN数据库,否则无需更新MAIN数据库。
我不确定哪种方法在两者中更好。还有其他办法吗?
建议真有帮助。
答案 0 :(得分:0)
使用事务将数据从TEMP移动/更新到MAIN。你要么想要它工作,要么不是,对吧?如果没有,可能会将状态留在TEMP中?
我可以看到你可能想要做任何不同的事情的唯一情况是,如果你故意不想在发布失败的情况下将数据保留在TEMP中(例如,如果没有明智的方法来遵循这样的情况),在哪种情况下你可以考虑有2个事务,一个从TEMP中删除它,然后是第二个事务,只有当第一个成功时才将它添加回MAIN,如果这些事务中的任何一个失败,则报告错误并且整个过程必须是再次重启。
使用第三个数据库没有帮助。您仍然可以尝试使用第三个数据库并使用MAIN失败,并使第三个数据库与MAIN保持同步意味着您立即将所有工作加倍。