SYBASE數(shù)據(jù)庫(kù)常見(jiàn)的問(wèn)題總結(jié)_第1頁(yè)
SYBASE數(shù)據(jù)庫(kù)常見(jiàn)的問(wèn)題總結(jié)_第2頁(yè)
SYBASE數(shù)據(jù)庫(kù)常見(jiàn)的問(wèn)題總結(jié)_第3頁(yè)
SYBASE數(shù)據(jù)庫(kù)常見(jiàn)的問(wèn)題總結(jié)_第4頁(yè)
SYBASE數(shù)據(jù)庫(kù)常見(jiàn)的問(wèn)題總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SYBASE數(shù)據(jù)庫(kù)常見(jiàn)問(wèn)題總結(jié)TOC o 1-5 h zSYBASE數(shù)據(jù)庫(kù)常見(jiàn)問(wèn)題總結(jié)1 HYPERLINK l bookmark4 o Current Document SYSLOGS日志滿(mǎn)了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng)1數(shù)據(jù)庫(kù)日志損壞時(shí)重建日志啟動(dòng)數(shù)據(jù)庫(kù)的解決辦法3數(shù)據(jù)庫(kù)處于可疑狀態(tài)的解決方法5 HYPERLINK l bookmark10 o Current Document 4.Sybase系統(tǒng)崩潰了,沒(méi)有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫(kù)?8 HYPERLINK l bookmark12 o Current Document 5不小心直接刪除了日志的設(shè)備文件,如何恢復(fù)數(shù)據(jù)庫(kù)?

2、13 HYPERLINK l bookmark14 o Current Document .sa密碼忘記了導(dǎo)致isql-Usa-P*進(jìn)不去怎么辦?15關(guān)于sybase的配置-(數(shù)據(jù)庫(kù)慢的請(qǐng)留意)15 HYPERLINK l bookmark16 o Current Document 8.設(shè)備路徑更改的方法19.dump文件load后數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)不了解決辦法20.sybase數(shù)據(jù)庫(kù)備份方案20 HYPERLINK l bookmark18 o Current Document .master數(shù)據(jù)庫(kù)狀態(tài)被置為-32768后的處理方法26syslogs日志滿(mǎn)了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng)業(yè)務(wù)系統(tǒng)數(shù)

3、據(jù)庫(kù)不能正常啟動(dòng),對(duì)于這一類(lèi)問(wèn)題,我們按照如下步驟解決:第一步,啟用allowupdatestosystemtables,這樣可以使具有系統(tǒng)管理員角色的用戶(hù)能夠改變系統(tǒng)表并可創(chuàng)建和修改系統(tǒng)表的存儲(chǔ)過(guò)程,其中系統(tǒng)表包括master數(shù)據(jù)庫(kù)中所有Sybase提供的表以及用戶(hù)數(shù)據(jù)庫(kù)中所有以sys開(kāi)頭的表和在sysobjects表中其ID值小于或等于100的表。系統(tǒng)表的不正確變更會(huì)導(dǎo)致數(shù)據(jù)庫(kù)損壞和數(shù)據(jù)丟失,修改系統(tǒng)表時(shí)務(wù)必要使用begintransaction來(lái)保護(hù)數(shù)據(jù)庫(kù)不受可能損壞數(shù)據(jù)庫(kù)的錯(cuò)誤影響,完成修改后應(yīng)立即禁用allowupdatestosystemtables。1sp_configureal

4、lowupdate,12go第二步,AdaptiveServer中的每個(gè)數(shù)據(jù)庫(kù)在sysdatabases中都有相應(yīng)的一行,安裝AdaptiveServer后,master數(shù)據(jù)庫(kù)、model數(shù)據(jù)庫(kù)、sybsystemprocs和tempdb數(shù)據(jù)庫(kù)在sysdatabases中都將有相應(yīng)的條目,如果已經(jīng)安裝審計(jì)功能,sybsecurity數(shù)據(jù)庫(kù)也將在其中有相應(yīng)的條目。修改sysdatabases表,將testdb的狀態(tài)修改為-32768,然后在關(guān)閉AdaptiveServer后重新啟動(dòng)AdaptiveServer。1updatesysdatabasessetstatus=-32768wherenam

