Sybase数据库维护篇--高级摘要.ppt
文本预览下载声明
如何终止数据库恢复过程1 当某一正常运行的大事务(例如:update、delete操作)被终止,且重新启动server后,运行该事务的数据库处于恢复状态,通常这种状态会持续很长时间,当在此恢复过程中没有出现任何异常时,建议耐心等待恢复过程完成。同时提供以下方法来终止此恢复过程,但请注意这些操作将带来数据不一致性。必要时,希望用户用完整、可靠的数据库备份恢复此数据库。 (1) 启动Backup Server后,备份master数据库 (2)用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例) 1sp_configure allow updates, 1 2go 1begin tran 2go 1 use master 2 go 1update sysdatabases 2set status = -32768 3Where name=pubs2 4go 如果得到(1 row affected),则commit提交,否则rollback 如何终止数据库恢复过程2 (3)这时重新启动SQL Server, 再用sa帐号登录到SQL Server. 1dump tran pubs2 with no_log 2go 1begin tran 2go 1 use master 2 go 1update sysdatabases 2set status=0 3Where name=pubs2 4go 如果得到(1 row affected),则commit提交,否则rollback (4) 如果你的数据库原来有dboption(例如select into,trunc log on chkpt等), 你需要重新设置这些option.. (5) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性(参照如何检查数据库中数据一致性文章) (6) 备份用户数据库 如何删除坏的用户数据库 当使用drop database无法删除数据库时,使用本文所示方法可以删除。 (1)设置允许修改系统表 1sp_configure allow updates,1 2go (2)把 要删除的用户数据库置为suspect状态 1use master 2go 1begin tran 2go 1update sysdatabases set status=256 2where name=pubs2 3go 如果得到(1 row affected),则则commit提交,否则rollback (3)重启server,并用isql以sa注册。 (4)删除数据库 1dbcc dbrepair(pubs2,dropdb) 2go (5)恢复允许修改系统表 1sp_configure allow updates,0 2go 数据一致性检查1 数据库一致性检查(dbcc)提供了一些命令用于检查数据库的逻辑和物理一致性。Dbcc主要有两个功能: 使用checkstorage 或 checktable 及 checkdb 在页一级和行一级检查页链及数据指针。 使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc 检查页分配。 在下列情况中需要使用 dbcc 命令: 作为数据库日常维护工作的一部分, 数据库内部结构的完整性决定于sa 或dbo 定期地运行 dbcc 检查。 在系统报错以后, 确定数据库是否有损坏。 在备份数据库之前, 确保备份的完整性。 如果怀疑数据库有损坏时, 例如, 使用某个表时报出表损坏的信息, 可以使用 dbcc 确定数据库中其他表是否也有损坏。 数据一致性检查2 下面是dbcc的简单用法: dbcc checktable (table_name)检查指定的表, 索引和数据页是否正确链接, 索引是否正确排序, 所有指针是否一致, 每页的数据信息是否合理, 页偏移是否合理。 dbcc checkdb (database_name)对指定数据库的所有表做和checktable 一样的检查。 dbcc checkalloc (database_name,fix|nofix)检查指定数据库, 所有页面被正确分配, 是否被分配的页面没被使用。当使用fix选项时,在检查数据库的同时会自动修复有问题的页面。(若数据库数据量很大,则该过程会持续很长时间。) dbcc tablealloc (table_name,fix|nof
显示全部