Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        3年前关闭。
                                                                                            
                
        
如果数据库关闭,我需要确保进入服务(java应用程序)并需要进入数据库的数据不会丢失。我应该从Java使用正确的API来执行此操作吗?我应该只将数据保存到文件中,以后再读取吗?

最佳答案

最好的解决方案是确保数据库不会崩溃。例如运行热备用。典型的数据库系统已经为这种事情提供了现成的支持。只需建立更多数据库副本并配置客户端以使用它们即可。

保存到文件的问题在于,您现在需要维护两组持久性代码,以及一堆复杂的自定义代码,用于处理检测数据库是否脱机,切换到文件,检测数据库已恢复以及重播的过程。保存的数据到数据库中。

您还必须考虑如果丢失保存到文件中的内容会发生什么情况;例如由于存在错误/对基于文件的持久性和恢复代码进行的测试不足。



值得一提的是使用带有持久队列的排队系统的想法。但是,您需要意识到排队系统也可能会崩溃……这为整个系统增加了另一个潜在的故障点。此外,持久队列还需要本地磁盘空间,并且如果该空间已满(因为下游数据库已关闭很长时间),您将回到开始的位置。

10-04 10:44
查看更多