- 論壇徽章:
- 0
|
這種情況數(shù)據(jù)還有救嗎?
理論上可行。
假設你的master也在d盤上,并且沒有被損壞,也就是master.dat(一般叫這個)還在,方法如下:
1. 先將master.dat文件拷出,重新安裝Sybase軟件,重新創(chuàng)建sybase服務器到以前相同位置
2. 關閉sybase服務,將以前的master.dat文件覆蓋新的master.dat文件
3. 重新啟動Sybase服務。
只要你的設備文件都在原來相同的位置,應該就可以了。
如果你的master不在了,不過你至少應該有以前系統(tǒng)中的數(shù)據(jù)庫設備詳細信息(原有設備的名稱、大小、設備號等相關信息),方法如下:
在擁有正確數(shù)據(jù)庫設備的情況下恢復SYBASE ASE
1. 重新創(chuàng)建 SYBASE 數(shù)據(jù)庫服務器
或者 使用 BuildMaster 重新創(chuàng)建服務器的master 數(shù)據(jù)設備
2. 通過備份的系統(tǒng)表信息或者人工記錄信息精確確定數(shù)據(jù)庫服務器上
原有設備的名稱、大小、設備號等相關信息
3. 使用disk reinit 命令重新加載已存在的設備
(注意:如果使用disk init命令將重新初始化設備,破壞原設備上數(shù)據(jù)信息)
格式如下:
disk reinit name='dev_name',physname='physical_name',size=n(2k),vdevno=valid_number
各參數(shù)需跟原前參數(shù)匹配
例:
1>; disk reinit name='dev_testdata',physname='d:\temp\testdata.dat',size=10240,vdevno=2
2>; go
1>; disk reinit name='dev_testlog',physname='d:\temp\testlog.dat',size=10240,vdevno=3
2>; go
1>; disk reinit name='dev_testlog1',physname='d:\temp\testlog1.dat',size=2560,vdevno=4
2>; go
4. 使用TraceFlag 3608及單用戶模式啟動數(shù)據(jù)庫服務器,操作辦法如下:
修改SYBASE安裝目錄下install目錄中的RUN_Servername(WINNT下為RUN_Servername.bat) 文件。在dataserver(WINNT下為sqlsrvr )命令行末尾添加 -m -T3608參數(shù)
運行 RUN_Servername.bat 文件啟動服務器
5. 運行 disk refit 命令讓服務器掃描已有設備上已存在的 原數(shù)據(jù)庫 信息。
6. 掃描完成后,使用dbcc checkdb、dbcc checkalloc命令對各數(shù)據(jù)庫進行檢查
另:
如果設備各參數(shù)精確,恢復幾率較大。
但如果 disk reinit 參數(shù)與原來不一致,可恢復幾率較小,只能從備份上進行恢復。
祝好運!為什么平時不做備份啊?? |
|