程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 如何終止數據庫恢復過程

如何終止數據庫恢復過程

編輯:SyBase綜合文章
當某一正常運行的大事務(例如:update、delete操作)被終止,且重新啟動server後,運行該事務的數據庫處於恢復狀態,通常這種狀態會持續很長時間,當在此恢復過程中沒有出現任何異常時,建議用戶耐心等待恢復過程完成。同時我們提供以下方法來終止此恢復過程,但請用戶注意這些操作將帶來數據的不一致性。必要時,希望用戶用完整、可靠的數據庫備份恢復此數據庫。

   (1) 啟動Backup Server, 後備master數據庫(這一步很重要!)

  1>dump database master to "/usr/Sybase/master.dup"
  2>go

   (2) 用isql登錄到SQL Server, 須用sa帳號 (本文以pubs2數據庫為例)

  1>sp_configure "allow updates", 1
  2>go
  1>begin tran
  2>go
  1> use master
  2> go
  1>update sysdatabases
  2>set status = -32768
  3>Where name="pubs2"
  4>go

    如果得到(1 row affected),則

  1>commit
  2>go

  否則

  1>rollback
  2>go

   (3)這時重新啟動SQL Server, 使用bcp工具將該數據庫(本例中為pubs2)內的全部數據導出備份(這一步很重要!)

   (4)以sa帳號登錄到SQL Server,執行下面操作:

  1>dump tran pubs2 with no_log
  2>go
  1>begin tran
  2>go
  1> use master
  2> go
  1>update sysdatabases
  2>set status=0
  3>Where name="pubs2"
  4>go

    如果得到(1 row affected),則

  1>commit
  2>go

    否則

  1>rollback
  2>go

  1>sp_configure "allow updates" ,0
  2>go

   (5) 重新啟動server

   (6) 如果你的數據庫原來有dboption(例如"select into","trunc log on chkpt"等), 你需要重新設置這些option..

   (7) 當數據庫已經恢復可使用狀態後,運行dbcc命令檢查數據庫的一致性(參照"如何檢查數據庫中數據一致性"文章)

   (8) 後備用戶數據庫

  例如:
  1>dump database pubs2 to "/usr/Sybase/pubs2.dup"
  2>go

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved