Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » UltraLite - 数据库管理和参考 » UltraLite 故障排除

 

数据库损坏

症状

如果发生了以下情况您的数据库可能已经损坏:

  • 发生了如下的错误:

    • SQLE_DEVICE_ERROR
    • SQLE_DATABASE_ERROR (也可以是其它问题的症状)
    • SQLE_MEMORY_ERROR (也可以是其它问题的症状)
  • 崩溃或返回了无效的查询结果。

解释

有两种比较常见的数据库损坏原因:

  • 如果设备使一些存在的问题存储在文件上,从而错误地更改了文件的内容,这是最常见的原因。这个问题通常会非常快地使数据库停止运行。

  • 如果 UltraLite 代码中有错误因而没有正确维护索引,出现这种原因不太常见。因为对查询结果的更改难以察觉,所以很这些问题难发现会一直存在的时间更长。

建议

校验和用于检测脱机损坏情况,这有助于降低由于重要页面发生错误而损坏其它数据的可能性。如果校验和校验失败,则在数据库载入页面时,UltraLite 将立即停止数据库并报告致命错误。此错误无法更正。因而,您必须:

  1. 将错误报告给 iAnywhere。如果您知道造成数据损坏发生事件的顺序,还知道这个错误是可重复的,这会很有用。

  2. 如果您需要数据,请将数据库的内容卸载到文件。

  3. 创建新的数据库。

  4. 通过同步或通过装载已卸载的数据来重新填充数据。

另请参见