我的软件必须进行数据库备份,其中一项预期功能是可以取消此备份。
我能想到,我有三种选择:
我尝试了第一个,即使我取消它,服务也会继续运行(备份文件已经构建到最后,所有资源保持不变)。
第二个选项对我来说闻名,我不认为我能够中止这个操作。
第三个选项需要花费几个小时,所以我想知道:
由于
答案 0 :(得分:3)
PS:你没有提到你正在使用的Firebird版本。
1)gbak是连接到数据库的“普通”应用程序,读取所有信息,并将其写入备份文件。恢复过程是相反的。
2)当您使用ServicesAPI进行备份时(在您的示例中为选项1和3),Firebird将启动gbak的“内部”版本来完成工作。
对于任何选项,如果您使用的是Firebird 2.1,则可以从其他连接运行“从mon $ statements中删除mon $ attachment_id =”。这将停止备份过程。使用FB 2.5,您甚至可以删除gbak连接,执行“从mon $ attachments中删除...”。
您可以在mon $ attachments表中找到查看mon $ remote_process的gbak附件ID。