5、e=testdb2go1shutdown2go第三步,由于事務(wù)日志已經(jīng)很滿(mǎn),不能使用常規(guī)方法轉(zhuǎn)儲(chǔ)此事務(wù)日志,如果使用了dumptransaction或dumptransactionwithtruncate_only命令,而命令又由于日志空間不足失敗時(shí),可以使用dumptransaction的特殊選項(xiàng)withno_log,此選項(xiàng)可截?cái)嗍聞?wù)日志而不記錄轉(zhuǎn)儲(chǔ)事務(wù)事件。所有dumptranwithno_log都將在A(yíng)daptiveServer錯(cuò)誤日志中進(jìn)行報(bào)告,這些消息包括執(zhí)行此命令的用戶(hù)ID、指示成功或失敗的消息,no_log是唯一生成錯(cuò)誤日志消息的轉(zhuǎn)儲(chǔ)選項(xiàng)。但是這個(gè)選項(xiàng)(包括withtruncat

6、e_only)沒(méi)有提供任何方法可恢復(fù)自從上次例行轉(zhuǎn)儲(chǔ)后提交的事務(wù)。1usetestdb2go1dumptrantestdbwithno_log2go第四步,修改sysdatabases表,將testdb的狀態(tài)恢復(fù)為0,然后禁用allowupdatestosystemtables。1usemaster2go1updatesysdatabasessetstatus=0wherename=testdb2go1sp_configureallowupdate,02go2.首先判斷錯(cuò)誤為頁(yè)損壞或者索引損壞,根據(jù)AdaptiveServerfailedtoretrievearowviaitsRIDindat

7、abaseescourt5becausetherequestedRIDhasahighernumberthanthelastRIDonthepage.Ridpageid=0 x1c88a8;rownum=0 x27.Pagepointer=0 x261CA000,pageno=1869992,status=0 x1,objectid=8,indexid=0,level=0.判斷其中:objectid=8表示日志段有問(wèn)題解決方法一:截?cái)嗳罩鞠劝裺ysdatabases的status修改成-32768然后重新啟動(dòng)數(shù)據(jù)庫(kù)1updatesysdatabasessetstatus=-32768where

8、name=escourt54go登陸數(shù)據(jù)庫(kù)1dumptransactionescourt5withtruncate_only2goMsg921,Level14,State1:Line1:Databaseescourt5hasnotbeenrecoveredyet-pleasewaitandtryagain.1dumptransactionescourt5withno_log2goMsg921,Level14,State1:Line1:Databaseescourt5hasnotbeenrecoveredyet-pleasewaitandtryagain.說(shuō)明這種發(fā)不起作用解決方法二:重做日志1

9、sp_rolegrant,sybase_ts_role,sa2goAlltherolesspecifiedtobegrantedinthegrantrolestatementhavealreadybeengrantedtogranteesa.Authorizationupdated.(returnstatus=0)1usemaster2go1dbccrebuild_log(escourt5,1,1)2goDBCCexecutioncompleted.IfDBCCprintederrormessages,contactauserwithSystemAdministrator(SA)role.1s

10、hutdownwithnowait2goServerSHUTDOWNbyrequest.TheSQLServeristerminatingthisprocess.重啟服務(wù)后把status修改成0后再重啟服務(wù)。服務(wù)啟動(dòng)正常最好是通過(guò)dbcccheckdb(databasename)檢查一下數(shù)據(jù)一致性。3.據(jù)庫(kù)處于可疑狀態(tài)的解決方法如何解決數(shù)據(jù)庫(kù)被掛起的問(wèn)題現(xiàn)象:Error926SeverityLevel14ErrorMessageTextDatabasexxcannotbeopened-ithasbeenmarkedSUSPECTbyrecoverExplanation(1)當(dāng)你使用Transa

11、ct_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)BackupServer,后備master數(shù)據(jù)庫(kù)1dumpdatabasemasterto/usr/sybase/master.dup2go(3)用isql登錄到SQLServer,須用sa帳號(hào)(本文以escourt5數(shù)據(jù)庫(kù)為例)1sp_configureallowupdates,12go1begintran2go1usemaster2go1updatesysdatabases2setstatus=-327683Wherename=escourt54go如果得到(

12、1rowaffected),則1commit2go否則1rollback2go重新啟動(dòng)SQLServer.注:SQLServer重新啟動(dòng)之后,當(dāng)發(fā)現(xiàn)數(shù)據(jù)庫(kù)本身存在不可恢復(fù)的問(wèn)題時(shí),如數(shù)據(jù)頁(yè)損壞等,且沒(méi)有完好的數(shù)據(jù)庫(kù)備份,一定要用bcp.out備份用戶(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)。此時(shí),以下步驟省略,并按照“如何刪除壞的用戶(hù)數(shù)據(jù)庫(kù)”文章刪除此數(shù)據(jù)庫(kù)。之后重建此數(shù)據(jù)庫(kù),恢復(fù)備份。否則,按以下步驟繼續(xù)操作:用sa帳號(hào)注冊(cè)到SQLServer.1begintran2go1usemaster2go1updatesysdatabases2setstatus=03Wherename=escourt54go如果得到(1rowa

13、ffected),則1commit2go否則1rollback2go1sp_configureallowupdates,02go重新啟動(dòng)SQLServer.如果你的數(shù)據(jù)庫(kù)原來(lái)有dboption(例如selectinto,trunclogonchkpt等),你需要重新設(shè)置這些option.當(dāng)數(shù)據(jù)庫(kù)已經(jīng)恢復(fù)可使用狀態(tài)后,運(yùn)行dbcc命令檢查數(shù)據(jù)庫(kù)的一致性(參照如何檢查數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性”文章)備份用戶(hù)數(shù)據(jù)庫(kù)例如:1dumpdatabaseescourt5to/usr/sybase/pubs2.dup2go4.Sybase系統(tǒng)崩潰了,沒(méi)有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫(kù)?有的時(shí)候,系統(tǒng)崩潰了,

