[分享] 如何终止数据库恢复过程

[复制链接]
  • TA的每日心情
    开心
    2023-12-15 09:13
  • 签到天数: 55 天

    [LV.5]六品通判

    1197

    主题

    1965

    回帖

    13万

    积分

    Administrator

    分子与原子计算公式

    Rank: 9Rank: 9Rank: 9

    积分
    131976

    终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

    QQ
    发表于 2007-7-4 22:02:03 | 显示全部楼层 |阅读模式
    当某一正常运行的大事务(例如:update、delete操作)被终止,且重新启动server后,运行该事务的数据库处于恢复状态,通常这种状态会持续很长时间,当在此恢复过程中没有出现任何异常时,建议用户耐心等待恢复过程完成。同时我们提供以下方法来终止此恢复过程,但请用户注意这些操作将带来数据的不一致性。必要时,希望用户用完整、可靠的数据库备份恢复此数据库。

    (1) 启动backup server, 后备master数据库(这一步很重要!)
    1. 1>dump database master to "/usr/sybase/master.dup"
    2. 2>go
    复制代码

    (2) 用isql登录到sql server, 须用sa帐号 (本文以pubs2数据库为例)

    1. 1>sp_configure "allow updates", 1
    2. 2>go
    3. 1>begin tran
    4. 2>go
    5. 1> use master
    6. 2> go
    7. 1>update sysdatabases
    8. 2>set status = -32768
    9. 3>where name="pubs2"
    10. 4>go
    复制代码


    如果得到(1 row affected),则
    1. 1>commit
    2. 2>go
    复制代码

    否则
    1>rollback
    2>go
    (3)这时重新启动sql server, 使用bcp工具将该数据库(本例中为pubs2)内的全部数据导出备份(这一步很重要!)
    (4)以sa帐号登录到sql server,执行下面操作:
    1. 1>dump tran pubs2 with no_log
    2. 2>go
    3. 1>begin tran
    4. 2>go
    5. 1> use master
    6. 2> go
    7. 1>update sysdatabases
    8. 2>set status=0
    9. 3>where name="pubs2"
    10. 4>go
    复制代码

    如果得到(1 row affected),则
    1. 1>commit
    2. 2>go
    复制代码

    否则
    1. 1>rollback
    2. 2>go
    3. 1>sp_configure "allow updates" ,0
    4. 2>go
    复制代码
    5) 重新启动server

       (6) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option..

       (7) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性(参照"如何检查数据库中数据一致性"文章)

       (8) 后备用户数据库

      例如: 
    1. 1>dump database pubs2 to "/usr/sybase/pubs2.dup"
    2. 2>go
    复制代码
  • TA的每日心情

    2014-11-10 10:16
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    3

    主题

    28

    回帖

    20

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    20
    发表于 2014-11-7 16:13:58 | 显示全部楼层
    好好学习,天天向上
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表