在数据库服务器尝试访问数据库的受影响部分之前,数据库文件的损坏情况可能并未进行报告。应使用 Sybase Central 中的 [校验数据库向导]、校验实用程序 (dbvalid)、sa_validate 系统过程或 VALIDATE 语句等工具定期检查数据库是否有效。必须拥有 VALIDATE 权限才能执行校验活动。请参见VALIDATE 特权。
根据指定的选项,校验可以包括校验和、索引数据的正确性,以及数据库中的所有表页是否属于对象。数据库快速校验(dbvalid -fx 选项)不校验数据、连续行结构或外键关系。也可以指定 VALIDATE 语句中的 WITH EXPRESS CHECK 子句以禁用参照完整性检查。
校验时无需以独占方式访问进行校验的表,如果校验期间对表进行修改,则可能报告损坏。因此,最好在数据库中没有其它活动时进行校验。如果数据库文件中的基表损坏,则应将这种情况视为介质故障,并从以前的备份中恢复。如果索引损坏,最好先卸载没有索引的数据库,然后重装。也可以使用 ALTER INDEX 语句的 REBUILD 子句修正索引损坏。请参见ALTER INDEX 语句。
使用 BACKUP 语句时结合 WAIT BEFORE START 子句可确保在开始备份时没有任何事务在执行。如果在备份过程中未执行任何事务,或者指定了 BACKUP DATABASE WITH CHECKPOINT LOG RECOVER 或 WITH CHECKPOINT LOG NO COPY,则可以使用只读模式或通过验证备份数据库的副本来验证备份数据库的有效性。请参见-r dbeng12/dbsrv12 服务器选项。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |