| 導購 | 订阅 | 在线投稿
分享
 
 
 

Sybase數據庫修複及"sa"用戶口令的恢複

來源:互聯網  2008-08-01 06:24:03  評論

SYBASE數據庫管理系統中數據庫損壞後,重新建立數據庫的時間比較長,這將給應用(特別是對時間要求特別嚴格的應用,如金融、證券等)造成很大的損失。而如果在應用中遺忘超級用戶sa口令,更會給系統管理帶來極大的不便,甚至很多操作都無法進行。本文介紹一種簡便的修複SYBASE數據庫及恢複sa口令的方法。以下假定server能正常啓動,server名爲SYBASE,數據庫名爲demodb。

一、修複SYBASE數據庫 分爲兩種情況:

1.數據庫所用的設備正常,而庫demodb的狀態爲suspect。

(1)以sa注冊

isql -u sa -P

1>

(2)修改server屬性,置系統表爲允許修改該狀態。

1>sp_configure "allow updates",1

2>go

3>recofigure with override

4>go

(3)修改數據庫的狀態,置數據庫狀態爲server啓動時不檢測。

1>update master.sysdatabases set status = -32768

2>where name = "demodb"

3>go

(4)重啓server。

(5)修改數據庫的狀態,置數據庫狀態爲正常。

1>update master.sysdatabases set status = 0

2>where name ="demodb"

3>go

(6)修改server屬性,置系統表爲不允許修改狀態。

1>sp_configure "allowupdates",0

2>go

3>reconfigure with override

4>go

(7)再次重啓server。

至此,如果數據庫能夠正常,則恢複完畢。

以上步驟中,也可以用單用戶模式啓動server,命令爲startserver -m,而不必修改server的"allow updates"屬性。SYBASE 11及以上版本的server只需重啓,不需要執行reconfigure with override。如果上述方法仍不能恢複數據庫,則只能使用dbcc命令刪除該數據庫,然後重新建立。

2.數據庫所占用的設備不正常,庫的狀態爲suspect 使用sp_helpdb和sp_helpdevice命令查出數據庫設備的邏輯名、物理名、設備號、大小等信息。如果上述命令無法查出數據庫設備的信息,可使用select * from master.sydatabases和select * from master.sysdevices。然後用disk reinit重建設備。最後,按照1的步驟恢複數據庫。

上述第一種情況數據庫損壞程度較輕,對數據庫內容檢查後即可使用。而在第二種情況下,如果數據庫的日志建立在不同的設備上,只是數據庫的日志設備損壞,數據庫的損壞程度會較輕,只是有些交易無法恢複;如果數據庫的設備損壞,整個數據庫的內容會全部丟失,其中表、表的內容、存儲過程都需要重建。所以建議數據庫和數據庫的日志建立在不同的設備上。

系統錯誤日志errorlog文件存有SYBASE數據庫系統的錯誤信息,系統出錯時應先檢查此文件,據此判斷錯誤原因,找出解決辦法,以免誤操作。

二、 恢複sa口令

編輯RUN_SYBASE,在dataserver啓動行尾加入參數 -psa,然後存盤退出,執行startserver -f RUN_SYBASE重啓server,系統會給超級用戶sa一個隨機的密碼,以此密碼注冊進入server,然後使用sp_password命令修改密碼即可。

SYBASE數據庫管理系統中數據庫損壞後,重新建立數據庫的時間比較長,這將給應用(特別是對時間要求特別嚴格的應用,如金融、證券等)造成很大的損失。而如果在應用中遺忘超級用戶sa口令,更會給系統管理帶來極大的不便,甚至很多操作都無法進行。本文介紹一種簡便的修複SYBASE數據庫及恢複sa口令的方法。以下假定server能正常啓動,server名爲SYBASE,數據庫名爲demodb。 一、修複SYBASE數據庫 分爲兩種情況: 1.數據庫所用的設備正常,而庫demodb的狀態爲suspect。 (1)以sa注冊 isql -u sa -P 1> (2)修改server屬性,置系統表爲允許修改該狀態。 1>sp_configure "allow updates",1 2>go 3>recofigure with override 4>go (3)修改數據庫的狀態,置數據庫狀態爲server啓動時不檢測。 1>update master.sysdatabases set status = -32768 2>where name = "demodb" 3>go (4)重啓server。 (5)修改數據庫的狀態,置數據庫狀態爲正常。 1>update master.sysdatabases set status = 0 2>where name ="demodb" 3>go (6)修改server屬性,置系統表爲不允許修改狀態。 1>sp_configure "allowupdates",0 2>go 3>reconfigure with override 4>go (7)再次重啓server。 至此,如果數據庫能夠正常,則恢複完畢。 以上步驟中,也可以用單用戶模式啓動server,命令爲startserver -m,而不必修改server的"allow updates"屬性。SYBASE 11及以上版本的server只需重啓,不需要執行reconfigure with override。如果上述方法仍不能恢複數據庫,則只能使用dbcc命令刪除該數據庫,然後重新建立。 2.數據庫所占用的設備不正常,庫的狀態爲suspect 使用sp_helpdb和sp_helpdevice命令查出數據庫設備的邏輯名、物理名、設備號、大小等信息。如果上述命令無法查出數據庫設備的信息,可使用select * from master.sydatabases和select * from master.sysdevices。然後用disk reinit重建設備。最後,按照1的步驟恢複數據庫。 上述第一種情況數據庫損壞程度較輕,對數據庫內容檢查後即可使用。而在第二種情況下,如果數據庫的日志建立在不同的設備上,只是數據庫的日志設備損壞,數據庫的損壞程度會較輕,只是有些交易無法恢複;如果數據庫的設備損壞,整個數據庫的內容會全部丟失,其中表、表的內容、存儲過程都需要重建。所以建議數據庫和數據庫的日志建立在不同的設備上。 系統錯誤日志errorlog文件存有SYBASE數據庫系統的錯誤信息,系統出錯時應先檢查此文件,據此判斷錯誤原因,找出解決辦法,以免誤操作。 二、 恢複sa口令 編輯RUN_SYBASE,在dataserver啓動行尾加入參數 -psa,然後存盤退出,執行startserver -f RUN_SYBASE重啓server,系統會給超級用戶sa一個隨機的密碼,以此密碼注冊進入server,然後使用sp_password命令修改密碼即可。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有