Sybase數(shù)據(jù)庫(kù)故障處理方法_第1頁(yè)
Sybase數(shù)據(jù)庫(kù)故障處理方法_第2頁(yè)
Sybase數(shù)據(jù)庫(kù)故障處理方法_第3頁(yè)
Sybase數(shù)據(jù)庫(kù)故障處理方法_第4頁(yè)
Sybase數(shù)據(jù)庫(kù)故障處理方法_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Sybase 數(shù)據(jù)庫(kù)故障處理方法一、Sybsystemprocs 庫(kù)“掛起”解決辦法1. 修改 文件, 修改 Sybase 數(shù)據(jù)庫(kù)可以修改系統(tǒng)參數(shù) .2. $ vi查找 “ allow updates ” , 將其修改為 1.( 缺省值為 0).既 allow updates to system tables=1 重新啟動(dòng)系統(tǒng) .3. 用?isql 登錄至U sql server 中,修改 master 庫(kù)中 sysdatabases 表中 sybsystemprocs 庫(kù)對(duì)應(yīng)的 status 的值為 -32768.$isql- Usa - P1 update master.sysdataba

2、ses2 set status = -32768 where name = ”sybsystemprocs ”1go1shutdown with nowait2go 關(guān)閉數(shù)據(jù)庫(kù)重新啟動(dòng) .4. 用 ?isql 登錄至 sql server 中 , 修改 master 庫(kù)中 sysdatabases 表中 sybsystemprocs 庫(kù)對(duì)應(yīng)的 status 的值為 0.$isql- Usa - P1update master.sysdatabases2set status = 0 where name =”sybsystemprocs ”3go1shutdown with nowait2go

3、關(guān)閉數(shù)據(jù)庫(kù)重新啟動(dòng) .5. 將 中的” allow updates to system ” 的值改為 0.二、如何恢復(fù) master 數(shù)據(jù)庫(kù)ASE cant setup and has no valid dump of master1、編輯 RUN_servername在命令行最后加入: -T36072、單用戶模式啟動(dòng) ASE$cd install$startserver -f RUN_servername -m 3、bcp out 系統(tǒng)表$bcp master.sysdevices out /devs -Usa -P -c$bcp master.sysdatabases out /dbs -

4、Usa -P -c$bcp master.sysusages out /usages -Usa -P -c$bcp master.syslogins out /logins -Usa -P -c$bcp master.sysconfigures out /configures -Usa -P -c$bcp master.syscharsets out /charsets -Usa -P -c4、shutdownASE5、創(chuàng)建新 master 設(shè)備 $buildmaster -d -s(new_master_device_size 以 2K為單位)6、編輯 RUN_servername將指定 m

5、aster 設(shè)備指定為新創(chuàng)建的 master 設(shè)備,并刪除在第 1 步中增加的參數(shù)7、刪除 /dbs、/usages 文件中有關(guān) master、tempdb、model 的內(nèi)容。8、單用戶模式啟動(dòng) ASE$cd install $startserver -f RUN_servername -m9、bcp in 系統(tǒng)表$ bcp master.sysdevices in /devs -Usa -P -b 1 -c $bcp master.sysdatabases in /dbs -Usa -P -b 1 -c $bcp master.sysusages in /usages -Usa -P -b

6、 1 -c $bcp master.syslogins in /logins -Usa -P -b 1 -c $bcp master.sysconfigures in /configures -Usa -P -b 1 -c $bcp master.syscharsets in /charsets -Usa -P -b 1 -c10、shudown ASE11、 執(zhí)行 installmaster腳本$isql -Usa -P sp_configure allow updates,12go(3) 把 要?jiǎng)h除的用戶數(shù)據(jù)庫(kù)置為 suspect 狀態(tài)1use master2go1begin tran2g

7、o1update sysdatabases set status=256 2where name=pubs2 3go如果得到 (1 row affected), 則1commit 2go 否則1rollback 2go(4) 重啟 server, 并用 isql 以 sa 注冊(cè)。(5) 刪除數(shù)據(jù)庫(kù)1dbcc dbrepair(pubs2,dropdb) 2go(6) 恢復(fù)允許修改系統(tǒng)表 1sp_configure allow updates,0 2go(7) 結(jié)束四、如何做 rebuild log 注意:這個(gè)過(guò)程可能會(huì)引起數(shù)據(jù)的不一致性。(1) 賦予 sa 用戶 sybase_ts_role