14、手上也沒(méi)有數(shù)據(jù)庫(kù)的備份或者是備份太舊了,但僥幸的是設(shè)備還在,并且是完整的,這時(shí)可以通過(guò)文件COPY的方式恢復(fù)數(shù)據(jù)庫(kù)。情況一、所有設(shè)備,包括master,均是完整的:這種情況是最簡(jiǎn)單的,只需要先備份設(shè)備文件(包括master,copy到安全的地方)然后重新安裝系統(tǒng),建服務(wù)(保持頁(yè)面大小、編碼和排序與以前一樣),然后停止服務(wù),按原目錄將所有設(shè)備文件拷貝回來(lái),再重啟服務(wù)即可。新建的服務(wù)名可與舊服務(wù)不同。建議把服務(wù)名cfg也復(fù)制過(guò)來(lái),省掉參數(shù)配置。情況二、應(yīng)用的設(shè)備是完整的,但沒(méi)有master了:方法一、這種情況下要恢復(fù)數(shù)據(jù)庫(kù)就需要原來(lái)的設(shè)備使用情況表了。重新安裝系統(tǒng),建服務(wù),然后按原設(shè)備情況建設(shè)備(

15、大小、位置保持和原來(lái)一致),接下來(lái)根據(jù)記錄下來(lái)的設(shè)備使用情況建庫(kù),順序以及占用的空間要和以前的一致。然后停服務(wù),將應(yīng)用的數(shù)據(jù)庫(kù)設(shè)備復(fù)制回來(lái),重啟服務(wù)即可。請(qǐng)參考SybaseASE系統(tǒng)管理員日常維護(hù)指南的建議,定期備份master數(shù)據(jù)庫(kù)。方法二、1.重新創(chuàng)建master設(shè)備本實(shí)驗(yàn)描述了如何在master數(shù)據(jù)庫(kù)毀壞的情況下,如何重建主設(shè)備,恢復(fù)master數(shù)據(jù)庫(kù),得以重新恢復(fù)系統(tǒng)。這里假定:lMaster數(shù)據(jù)庫(kù)已損壞,或主設(shè)備已損壞。l有系統(tǒng)表的最新打印輸出。l主設(shè)備只包括master數(shù)據(jù)庫(kù)、tempdb和modelI有master數(shù)據(jù)庫(kù)的最新備份,且上次轉(zhuǎn)儲(chǔ)master數(shù)據(jù)庫(kù)后沒(méi)有初始化任何設(shè)備

16、或創(chuàng)建、變更任何數(shù)據(jù)庫(kù)。關(guān)于恢復(fù)過(guò)程l將主設(shè)備重建為第一次安裝服務(wù)器時(shí)的缺省狀態(tài);l將master數(shù)據(jù)庫(kù)恢復(fù)為缺省狀態(tài);l將master數(shù)據(jù)庫(kù)恢復(fù)為上次備份時(shí)的狀態(tài);注意:在恢復(fù)master數(shù)據(jù)庫(kù)的早期階段,不能使用系統(tǒng)存儲(chǔ)過(guò)程?;謴?fù)步驟步驟1:查找系統(tǒng)表查找已保存到文件的系統(tǒng)表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用這些副本可以保證在此過(guò)程結(jié)束時(shí)系統(tǒng)已經(jīng)全部恢復(fù)。步驟2:建立新的主設(shè)備如果AdaptiveServer正在運(yùn)行,關(guān)閉它,然后重建主設(shè)備。重建主設(shè)備時(shí),必須指定設(shè)備大小。開(kāi)始重建前,記住以下幾點(diǎn):l

17、保留舊設(shè)備,以防遇到問(wèn)題,舊設(shè)備可提供至關(guān)重要的信息。l使用buildmaster命令之前應(yīng)關(guān)閉AdaptiveServer。l不同操作系統(tǒng)上創(chuàng)建主設(shè)備的命令有所不同如:buildmas(unix)bldmaste(windowsNT),并安裝通用master數(shù)據(jù)庫(kù)的副本。l命令中給出主設(shè)備的全名和大小。示例:重建一個(gè)30兆(15360個(gè)2k的頁(yè))在WindowNT上:bldmastr-dd:devicesmaster.dat-s15360步驟3:以主恢復(fù)方式啟動(dòng)AdaptiveServer使用-m選項(xiàng)以主恢復(fù)方式啟動(dòng)AdaptiveServer。在WindowNT上,使用sqlsrvr命令從

18、命令行啟動(dòng)AadaptiveServer。Sqlsrvr.exe-d:devicesmaster.dat-sserver_name一ed:sybaseinstallerrorlog一id:sybaseini一MD:sybase-m說(shuō)明:以主恢復(fù)方式啟動(dòng)AdaptiveServer時(shí),只允許一個(gè)用戶(hù)(系統(tǒng)管理員)登錄。步驟4:重建master的設(shè)備分配檢查sysusages系統(tǒng)表的書(shū)面副本,如果有多行dbid二1的記錄,則需要增加master的大小以便裝載轉(zhuǎn)儲(chǔ)。最簡(jiǎn)單情況下,對(duì)master進(jìn)行額外分配只需要使用alterdatabase即可。復(fù)雜情況,必須為其它數(shù)據(jù)庫(kù)分配空間,以便重新構(gòu)造恢復(fù)m

19、aster所需的正確的vstart值。示例:alterdatbasemasteronmaster=2步驟5:檢查BackupServer和口sysservers系統(tǒng)表信息。使用空口令以“sa用戶(hù)登錄服務(wù)器(如果BackupServer的網(wǎng)絡(luò)名不是SYB_BACKUP,則必須更新sysservers以便AdaptiveServer可以與其BackupServer通信)l檢查interfaces文件中BackupServer的名稱(chēng);I并發(fā)出下面的命令:select*fromsysserverswheresrvname=”SYB_BACKUP”l檢查此命令中輸出結(jié)果的srvnetname。是否與服務(wù)

20、器的backupServer的interfaces文件條目匹配,若匹配跳過(guò)步驟5;l如不同,則必須更新sysservers示例:begintranactionupdatasysserversetsrvnetname=”backupserver_name”wheresrvname=”SYB_BACKUP”l核實(shí)該命令,如果updata修改了多行,或者修改了不應(yīng)修改的行,則發(fā)出rollbacktranaction命令,然后嘗試再次更新。如果該命令正確修改了BackupServer的行,則發(fā)出committransaction命令。步驟6:核實(shí)BackupServer正在運(yùn)行WindowNT平臺(tái)上,

21、本地安裝的SybaseCentral和服務(wù)管理器可以顯示BackupServer是否正在運(yùn)行。步驟7:裝載master數(shù)據(jù)庫(kù)的備份在WindowNT上:loaddatabasemasterfrom“d:devicemaster.bck”在loaddatabase成功完成后,AdaptiveServer將關(guān)閉。步驟8:更新numberofdevices配置參數(shù)僅當(dāng)使用的數(shù)據(jù)庫(kù)設(shè)備比缺省值多時(shí)才執(zhí)行此步驟。步驟9:以主恢復(fù)方式方式重新啟動(dòng)AdaptiveServerSqlsrvr.exe-d:devicesmaster.dat-sserver_name一ed:sybaseinstallerrorl

22、og一id:sybaseini一MD:sybase-m注意:裝載master的備份將使“sa帳號(hào)恢復(fù)到以前的狀態(tài)。如果sa帳號(hào)有口令,則口令恢復(fù)。步驟10:檢查系統(tǒng)表以檢驗(yàn)master的當(dāng)前備份l如果發(fā)出最新的diskinil;createdatabase或alterdatabase命令以后已備份了master數(shù)據(jù)庫(kù),則sysusages、sysdatabases、和sysdevice的內(nèi)容將與書(shū)面副本匹配。l如果副本中的任何設(shè)備未包含在已恢復(fù)的sysdevices中,則上次備份以后已添加了設(shè)備,必須運(yùn)行diskreinit禾口diskrefit。步驟11:重新啟動(dòng)AdaptiveServer

