有什么方便的办法保证增删改一定操作的到其他电脑的数据库呢?

Acsxionian 2020-07-21 01:23:39
可能描述不到位。例如SQL server,假设一个情况:

我要增删改另外一个可能会关机的电脑(定义为A)上的数据库。


如果这个时候因为关机,连接超时了,有什么方便的方法记录这次操作,然后过一段时间再尝试连接,或者A主动获取?

大佬帮帮我吧!
...全文
3407 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
要是没有电,说什么“弄个中间数据库保存数据”和“一定操作到其他电脑”这是不可能的。任何繁琐的东西都是欺骗的话术。所以除了调整好程序“重试”策略,再有就是人工值守来负责重新启动程序吧。
卖水果的net 2020-07-22
  • 打赏
  • 举报
回复
所有的操作都记在本地,用定时器向上传。
  • 打赏
  • 举报
回复
先把数据传入本地队列(这个是可持久化的),然后慢慢消化队列里面的数据,随便你怎么处理
正怒月神 版主 2020-07-21
  • 打赏
  • 举报
回复
引用 4 楼 Acsxionian 的回复:
[quote=引用 3 楼 正怒月神 的回复:]往大的讲,就是有一个消息中间件, 消息发送失败,那么执行自己编写的补偿逻辑。也就是你说的重试。 往小的讲,就是try catch+重试。
补偿会有哪些问题需要注意呀版主。[/quote] 补偿方案,需要你们自己摸索。 比如说补偿成功,消息清除。 补偿失败,继续多少次补偿次数。 这就像mysql 的binlog日志,把事件持久化到文件,发生问题。可以通过binlog日志恢复。 只是你这里换成消息中间件,来保存和处理这个事件。 相应的,在加上了一个自动的恢复动作。
丰云 2020-07-21
  • 打赏
  • 举报
回复
用主从数据库热备加同步来解决这个问题,sql server自带这个功能
Acsxionian 2020-07-21
  • 打赏
  • 举报
回复
引用 3 楼 正怒月神 的回复:
往大的讲,就是有一个消息中间件, 消息发送失败,那么执行自己编写的补偿逻辑。也就是你说的重试。 往小的讲,就是try catch+重试。
补偿会有哪些问题需要注意呀版主。
正怒月神 版主 2020-07-21
  • 打赏
  • 举报
回复
往大的讲,就是有一个消息中间件, 消息发送失败,那么执行自己编写的补偿逻辑。也就是你说的重试。 往小的讲,就是try catch+重试。
Acsxionian 2020-07-21
  • 打赏
  • 举报
回复
引用 1 楼 大西瓜一块五一斤♏ 的回复:
连接不到会有SqlException 异常,你捕获到异常,把要执行的语句参数保存下来,然后可以弄个定时器每隔一段时间去连接数据库,正常了就执行,但这个过程中,你还要判断数据的顺序一致性,有人在操作同一条记录,然后你后台又在跑,就会有问题,这时候最简单的方法就是看后台有语句没执行,有就不让用户去执行操作
保存这种信息用什么格式文件保存比较合适呀。
  • 打赏
  • 举报
回复
连接不到会有SqlException 异常,你捕获到异常,把要执行的语句参数保存下来,然后可以弄个定时器每隔一段时间去连接数据库,正常了就执行,但这个过程中,你还要判断数据的顺序一致性,有人在操作同一条记录,然后你后台又在跑,就会有问题,这时候最简单的方法就是看后台有语句没执行,有就不让用户去执行操作

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