惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
腾讯CDC
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
D
Docker
V
V2EX
Last Week in AI
Last Week in AI
G
Google Developers Blog
IT之家
IT之家
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东

博客园 - 天下

[转]开始PFC之旅行 查询同一表内多字段同时重复记录的SQL语句 数据库设计中的14个关键技巧收藏[转] 走出海量数据及访问量压力困境收藏[转] 大型网站架构设计[转] (转)各主要数据库的连接串 - 天下 - 博客园 vs2005水晶报表页面打开数据库登录框提示取消方法[转] .net2.0 +asa 10 连接程序 PD12.5 生成 PB 中table的扩展属性 - 天下 Asp.net2.0回发或回调参数无效问题的解决 datagrid格式变乱解决方案---------------网页内强制折行与不折行的解决方案 Report Service 为用户“NT AUTHORITY、NETWORK SERVICE”授予的权限不足,无法进行此操作。(rsAccessDenied)处理 [转]SQL Server一些常见性能问题的总结 SQL SERVER 添加序号列 sharepoint Site Data Web 服务中的错误。 (0x80042616)PortalCrawl Web 服务中的错误。 (0x80042617)处理 TFS的TF31004:错误 创建WebPart时的数据库连接问题。 Visual Studio 2005 Team Foundation Server Trial Edition下载 Team Foundation Server架设之删除项目
SQL Anywhere 10 关于 COMMIT 掉数据的问题
天下 · 2009-01-03 · via 博客园 - 天下

最近使用SQL Anywhere 10 意外的发现掉数据的问题.

情况:

就是如果直接把数据库服务意外关闭了! 结束之前的数据操作就会丢失!

每次有一个检查点! 如果你进程结束没有新增执行检查点的话! 这样就会丢失数据

说明:

  • 执行 COMMIT 语句使对数据库进行的更改成为永久更改。

  • 执行 ROLLBACK 语句撤消由事务执行的所有更改。

  • 执行具有自动提交副作用的语句:数据定义命令(如 ALTER、CREATE、COMMENT 和 DROP)都具有自动提交副作用。

  • 与数据库断开连接将执行隐式回退。

  • 总结:也就是说在SQL Anywhere 10 没有提交事务的话,出现意外的中断,就会导致日志回滚,导致数据丢失.

    作用在使用过程中一定要注意事务的提交

    在SQL Anywhere 10 的COMMIT执行中要注意的问题

    1就是Interactive SQL执行,10 默认是退出 才提交 COMMIT,如果执行过程没有退出,就回很容易掉掉数据

    auto_commit 选项 [Interactive SQL]

    功能

    控制是否在各条语句后执行 COMMIT。

    允许值

    On、Off

    缺省值

    Off

    说明

    如果 auto_commit 为 ON,则会在每条语句成功完成后执行数据库 COMMIT。

    缺省情况下,只有在用户发出 COMMIT 或 ROLLBACK 语句或导致自动提交的 SQL 语句(例如 CREATE TABLE 语句)时才执行 COMMIT 或 ROLLBACK 语句。

    处理方式:

    在Interactive SQL要执行提交
    要在
    工具-选项-提交
    各命令之后 打勾

    在Interactive SQL酒会各个命令后就提交

    2就是ODBC执行不一样

    根据您使用的接口以及控制自动提交行为的方式,自动提交模式的行为会稍有不同。

    实现自动提交模式可以采用以下两种方式之一:

    • 客户端自动提交    当应用程序使用自动提交时,客户端库在每一个 SQL 语句执行之后发送 COMMIT 语句。

      ADO.NET、ADO/OLE DB、ODBC 和 PHP 应用程序从客户端控制提交行为。

    • 服务器端自动提交    应用程序关闭链接模式时,数据库服务器提交每个 SQL 语句的结果。此行为在使用 JDBC 的情况下由 chained 数据库选项隐式控制。

      嵌入式 SQL、JDBC 和 Open Client 应用程序操纵服务器端提交行为(例如,这些应用程序设置 chained 选项)。

    对于复合语句(如存储过程或触发器),在客户端和服务器端自动提交之间有一些区别。从客户端看,存储过程是单一语句,因此自动提交将在整个过程执行之后发送单一提交语句。从数据库服务器的角度来看,存储过程可以由许多 SQL 语句构成,因此服务器端自动提交将提交该过程内的每个 SQL 语句的结果。