23、以常規(guī)(多用戶(hù))模式重新啟動(dòng)AdaptiveServer步驟12:檢查Adaptiveserverl將sysusages的書(shū)面副本與新聯(lián)機(jī)版本比較l將sysdatabase的書(shū)面副本與新聯(lián)機(jī)版本比較l在每個(gè)數(shù)據(jù)庫(kù)上運(yùn)行dbcccheckallocl檢查每個(gè)數(shù)據(jù)庫(kù)中重要的表完全恢復(fù)master數(shù)據(jù)庫(kù)并運(yùn)行全部的dbcc完整性檢查后,使用常規(guī)轉(zhuǎn)儲(chǔ)命令備份此數(shù)據(jù)庫(kù)。5不小心直接刪除了日志的設(shè)備文件,如何恢復(fù)數(shù)據(jù)庫(kù)?首先,應(yīng)盡可能從操作系統(tǒng)中恢復(fù)被誤刪除的設(shè)備文件;如果不能恢復(fù),可創(chuàng)建一個(gè)和被刪除設(shè)備文件大小相同的新設(shè)備文件,然后運(yùn)行dbccrebuild_log。下面給出一個(gè)具體的測(cè)試用例:-創(chuàng)建測(cè)

24、試數(shù)據(jù)庫(kù)testusemastergodiskinitname=test_dat_dev,physname=/opt/sybase/data/test_dat_dev.dat,size=50Mgoinitdiskname=test_log1_dev,physname=/opt/sybase/data/test_log_dev1.dat,size=10Mgodiskinitname=test_log2_dev,physname=/opt/sybase/data/test_log_dev2.dat,size=10Mgocreatedatabasetestontest_dat_dev=40Mlogo

25、ntest_log1_dev=5M,test_log2_dev=2Mgo-產(chǎn)生一些日志usetestgocreatetabletest(idintnotnull,namechar(20)notnull)goinsertintotestvalues(1,aaaaaaa)insertintotestvalues(2,bbbbbbb)insertintotestvalues(3,ccccccc)insertintotestvalues(4,ddddddd)go6sa密碼忘記了導(dǎo)致isql-Usa-P*進(jìn)不去怎么辦?1、在sybase目錄的install子目錄的啟動(dòng)server文件RUN_server

26、名,編輯該文件,在末尾增加-psa,保存該文件。2、如果服務(wù)器已經(jīng)啟動(dòng),先停止之。3、執(zhí)行第1步批處理文件以啟動(dòng)server,在啟動(dòng)最后顯示信息出現(xiàn)sa的新口令,記錄之。4、切換到SQLAdvangtage以sa帳號(hào)登錄,口令為新記錄之口令。5、進(jìn)入server以后,用命令sp_password修改sa口令,sp_password原密碼,新密碼,用戶(hù)名新密碼的位數(shù)一定要大于6位,否則不能夠更改成功。6、回到第1步,去掉增加的選項(xiàng)-psa,保存退出。7.關(guān)于sybase的配(據(jù)庫(kù)慢的請(qǐng)留意)說(shuō)明:數(shù)據(jù)庫(kù)性能慢的主要原因有兩個(gè)1)數(shù)據(jù)庫(kù)服務(wù)配置不合理2)應(yīng)用程序不合理遇到數(shù)據(jù)庫(kù)性能下降時(shí)通常先檢查

27、數(shù)據(jù)庫(kù)服務(wù)配置方面有沒(méi)有可以改善的,修改之后再觀(guān)察一段時(shí)間,如果性能沒(méi)有改善的話(huà)就要分析應(yīng)用程序上有沒(méi)有可以調(diào)整的地方:索引是否合理,sql語(yǔ)句是否優(yōu)化等。本篇主要分析數(shù)據(jù)庫(kù)服務(wù)的配置:?jiǎn)栴}分析:小型機(jī)硬件:rp2470雙機(jī)、CPU700M*2、內(nèi)存512M*6以下是現(xiàn)場(chǎng)發(fā)過(guò)來(lái)的主要配置情況:lockschemedatapages/datapages鎖模式是性能最差的鎖,一般不用numberoflocks300000/通常不需要配置太多的鎖10萬(wàn)就夠了maxmemory500000物理內(nèi)存3G,配給sybase的為1G明顯不合理(內(nèi)存*1024*1024*0.5*60%)numberofope

28、nindexes4000/通常2000numberofopenobjects4000/通常2000numberofuserconnections300/numberofworkerprocesses0多cpu要打開(kāi)相應(yīng)工作進(jìn)程數(shù)procedurecachesize154800存儲(chǔ)過(guò)程緩存不要超過(guò)100Mtotaldatacachesize453699/明顯該值太小allocatemaxsharedmemory0打開(kāi)sybase占用內(nèi)存的開(kāi)關(guān)maxonlineengines2numberofenginesatstartup2問(wèn)題處理:建議先調(diào)整以下配置sp_configuremaxmemory,