8、的角色 isql -Usa -P1sp_role grant,sybase_ts_role,sa 2go1quit(2) 將數(shù)據(jù)庫(kù)置為 bypass recovery 狀態(tài) isql -Usa -P1sp_configure allow updates,1 2go1use master 2go1update sysdatabases set status=-32768 2where name=database_name 3go1shutdown with nowait2go(3) rebuild 數(shù)據(jù)庫(kù)日志 重啟 Server isql -Usa -P 1use master 2go1dbcc

9、 rebuild_log(database_name,1,1)2go1shutdown with nowait2go(4) 重啟 SQL server1use master2go1update sysdatabases set status=0 where name=database_name2go1sp_configure allow updates,02go1shutdown with nowait2go(5) 在重啟 SQLserver 之后, 如果數(shù)據(jù)庫(kù)恢復(fù)正常, rebuild log 工作將會(huì)成功 完成,否則要恢復(fù)數(shù)據(jù)庫(kù)備份,使用 dump database 或 bcp 命令。五、

10、數(shù)據(jù)庫(kù)被標(biāo)記為 suspect 時(shí)(1) 一般解決方案 現(xiàn)象: Error 926Severity Level 14Error Message TextDatabase xx cannot be opened - it has been marked SUSPECT by recover Explanation(1) 當(dāng)你使用 Transact_SQL 命令操作這個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí) , 出現(xiàn)這個(gè)信息 , 這是一個(gè)嚴(yán)重的錯(cuò)誤 , 如果你要使用這個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù) , 必須改正這個(gè)錯(cuò)誤 .(2) 啟動(dòng) Backup Server, 后備 master 數(shù)據(jù)庫(kù) 1dump database master

11、to /usr/sybase/master_dump. 2go(3) 用 isql 登錄到 SQL Server, 須用 sa 帳號(hào) ( 本文以 pubs2 數(shù) 據(jù)庫(kù)為例 )1sp_configure allow updates, 12go1begin tran2go1update master.sysdatabases2set status = - 327683Where name=pubs24go如果得到 (1 row affected), 則 1commit 2go否則1rollback2go(4) 如果條件允許,bcp out用戶數(shù)據(jù)或dump用戶數(shù)據(jù)庫(kù)(5) 這時(shí)重新啟動(dòng) SQL S

12、erver, 再有 sa 帳號(hào)注冊(cè)到 SQL Server. 1begin tran2go1update master.sysdatabases2set status=03Where name=pubs24go如果得到 (1 row affected), 則1commit2go否則1rollback2go1sp_configure allow updates ,02go(4) 如果你的數(shù)據(jù)庫(kù)原來(lái)有 dboption( 例如 select into,trunc log on chkpt 等),你需要重新設(shè)置這些 option.(5) 運(yùn)行 dbcc 命令檢查數(shù)據(jù)庫(kù)的一致性 isql -Usa -

13、P -i -o文件示例:dbcc checkdb(pubs2)godbcc checkalloc(pubs2)godbcc checkcatalog(pubs2)gogrep Msg(6) 后備用戶數(shù)據(jù)庫(kù)1dump database pubs2 on /usr/sybase/pubs2_dump. 2go六、數(shù)據(jù)庫(kù)被標(biāo)記為 suspect 時(shí)(2) 數(shù)據(jù)庫(kù)設(shè)備損壞時(shí)的解決方 案現(xiàn)象: 926 錯(cuò)誤產(chǎn)生的原因有幾種。本文討論當(dāng)數(shù)據(jù)庫(kù)設(shè)備初始 化失敗 ( 設(shè)備文件丟失或文件讀寫權(quán)限不正確 ) 時(shí),導(dǎo)致數(shù)據(jù)庫(kù)恢復(fù)失敗,出現(xiàn) 926 錯(cuò)誤的情況。(1) 請(qǐng)先恢復(fù)數(shù)據(jù)庫(kù)設(shè)備及讀寫權(quán)限。(2) 啟動(dòng) Ba

14、ckup Server, 后備 master 數(shù)據(jù)庫(kù) 1dump database master to /usr/sybase/master_dump. 2go(3) 用isql登錄到SQLServer,須用sa帳號(hào)(本文以pubs2 數(shù)據(jù)庫(kù)為例)1sp_c on figure allow updates, 12go1begi n tran2go1update master.sysdatabases2set status =status - 2563Where name=pubs24go如果得到(1 row affected),貝U1commit2go否則1rollback2go(4) 重新啟

