大神大神,数据库事务回滚的问题,求指教

伯函网络科技 发布于 2017/03/19 10:32
阅读 200
收藏 0

麻烦大家指点,感谢。

1.数据库事务是针对数据库,还是针对逻辑代码运算的。

2.例子:比如说我两个主机A(运行程序)B(数据库服务器)

问题1

A 主机    写的代码存在事务,当我批量执行1000条数据的写入,如果在写入的过程中,A主机突然死机,B正常运行,那么这1000条数据没有完整的执行。,当A死机后,数据库的执行会回滚吗?

问题2

当A主机正常运行,当在执行着1000条数据写入的时候,当前表锁死,那么会回滚吗?

加载中
1
伯函网络科技
伯函网络科技

引用来自“Lohanry”的评论

只有事务成功的时候数据才会提交,所以你说呢?

谢谢你的耐心解答,我知道只有事务完全执行才提交。问题是,判断事务是否执行成功是在A服务器上吧,可是A服务器上已经死机了啊。他想回滚也没机会了啊

爱De资格
死机会让数据库无法收到事务成功或失败的消息。通常事务超时数据库认为事务未成功,已插入的数据会被数据库作废
0
伯函网络科技
伯函网络科技

大神呢 我的大神呢  周末都还睡觉..........

0
Lohanry
Lohanry

只有事务成功的时候数据才会提交,所以你说呢?

0
大賢者
大賢者

问题1 1000条数据没有完整的执行,最后事务都没有提交, 数据库没变化

问题2  表锁死,还是事务里。数据库应该 事务卡死。直到表解锁。事务执行完毕。

0
伯函网络科技
伯函网络科技

引用来自“styleman”的评论

问题1 1000条数据没有完整的执行,最后事务都没有提交, 数据库没变化

问题2  表锁死,还是事务里。数据库应该 事务卡死。直到表解锁。事务执行完毕。

感谢帮忙。我可以这样理解吗 事务是在数据库服务器运行的,所以只要数据库正常运行,就不会出现这个错误

0
Lohanry
Lohanry

引用来自“Lohanry”的评论

只有事务成功的时候数据才会提交,所以你说呢?

引用来自“伯函网络科技”的评论

谢谢你的耐心解答,我知道只有事务完全执行才提交。问题是,判断事务是否执行成功是在A服务器上吧,可是A服务器上已经死机了啊。他想回滚也没机会了啊

你就这样想事务是数据库提供的,你的业务逻辑的增删查改,只是调用了数据库提供给你API包括事务也一样。你做业务逻辑时候第一次查,第二次增,第三次删,第四次查,最后你还是需要调用下commit 使数据库知道了你的事务是成功了。这样他才会进行写入。只要你没调用commit,过了一段时间,数据库自动判断超时把你之前的写入全部抛弃。所以就算死机了,数据库也会判断失败。

0
伯函网络科技
伯函网络科技

引用来自“Lohanry”的评论

只有事务成功的时候数据才会提交,所以你说呢?

引用来自“伯函网络科技”的评论

谢谢你的耐心解答,我知道只有事务完全执行才提交。问题是,判断事务是否执行成功是在A服务器上吧,可是A服务器上已经死机了啊。他想回滚也没机会了啊

引用来自“Lohanry”的评论

你就这样想事务是数据库提供的,你的业务逻辑的增删查改,只是调用了数据库提供给你API包括事务也一样。你做业务逻辑时候第一次查,第二次增,第三次删,第四次查,最后你还是需要调用下commit 使数据库知道了你的事务是成功了。这样他才会进行写入。只要你没调用commit,过了一段时间,数据库自动判断超时把你之前的写入全部抛弃。所以就算死机了,数据库也会判断失败。

谢谢你的解答。我明白了

返回顶部
顶部