29、1150000/sybase占用2.3G內(nèi)存sp_configureallocatemaxsharedmemory,1/用戶(hù)日志緩存用來(lái)緩存客戶(hù)段信息sp_configureuserlogcachesize,4096sp_configureprocedurecachesize,50000100M存儲(chǔ)過(guò)程緩存sp_configurenumberofworkerprocesses,2備份sybase主目錄下的*.cfgsp_cacheconfigdefaultdatacache,1G配置缺省數(shù)據(jù)緩存1Gsp_cacheconfigdefaultdatacache,cache_partition=2

30、rebootsybase月服務(wù)備份sybase主目錄下的*.cfgsp_cacheconfigtempdb_cache,400M/由于內(nèi)存較充裕,通常會(huì)分配一部分內(nèi)存給tempdb,提高查詢(xún)的速度sp_bindcachetempdb_cache,tempdb綁定400M的內(nèi)存給tempdbrebootsybase月服務(wù)上述操作如無(wú)法啟動(dòng)sybase月服務(wù)則可以將備份的*.cfg替換當(dāng)前的配置文件,重新bootsybase服務(wù)sybase11.9.2&12.0&早期版本的配置通常為以下幾項(xiàng):totalmemory定義sybase月服務(wù)能夠使用的物理內(nèi)存numberoflock/定義鎖的數(shù)目num

31、berofopendatabase/打開(kāi)的數(shù)據(jù)庫(kù)個(gè)數(shù),缺省是12個(gè),數(shù)據(jù)庫(kù)數(shù)目超過(guò)12個(gè)時(shí)要調(diào)整該值numberofdevices/數(shù)據(jù)庫(kù)的設(shè)備數(shù),缺省是10,通常是不夠的,需要調(diào)整numberofuserconnections/用戶(hù)連接數(shù),根據(jù)需要設(shè)置,通常一個(gè)用戶(hù)數(shù)消耗100K的內(nèi)存這個(gè)版本的數(shù)據(jù)庫(kù)緩存、日志緩存、過(guò)程緩存是不用手工配置的userlogcachesizesybase12.5版本的配置通常為以下幾項(xiàng):lockscheme鎖模式,sybase推薦使用缺省(allpages),但是一些并發(fā)操作多的表(temp_telebill)要使用行鎖(datarows),減少被鎖現(xiàn)象numb

32、eroflocks/通常不需要配置太多的鎖10萬(wàn)就夠了maxmemory/sybase服務(wù)能夠使用的物理內(nèi)存,通常配置成物理內(nèi)存的70%80%,上例內(nèi)存是3G,配給sybase的為1G明顯不合理allocatemaxsharedmemory打開(kāi)sybase占用內(nèi)存的開(kāi)關(guān)numberofopenindexes/通常2000,該值配置過(guò)低時(shí)會(huì)在日志中報(bào)該值不夠,最終導(dǎo)致性能緩慢numberofopenobjects/通常2000,該值配置過(guò)低時(shí)會(huì)在日志中報(bào)該值不夠,最終導(dǎo)致性能緩慢numberofuserconnections/用戶(hù)連接數(shù),根據(jù)實(shí)際需求來(lái)配置,盲目多配會(huì)浪費(fèi)內(nèi)存procedurec

33、achesize存儲(chǔ)過(guò)程緩存不要超過(guò)100M,用來(lái)緩存過(guò)程的編譯代碼。numberofopendatabase/打開(kāi)的數(shù)據(jù)庫(kù)個(gè)數(shù),缺省是12個(gè),數(shù)據(jù)庫(kù)數(shù)目超過(guò)12個(gè)時(shí)要調(diào)整該值numberofdevices/數(shù)據(jù)庫(kù)的設(shè)備數(shù),缺省是10,通常是不夠的,需要調(diào)整/日志緩存用來(lái)保留客戶(hù)端連接信息的,每個(gè)連接都會(huì)生成個(gè)userlogcachesize大小的cache,該值缺省為2K,主機(jī)內(nèi)存充裕時(shí)可以配成4K。在12.5及以后的版本中都要手工的配置defaultdatacache,缺省為8M,幾乎所有的用戶(hù)操作都是在這個(gè)緩存中進(jìn)行的,如果不優(yōu)化的話(huà)嚴(yán)重影響數(shù)據(jù)庫(kù)性能。優(yōu)化的方法是把盡可能多的內(nèi)存配置給