15、動(dòng)SQL Server,運(yùn)行dbcc命令檢查數(shù)據(jù)庫(kù)的一致性編輯生成文件:dbcc checkdb(pubs2)godbcc checkalloc(pubs2)go dbcc checkcatalog(pubs2) goisql -Usa -P -i -ogrep Msg(5) 后備用戶數(shù)據(jù)庫(kù)1dump database pubs2 on /usr/sybase/pubs2_dump.七、如何終止數(shù)據(jù)庫(kù)恢復(fù)過(guò)程當(dāng)某一正常運(yùn)行的大事務(wù) (例如:update delete操作)被終止,且重新啟動(dòng)server 后,運(yùn)行該事務(wù)的數(shù)據(jù)庫(kù)處于恢復(fù)狀態(tài),通常這種狀態(tài)會(huì)持續(xù)很長(zhǎng)時(shí)間,當(dāng)在此恢復(fù)過(guò) 程中沒(méi)有出現(xiàn)任

16、何異常時(shí),建議用戶耐心等待恢復(fù)過(guò)程完成。同時(shí)我們提供以下方法來(lái) 終止此恢復(fù)過(guò)程,但請(qǐng)用戶注意這些操作將帶來(lái)數(shù)據(jù)的不一致性。必要時(shí),希望用戶用完整、可靠的數(shù)據(jù)庫(kù)備份恢復(fù)此數(shù)據(jù)庫(kù)。(1)啟動(dòng)Backup Server,后備master數(shù)據(jù)庫(kù)(這一步很重要!)1dump database master to /usr/sybase/2go 用isql登錄到SQL Server,須用sa帳號(hào)(本文以pubs2數(shù)據(jù)庫(kù)為例)1sp_c on figure allow updates, 12go1beg in tran2go1 use master2 go1update sysdatabases2set s

17、tatus = -327683Where name=pubs24go如果得到(1 row affected),貝U1commit2go否則1rollback2go 這時(shí)重新啟動(dòng)SQL Server,再用sa帳號(hào)登錄到SQL Server.1dump tran pubs2 with n o_log2go1begi n tran2go1 use master2 go1update sysdatabases2set status=03Where name=pubs24go如果得到(1 row affected),貝U1commit2go否則1rollback2go1sp_c on figure al

18、low updates ,02go(4) 重新啟動(dòng)server(5) 如果你的數(shù)據(jù)庫(kù)原來(lái)有 dboption(例如select into,trunc logon chkpt等),你需要重新設(shè)置這些 option.(6) 當(dāng)數(shù)據(jù)庫(kù)已經(jīng)恢復(fù)可使用狀態(tài)后,運(yùn)行dbcc命令檢查數(shù)據(jù)庫(kù)的一致性(參照如何檢查數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性文章)(7) 后備用戶數(shù)據(jù)庫(kù)例如:1dump database pubs2 to /usr/sybase/2go八、如何檢查數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性數(shù)據(jù)庫(kù)一致性檢查(dbcc)提供了一些命令用于檢查數(shù)據(jù)庫(kù)的邏輯和物理 致性。Dbcc主要有兩個(gè)功能:1. 使用 checkstorage 或

19、 checktable 及 checkdb 在頁(yè)一級(jí)和行 一級(jí)檢查頁(yè)鏈及數(shù)據(jù)指針。2. 使用 checkstorage, checkalloc, 或 checkverify,tablealloc,及 indexalloc檢查頁(yè)分配。在下列情況中需要使用dbcc命令:1. 作為數(shù)據(jù)庫(kù)日常維護(hù)工作的一部分,數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu)的完整性 決定于sa或dbo定期地運(yùn)行dbcc檢查。2. 在系統(tǒng)報(bào)錯(cuò)以后,確定數(shù)據(jù)庫(kù)是否有損壞。3. 在備份數(shù)據(jù)庫(kù)之前,確保備份的完整性。4. 如果懷疑數(shù)據(jù)庫(kù)有損壞時(shí),例如,使用某個(gè)表時(shí)報(bào)出表?yè)p壞的 信息,可以使用dbcc確定數(shù)據(jù)庫(kù)中其他表是否也有損壞。下面是dbcc的簡(jiǎn)單用法:d

20、bcc checktable (table_ name)檢查指定的表,檢查索引和數(shù)據(jù)頁(yè)是否正確鏈接,索引是否正確排 序,所有指針是否一致,每頁(yè)的數(shù)據(jù)信息是否合理,頁(yè)偏移是否合 理。dbcc checkdb (database, name)對(duì)指定數(shù)據(jù)庫(kù)的所有表做和checktable 一樣的檢查。dbcc checkalloc (database, namefix |no fix)檢查指定數(shù)據(jù)庫(kù),是否所有頁(yè)面被正確分配,是否被分配的頁(yè)面沒(méi)被 使用。當(dāng)使用fix選項(xiàng)時(shí),在檢查數(shù)據(jù)庫(kù)的同時(shí)會(huì)自動(dòng)修復(fù)有問(wèn)題的 頁(yè)面。(若數(shù)據(jù)庫(kù)數(shù)據(jù)量很大,則該過(guò)程會(huì)持續(xù)很長(zhǎng)時(shí)間。)dbcc tablealloc (ta

21、ble_ namefix |no fix)檢查指定的表,是否所有頁(yè)面被正確分配,是否被分配的頁(yè)面沒(méi)被使 用。是checkalloc 的縮小版本,對(duì)指定的表做完整性檢查。當(dāng)使用 fix選項(xiàng)時(shí),在檢查數(shù)據(jù)表的同時(shí)會(huì)自動(dòng)修復(fù)數(shù)據(jù)表中有問(wèn)題的頁(yè) 面。關(guān)于上述命令的其它選項(xiàng)及詳細(xì)使用方法和checkstorage,checkverify, indexalloc的詳細(xì)使用方法,請(qǐng)參閱有關(guān)命令手冊(cè)。舉例1: Unix平臺(tái)檢查pubs2數(shù)據(jù)庫(kù)的一致性1. 單用戶模式啟動(dòng)Server:$SYBASE/i nstall startserver -f RUN_server_name -m2. viuse maste

22、rgosp_dboptio n pubs2,s in gle user,truegouse pubs2gocheckpo intgodbcc checkdb(pubs2)godbcc checkalloc(pubs2,fix)godbcc checkcatalog(pubs2)gouse mastergosp_dboptio n pubs2,s in gle user,falsegouse pubs2gocheckpo intgoquitgo3. isql -Usa -Pxxxxxx -SSYBASE 4. grep Msg舉例2: Unix平臺(tái)檢查pubs2數(shù)據(jù)庫(kù)中titles 表的一致性1

23、. viuse pubs2godbcc checktable(titles)godbcc tablealloc(titles)go2. isql -Usa -Pxxxxxx -SSYBASE grep Msg九、如何做 Rebuild Master(沒(méi)有后備 master庫(kù),而使用命令 disk rein it,disk refit)提示1:如果有可能,在執(zhí)行這個(gè)任務(wù)之前,請(qǐng)先做操作系統(tǒng)級(jí)SYBASE DEVICES的后備。UNIX操作系統(tǒng)可使用命令dd。因?yàn)槿绻鹍isk rein it 使用了錯(cuò)誤 的信息,那么,在執(zhí)行了 disk refit之后就會(huì)產(chǎn)生無(wú)法彌補(bǔ)的錯(cuò)誤。倘若,存在一個(gè)SYBA

24、SE DEVICE的后備文件,將會(huì)給我們一個(gè)彌補(bǔ)的機(jī)會(huì)。例如: 當(dāng)disk reinit 使用了過(guò)小的size值,我們還可以重新恢復(fù) SYBASDEVICES 文件,重新做 disk reint 、disk refit 。提示2:在使用disk reinit 命令時(shí),將覆蓋SYBASBEVICE(請(qǐng)參照以下語(yǔ)法), 安全的做法是size值使用裸分區(qū)或系統(tǒng)文件的大小的最大值。如果使用的是UNIX裸分區(qū),即使你不能確認(rèn) SYBASE DEVIC最初大小是不是最大值,都要 使用裸分區(qū)大小的最大值。步驟:1. 獲得將要被恢復(fù)的SYBASE DEVIC的信息。這些信息被用來(lái)重建 sysdevices,s

25、ysusages 以及 sysdatabases。1. 從 error log 的 server 啟動(dòng)信息中獲得 SYBASE DEVICE 的設(shè)備名、指定路徑。2. 使用裸分區(qū)或系統(tǒng)文件的大小的最大值作為SYBASEDEVICE的大小。3. 以上信息也可以通過(guò)最近的sysdevices系統(tǒng)表的內(nèi)容來(lái)獲得。如果對(duì)此信息懷有疑問(wèn),還是使用以上的方法比較穩(wěn)妥。2. 做操作系統(tǒng)級(jí)的SYBASDEVICE后備。UNIX操作系統(tǒng),使用dd 命令實(shí)現(xiàn)。3. 配置一個(gè)新的 ASE Server。在以后的步驟中會(huì)用到這個(gè)新的 master。4. 如果需要,請(qǐng)?jiān)倥渲靡粋€(gè) Backup Server。5. 用單用戶模式啟動(dòng)Server。一6. 運(yùn)行disk reinit,用來(lái)重建sysdevices系統(tǒng)表,而沒(méi)有重新初始化 SYBASE DEVICE語(yǔ)法如下:disk reinitn ame=device_ name,phys name=physical

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論