34、defaultdatacache,即:maxmemory-所有其他內(nèi)存消耗(用戶(hù)數(shù),鎖數(shù)等)-少許預(yù)留內(nèi)存二defaultdatacache。sp_cacheconfigdefaultdatacache,1G配置缺省數(shù)據(jù)緩存1Gsp_cacheconfigdefaultdatacache,cache_partition=2關(guān)于卬u的配置maxonlineengines/sybase使用的卬u的個(gè)數(shù)numberofenginesatstartup激活cpu的個(gè)數(shù)numberofworkerprocesses多卬u要打開(kāi)相應(yīng)工作進(jìn)程數(shù)8設(shè)備路徑更改的方法關(guān)閉服務(wù)設(shè)為單用戶(hù)模式C:SybaseASE

35、-12_5installRUNianxin.bat加上-m修改設(shè)備路徑isql-Usa-P-Sjianxin(服務(wù)名)usermastergoselect*fromsysdevicesgoupdatesysdevicessetphyname=新的路徑wherename二更改的設(shè)備名go逐個(gè)修改將C:SybaseASE-12_5installRUN_jianxin.bat加上-m的-m去掉9dump文件load后數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)不了解決辦法原因:userid不對(duì)應(yīng)1連接master,查看syslogins的suid查看sysusers的suidsysusers的suid要與syslogins的suid

36、對(duì)應(yīng)使用命令sp_configureallowupdates,1go進(jìn)行修改,改完后執(zhí)行sp_configureallowupdates,0go10sybase數(shù)據(jù)庫(kù)備份方案在實(shí)際應(yīng)用中,我們總結(jié)出了兩種全量備份方案:、使用Sybase的backupserver(備份服務(wù)器),做dump備份轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)(dumpdatabase),就是為整個(gè)數(shù)據(jù)庫(kù)(包括數(shù)據(jù)、表結(jié)構(gòu)、觸發(fā)器、游標(biāo)、存儲(chǔ)過(guò)程、事務(wù)日志等)做一次物理備份。轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)時(shí),系統(tǒng)自動(dòng)執(zhí)行一次checkpoint,即將日志和數(shù)據(jù)從緩沖區(qū)拷貝到硬盤(pán)(只拷貝臟頁(yè)),把已被分配的頁(yè)(日志和數(shù)據(jù))轉(zhuǎn)儲(chǔ)到設(shè)備。命令格式為:dumpdatabase數(shù)據(jù)

37、庫(kù)名to設(shè)備文件名with參數(shù)如果備份到硬盤(pán)的文件上,可以不預(yù)先估算備份文件的大小,只要硬盤(pán)有足夠的存儲(chǔ)空間就可以。如果是備份到dds磁帶上,那么就要估算一下備份后的大小,90米的dds磁帶壓縮存儲(chǔ)空間為4g,120米的磁帶壓縮存儲(chǔ)空間為8g,如果數(shù)據(jù)庫(kù)的備份文件超過(guò)了這個(gè)尺寸,就要考慮多文件轉(zhuǎn)儲(chǔ),使用stripe參數(shù)。命令格式為:dumpdatabase數(shù)據(jù)庫(kù)名to設(shè)備文件名1stripeon設(shè)備文件名2stripeon設(shè)備文件名3with參數(shù)這種數(shù)據(jù)備份方式是將整個(gè)數(shù)據(jù)庫(kù)的運(yùn)行環(huán)境完整的復(fù)制一份,包括數(shù)據(jù)庫(kù)的臟頁(yè)和碎片,在使用load命令恢復(fù)時(shí),只能恢復(fù)到同樣大小的數(shù)據(jù)庫(kù)中(數(shù)據(jù)和日志的大

38、小都只能和原來(lái)完全一致),適用于在每天的日終營(yíng)業(yè)網(wǎng)點(diǎn)下班后的日常備份。優(yōu)點(diǎn)是數(shù)據(jù)庫(kù)完整無(wú)誤,缺點(diǎn)是不能直接查看備份內(nèi)容。二、分?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)記錄做兩次備份在一般情況下,生產(chǎn)機(jī)的數(shù)據(jù)庫(kù)都比較龐大,而實(shí)驗(yàn)機(jī)則相對(duì)較小,難以在實(shí)驗(yàn)環(huán)境中以load命令恢復(fù)工作機(jī)的內(nèi)容。所以,在工作實(shí)踐中,我們摸索出了第二種全量備份方案。1、數(shù)據(jù)結(jié)構(gòu)備份在windows平臺(tái)的Sybasesqlservermanager(數(shù)據(jù)庫(kù)管理)平臺(tái)中選擇serveragenerateddl則產(chǎn)生整個(gè)數(shù)據(jù)庫(kù)服務(wù)器的所有信息如果選擇databaseagenerateddl則產(chǎn)生所選定數(shù)據(jù)庫(kù)的信息,以master庫(kù)為例,產(chǎn)生的文件主要包

39、括:config.ddl(配置)、devices.ddl(設(shè)備)、database.ddl(數(shù)據(jù)庫(kù))、logins.ddl(用戶(hù))、remote.ddl(遠(yuǎn)程)、cache.ddl(緩沖)、segment.ddl()、group.ddl(用戶(hù)組)、user.ddl(用戶(hù))、default.ddl(確?。?、rule.ddl(規(guī)則)、udt.ddl、table.ddl(表)、view.ddl(視圖)、proc.ddl(存儲(chǔ)過(guò)程)、triger.ddl(觸發(fā)器)。2、數(shù)據(jù)記錄備份將數(shù)據(jù)庫(kù)各表以sybase自代的bcp(bulkcopy)工具的方式導(dǎo)成一定格式的文本文件,命令格式:bcp表名out路徑

40、名文件名-c-t分隔符-u(用戶(hù)名)-p(密碼)-s(服務(wù)器名)如果將一個(gè)數(shù)據(jù)庫(kù)中的所有表都做一個(gè)bcp備份,就需要針對(duì)每一個(gè)表都做一次bcp,在一般情況下,一個(gè)數(shù)據(jù)庫(kù)有100多個(gè)表,工作量比較大。可以利用數(shù)據(jù)庫(kù)中的系統(tǒng)表信息做一個(gè)bcp備份腳本。原理是每一個(gè)用戶(hù)表在系統(tǒng)表中都有信息記載,可以通過(guò)isql語(yǔ)句查詢(xún)得到?,F(xiàn)舉一例說(shuō)明:1)、先編輯一個(gè)名為mkbcpout.sql的文件,內(nèi)容如下:selectechobcp+name+out+bcp+name+out./+name+.table-c-t|-uuser-ppassword-sserverfromsysobjectswheretype二

41、ugo2)、執(zhí)行isql命令,以此文件作為輸入,執(zhí)行結(jié)果輸出到另外一個(gè)文件里:isql-uuser-ppassword-sserver-imkbcpout.sql-obcpout3)、對(duì)bcppout文件稍微修改,增加可執(zhí)行權(quán)限chmod+xbcpout4)、執(zhí)行bcpout,導(dǎo)出數(shù)據(jù)文本./bcpout3、數(shù)據(jù)庫(kù)恢復(fù)業(yè)務(wù)生產(chǎn)機(jī)可能為小型機(jī),而實(shí)驗(yàn)開(kāi)發(fā)環(huán)境的硬件環(huán)境為pcserver,安裝好winnt或scounix下的sybase月服務(wù)器后,根據(jù)需要?jiǎng)?chuàng)建空間足夠大的數(shù)據(jù)庫(kù)和tempdb(系統(tǒng)臨時(shí)數(shù)據(jù)庫(kù)),創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù),并將其更改為此數(shù)據(jù)庫(kù)的所有者,要注意兩點(diǎn):1)此數(shù)據(jù)庫(kù)允許bcp拷貝,2

42、)此數(shù)據(jù)庫(kù)自動(dòng)清除log。命令格式為:1sp_dboptiondatabasedbname,selectinto/bulkcopy,true2go1sp_dboptiondatabasename,trunclogonchkpt,true2go上述兩個(gè)配置可能與生產(chǎn)機(jī)的配置不同。然后以新創(chuàng)建的數(shù)據(jù)庫(kù)用戶(hù)登錄,導(dǎo)入數(shù)據(jù)結(jié)構(gòu),注意要首先導(dǎo)入表結(jié)構(gòu),然后才是存儲(chǔ)過(guò)程、觸發(fā)器等等。命令格式:1、isql-uusername-ppassword-itable.ddl-oerror.log.table2、c為了提高bcp導(dǎo)入數(shù)據(jù)的速度,需要將比較大的表的索引和主鍵刪除,否則的話(huà),每bcp進(jìn)一條數(shù)據(jù),數(shù)據(jù)庫(kù)都自動(dòng)寫(xiě)一條log日志,記載此數(shù)據(jù)的上一條和下一條記錄,確定本記錄在此表中的準(zhǔn)確位置,一是影響bcp速度,二是數(shù)據(jù)庫(kù)的log飛速膨脹。數(shù)據(jù)庫(kù)的自動(dòng)清除log功能只有在一個(gè)事務(wù)結(jié)束后才起作用。準(zhǔn)備工作做完后,開(kāi)始倒入數(shù)據(jù)記錄。使用類(lèi)似做bcpout的方法做一個(gè)bcpin的腳本,然后執(zhí)行:./bcpin|teeerror.bcpin使用tee管道輸出的目的是讓計(jì)算機(jī)完整記錄下倒入過(guò)程,自動(dòng)存入error.bcpin文件中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論