版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
SYBASE數(shù)據(jù)庫常見問題總結(jié)SYBASE數(shù)據(jù)庫常見問題總結(jié) 11.SYSLOGS日志滿了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng) 12.數(shù)據(jù)庫日志損壞時(shí)重建日志啟動(dòng)數(shù)據(jù)庫的解決辦法 23.數(shù)據(jù)庫處于可疑狀態(tài)的解決方法 34.Sybase系統(tǒng)崩潰了,沒有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫? 55.不小心直接刪除了日志的設(shè)備文件,如何恢復(fù)數(shù)據(jù)庫? 76.sa密碼忘記了導(dǎo)致isql-Usa-P******進(jìn)不去怎么辦? 87.關(guān)于sybase的配置-(數(shù)據(jù)庫慢的請留意) 88.設(shè)備路徑更改的方法 109.dump文件load后數(shù)據(jù)庫訪問不了解決辦法 1110.sybase數(shù)據(jù)庫備份方案 1111.master數(shù)據(jù)庫狀態(tài)被置為-32768后的處理方法 141.SYSLOGS日志滿了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng)業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫不能正常啟動(dòng),對于這一類問題,我們按照如下步驟解決:第一步,啟用allowupdatestosystemtables,這樣可以使具有系統(tǒng)管理員角色的用戶能夠改變系統(tǒng)表并可創(chuàng)建和修改系統(tǒng)表的存儲(chǔ)過程,其中系統(tǒng)表包括master數(shù)據(jù)庫中所有Sybase提供的表以及用戶數(shù)據(jù)庫中所有以“sys”開頭的表和在sysobjects表中其ID值小于或等于100的表。系統(tǒng)表的不正確變更會(huì)導(dǎo)致數(shù)據(jù)庫損壞和數(shù)據(jù)丟失,修改系統(tǒng)表時(shí)務(wù)必要使用begintransaction來保護(hù)數(shù)據(jù)庫不受可能損壞數(shù)據(jù)庫的錯(cuò)誤影響,完成修改后應(yīng)立即禁用allowupdatestosystemtables。1>sp_configure"allowupdate",12>go第二步,AdaptiveServer中的每個(gè)數(shù)據(jù)庫在sysdatabases中都有相應(yīng)的一行,安裝AdaptiveServer后,master數(shù)據(jù)庫、model數(shù)據(jù)庫、sybsystemprocs和tempdb數(shù)據(jù)庫在sysdatabases中都將有相應(yīng)的條目,如果已經(jīng)安裝審計(jì)功能,sybsecurity數(shù)據(jù)庫也將在其中有相應(yīng)的條目。修改sysdatabases表,將testdb的狀態(tài)修改為-32768,然后在關(guān)閉AdaptiveServer后重新啟動(dòng)AdaptiveServer。1>updatesysdatabasessetstatus=-32768wherename="testdb"2>goshutdowngo第三步,由于事務(wù)日志已經(jīng)很滿,不能使用常規(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都將在AdaptiveServer錯(cuò)誤日志中進(jìn)行報(bào)告,這些消息包括執(zhí)行此命令的用戶ID、指示成功或失敗的消息,no_log是唯一生成錯(cuò)誤日志消息的轉(zhuǎn)儲(chǔ)選項(xiàng)。但是這個(gè)選項(xiàng)(包括withtruncate_only)沒有提供任何方法可恢復(fù)自從上次例行轉(zhuǎn)儲(chǔ)后提交的事務(wù)。usetestdbgodumptrantestdbwithno_loggo第四步,修改sysdatabases表,將testdb的狀態(tài)恢復(fù)為0,然后禁用allowupdatestosystemtables。usemastergoupdatesysdatabasessetstatus=0wherename="testdb"gosp_configure"allowupdate",0go2.數(shù)據(jù)庫日志損壞時(shí)重建日志啟動(dòng)數(shù)據(jù)庫的解決辦法首先判斷錯(cuò)誤為頁損壞或者索引損壞,根據(jù)AdaptiveServerfailedtoretrievearowviaitsRIDindatabase'escourt5'becausetherequestedRIDhasahighernumberthanthelastRIDonthepage.Ridpageid=0x1c88a8;rownum=0x27.Pagepointer=0x261CA000,pageno=1869992,status=0x1,objectid=8判斷其中:objectid=8表示日志段有問題解決方法一:截?cái)嗳罩鞠劝裺ysdatabases的status修改成-32768然后重新啟動(dòng)數(shù)據(jù)庫1>updatesysdatabasessetstatus=-32768wherename="escourt5"4>go登陸數(shù)據(jù)庫1>dumptransactionescourt5withtruncate_only2>goMsg921,Level14,State1:Line1:Database'escourt5'hasnotbeenrecoveredyet-pleasewaitandtryagain.1>dumptransactionescourt5withno_log2>goMsg921,Level14,State1:4.Sybase系統(tǒng)崩潰了,沒有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫?有的時(shí)候,系統(tǒng)崩潰了,手上也沒有數(shù)據(jù)庫的備份或者是備份太舊了,但僥幸的是設(shè)備還在,并且是完整的,這時(shí)可以通過文件COPY的方式恢復(fù)數(shù)據(jù)庫。情況一、所有設(shè)備,包括master,均是完整的:這種情況是最簡單的,只需要先備份設(shè)備文件(包括master,copy到安全的地方),然后重新安裝系統(tǒng),建服務(wù)(保持頁面大小、編碼和排序與以前一樣),然后停止服務(wù),按原目錄將所有設(shè)備文件拷貝回來,再重啟服務(wù)即可。新建的服務(wù)名可與舊服務(wù)不同。建議把服務(wù)名.cfg也復(fù)制過來,省掉參數(shù)配置。情況二、應(yīng)用的設(shè)備是完整的,但沒有master了:方法一、這種情況下要恢復(fù)數(shù)據(jù)庫就需要原來的設(shè)備使用情況表了。重新安裝系統(tǒng),建服務(wù),然后按原設(shè)備情況建設(shè)備(大小、位置保持和原來一致),接下來根據(jù)記錄下來的設(shè)備使用情況建庫,順序以及占用的空間要和以前的一致。然后停服務(wù),將應(yīng)用的數(shù)據(jù)庫設(shè)備復(fù)制回來,重啟服務(wù)即可。請參考SybaseASE系統(tǒng)管理員日常維護(hù)指南的建議,定期備份master數(shù)據(jù)庫。方法二、重新創(chuàng)建master設(shè)備本實(shí)驗(yàn)描述了如何在master數(shù)據(jù)庫毀壞的情況下,如何重建主設(shè)備,恢復(fù)master數(shù)據(jù)庫,得以重新恢復(fù)系統(tǒng)。這里假定:lMaster數(shù)據(jù)庫已損壞,或主設(shè)備已損壞。l有系統(tǒng)表的最新打印輸出。l主設(shè)備只包括master數(shù)據(jù)庫、tempdb和modell有master數(shù)據(jù)庫的最新備份,且上次轉(zhuǎn)儲(chǔ)master數(shù)據(jù)庫后沒有初始化任何設(shè)備或創(chuàng)建、變更任何數(shù)據(jù)庫。關(guān)于恢復(fù)過程l將主設(shè)備重建為第一次安裝服務(wù)器時(shí)的缺省狀態(tài);l將master數(shù)據(jù)庫恢復(fù)為缺省狀態(tài);l將master數(shù)據(jù)庫恢復(fù)為上次備份時(shí)的狀態(tài);注意:在恢復(fù)master數(shù)據(jù)庫的早期階段,不能使用系統(tǒng)存儲(chǔ)過程。恢復(fù)步驟步驟1:查找系統(tǒng)表查找已保存到文件的系統(tǒng)表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用這些副本可以保證在此過程結(jié)束時(shí)系統(tǒng)已經(jīng)全部恢復(fù)。步驟2:建立新的主設(shè)備如果AdaptiveServer正在運(yùn)行,關(guān)閉它,然后重建主設(shè)備。重建主設(shè)備時(shí),必須指定設(shè)備大小。開始重建前,記住以下幾點(diǎn):l保留舊設(shè)備,以防遇到問題,舊設(shè)備可提供至關(guān)重要的信息。l使用buildmaster命令之前應(yīng)關(guān)閉AdaptiveServer。l不同操作系統(tǒng)上創(chuàng)建主設(shè)備的命令有所不同,如:buildmast(unix)、bldmaster(windowsNT),并安裝通用master數(shù)據(jù)庫的副本。l命令中給出主設(shè)備的全名和大小。示例:重建一個(gè)30兆(15360個(gè)2k的頁)在WindowNT上:bldmastr-dd:\devices\master.dat–s15360步驟3:以主恢復(fù)方式啟動(dòng)AdaptiveServer使用-m選項(xiàng)以主恢復(fù)方式啟動(dòng)AdaptiveServer。在WindowNT上,使用sqlsrvr命令從命令行啟動(dòng)AadaptiveServer。Sqlsrvr.exe–d:\devices\master.dat–sserver_name–ed:\sybase\install\errorlog–id:\sybase\ini–MD:\sybase–m說明:以主恢復(fù)方式啟動(dòng)AdaptiveServer時(shí),只允許一個(gè)用戶(系統(tǒng)管理員)登錄。步驟4:重建master的設(shè)備分配檢查sysusages系統(tǒng)表的書面副本,如果有多行dbid=1的記錄,則需要增加master的大小以便裝載轉(zhuǎn)儲(chǔ)。最簡單情況下,對master進(jìn)行額外分配只需要使用alterdatabase即可。復(fù)雜情況,必須為其它數(shù)據(jù)庫分配空間,以便重新構(gòu)造恢復(fù)master所需的正確的vstart值。示例:alterdatbasemasteronmaster=2步驟5:檢查BackupServer和sysservers系統(tǒng)表信息。使用空口令以“sa“用戶登錄服務(wù)器(如果BackupServer的網(wǎng)絡(luò)名不是SYB_BACKUP,則必須更新sysservers以便AdaptiveServer可以與其BackupServer通信)。l檢查interfaces文件中BackupServer的名稱;l并發(fā)出下面的命令:select*fromsysserverswheresrvname=”SYB_BACKUP”l檢查此命令中輸出結(jié)果的srvnetname。是否與服務(wù)器的backupServer的interfaces文件條目匹配,若匹配跳過步驟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平臺上,本地安裝的SybaseCentral和服務(wù)管理器可以顯示BackupServer是否正在運(yùn)行。步驟7:裝載master數(shù)據(jù)庫的備份在WindowNT上:loaddatabasemasterfrom“d:\device\master.bck”在loaddatabase成功完成后,AdaptiveServer將關(guān)閉。步驟8:更新numberofdevices配置參數(shù)僅當(dāng)使用的數(shù)據(jù)庫設(shè)備比缺省值多時(shí)才執(zhí)行此步驟。步驟9:以主恢復(fù)方式方式重新啟動(dòng)AdaptiveServerSqlsrvr.exe–d:\devices\master.dat–sserver_name–ed:\sybase\install\errorlog–id:\sybase\ini–MD:\sybase–m注意:裝載master的備份將使“sa”帳號恢復(fù)到以前的狀態(tài)。如果sa帳號有口令,則口令恢復(fù)。步驟10:檢查系統(tǒng)表以檢驗(yàn)master的當(dāng)前備份l如果發(fā)出最新的diskinit、createdatabase或alterdatabase命令以后已備份了master數(shù)據(jù)庫,則sysusages、sysdatabases、和sysdevice的內(nèi)容將與書面副本匹配。l如果副本中的任何設(shè)備未包含在已恢復(fù)的sysdevices中,則上次備份以后已添加了設(shè)備,必須運(yùn)行diskreinit和diskrefit。步驟11:重新啟動(dòng)AdaptiveServer以常規(guī)(多用戶)模式重新啟動(dòng)AdaptiveServer步驟12:檢查Adaptiveserverl將sysusages的書面副本與新聯(lián)機(jī)版本比較l將sysdatabase的書面副本與新聯(lián)機(jī)版本比較l在每個(gè)數(shù)據(jù)庫上運(yùn)行dbcccheckallocl檢查每個(gè)數(shù)據(jù)庫中重要的表完全恢復(fù)master數(shù)據(jù)庫并運(yùn)行全部的dbcc完整性檢查后,使用常規(guī)轉(zhuǎn)儲(chǔ)命令備份此數(shù)據(jù)庫。5.不小心直接刪除了日志的設(shè)備文件,如何恢復(fù)數(shù)據(jù)庫?首先,應(yīng)盡可能從操作系統(tǒng)中恢復(fù)被誤刪除的設(shè)備文件;如果不能恢復(fù),可創(chuàng)建一個(gè)和被刪除設(shè)備文件大小相同的新設(shè)備文件,然后運(yùn)行dbccrebuild_log。下面給出一個(gè)具體的測試用例:--創(chuàng)建測試數(shù)據(jù)庫testusemastergodiskinitname='test_dat_dev',physname='/opt/sybase/data/test_dat_dev.dat',size='50M'godiskinitname='test_log1_dev',physname='/opt/sybase/data/test_log_dev1.dat',size='10M'godiskinitname='test_log2_dev',physname='/opt/sybase/data/test_log_dev2.dat',size='10M'gocreatedatabasetestontest_dat_dev='40M'logontest_log1_dev='5M',test_log2_dev='2M'go--產(chǎn)生一些日志usetestgocreatetabletest(idintnotnull,namechar(20)notnull)goinsertintotestvalues(1,'aaaaaaa')insertintotestvalues(2,'bbbbbbb')insertintotestvalues(3,'ccccccc')insertintotestvalues(4,'ddddddd')go6.sa密碼忘記了導(dǎo)致isql-Usa-P******進(jìn)不去怎么辦?1、在sybase目錄的install子目錄的啟動(dòng)server文件RUN_server名,編輯該文件,在末尾增加-psa,保存該文件。2、如果服務(wù)器已經(jīng)啟動(dòng),先停止之。3、執(zhí)行第1步批處理文件以啟動(dòng)server,在啟動(dòng)最后顯示信息出現(xiàn)sa的新口令,記錄之。4、切換到SQLAdvangtage以sa帳號登錄,口令為新記錄之口令。5、進(jìn)入server以后,用命令sp_password修改sa口令,sp_password'原密碼','新密碼','用戶名'新密碼的位數(shù)一定要大于6位,否則不能夠更改成功。6、回到第1步,去掉增加的選項(xiàng)-psa,保存退出。7.關(guān)于sybase的配置-(數(shù)據(jù)庫慢的請留意)說明:數(shù)據(jù)庫性能慢的主要原因有兩個(gè)1)數(shù)據(jù)庫服務(wù)配置不合理2)應(yīng)用程序不合理遇到數(shù)據(jù)庫性能下降時(shí)通常先檢查數(shù)據(jù)庫服務(wù)配置方面有沒有可以改善的,修改之后再觀察一段時(shí)間,如果性能沒有改善的話就要分析應(yīng)用程序上有沒有可以調(diào)整的地方:索引是否合理,sql語句是否優(yōu)化等。本篇主要分析數(shù)據(jù)庫服務(wù)的配置:問題分析:小型機(jī)硬件:rp2470雙機(jī)、CPU700M*2、內(nèi)存512M*6以下是現(xiàn)場發(fā)過來的主要配置情況:lockschemedatapages//datapages鎖模式是性能最差的鎖,一般不用numberoflocks300000//通常不需要配置太多的鎖10萬就夠了maxmemory500000//物理內(nèi)存3G,配給sybase的為1G明顯不合理(內(nèi)存*1024*1024*0.5*60%)numberofopenindexes4000//通常2000numberofopenobjects4000//通常2000numberofuserconnections300//numberofworkerprocesses0//多cpu要打開相應(yīng)工作進(jìn)程數(shù)procedurecachesize154800//存儲(chǔ)過程緩存不要超過100Mtotaldatacachesize453699//明顯該值太小allocatemaxsharedmemory0//打開sybase占用內(nèi)存的開關(guān)maxonlineengines2numberofenginesatstartup2問題處理:建議先調(diào)整以下配置sp_configure"maxmemory",1150000//sybase占用2.3G內(nèi)存sp_configure"allocatemaxsharedmemory",1sp_configure"userlogcachesize",4096//用戶日志緩存用來緩存客戶段信息sp_configure"procedurecachesize",50000//100M存儲(chǔ)過程緩存sp_configure"numberofworkerprocesses",2備份sybase主目錄下的***.cfgsp_cacheconfig"defaultdatacache","1G"http://配置缺省數(shù)據(jù)緩存1Gsp_cacheconfig"defaultdatacache","cache_partition=2"rebootsybase服務(wù)備份sybase主目錄下的***.cfgsp_cacheconfig"tempdb_cache","400M"http://由于內(nèi)存較充裕,通常會(huì)分配一部分內(nèi)存給tempdb,提高查詢的速度sp_bindcache"tempdb_cache","tempdb"http://綁定400M的內(nèi)存給tempdbrebootsybase服務(wù)上述操作如無法啟動(dòng)sybase服務(wù)則可以將備份的***.cfg替換當(dāng)前的配置文件,重新bootsybase服務(wù)總結(jié):sybase11.9.2&12.0&早期版本的配置通常為以下幾項(xiàng):totalmemory//定義sybase服務(wù)能夠使用的物理內(nèi)存numberoflock//定義鎖的數(shù)目numberofopendatabase//打開的數(shù)據(jù)庫個(gè)數(shù),缺省是12個(gè),數(shù)據(jù)庫數(shù)目超過12個(gè)時(shí)要調(diào)整該值numberofdevices//數(shù)據(jù)庫的設(shè)備數(shù),缺省是10,通常是不夠的,需要調(diào)整numberofuserconnections//用戶連接數(shù),根據(jù)需要設(shè)置,通常一個(gè)用戶數(shù)消耗100K的內(nèi)存這個(gè)版本的數(shù)據(jù)庫緩存、日志緩存、過程緩存是不用手工配置的sybase12.5版本的配置通常為以下幾項(xiàng):lockscheme//鎖模式,sybase推薦使用缺?。╝llpages),但是一些并發(fā)操作多的表(temp_telebill)要使用行鎖(datarows),減少被鎖現(xiàn)象numberoflocks//通常不需要配置太多的鎖10萬就夠了maxmemory//sybase服務(wù)能夠使用的物理內(nèi)存,通常配置成物理內(nèi)存的70%~80%,上例內(nèi)存是3G,配給sybase的為1G明顯不合理allocatemaxsharedmemory//打開sybase占用內(nèi)存的開關(guān)numberofopenindexes//通常2000,該值配置過低時(shí)會(huì)在日志中報(bào)該值不夠,最終導(dǎo)致性能緩慢numberofopenobjects//通常2000,該值配置過低時(shí)會(huì)在日志中報(bào)該值不夠,最終導(dǎo)致性能緩慢numberofuserconnections//用戶連接數(shù),根據(jù)實(shí)際需求來配置,盲目多配會(huì)浪費(fèi)內(nèi)存procedurecachesize//存儲(chǔ)過程緩存不要超過100M,用來緩存過程的編譯代碼。numberofopendatabase//打開的數(shù)據(jù)庫個(gè)數(shù),缺省是12個(gè),數(shù)據(jù)庫數(shù)目超過12個(gè)時(shí)要調(diào)整該值numberofdevices//數(shù)據(jù)庫的設(shè)備數(shù),缺省是10,通常是不夠的,需要調(diào)整userlogcachesize//日志緩存用來保留客戶端連接信息的,每個(gè)連接都會(huì)生成一個(gè)userlogcachesize大小的cache,該值缺省為2K,主機(jī)內(nèi)存充裕時(shí)可以配成4K。在12.5及以后的版本中都要手工的配置defaultdatacache,缺省為8M,幾乎所有的用戶操作都是在這個(gè)緩存中進(jìn)行的,如果不優(yōu)化的話嚴(yán)重影響數(shù)據(jù)庫性能。優(yōu)化的方法是把盡可能多的內(nèi)存配置給defaultdatacache,即:'maxmemory'-'所有其他內(nèi)存消耗(用戶數(shù),鎖數(shù)等)'-‘少許預(yù)留內(nèi)存’=defaultdatacache。sp_cacheconfig"defaultdatacache","1G"http://配置缺省數(shù)據(jù)緩存1Gsp_cacheconfig"defaultdatacache","cache_partition=2"關(guān)于cpu的配置maxonlineengines//sybase使用的cpu的個(gè)數(shù)numberofenginesatstartup//激活cpu的個(gè)數(shù)numberofworkerprocesses//多cpu要打開相應(yīng)工作進(jìn)程數(shù)8.設(shè)備路徑更改的方法1.關(guān)閉服務(wù)2.設(shè)為單用戶模式C:\Sybase\ASE-12_5\installRUN_jianxin.bat加上-m3.修改設(shè)備路徑isql-Usa-P-Sjianxin(服務(wù)名)usermastergoselect*fromsysdevicesgoupdatesysdevicessetphyname='新的路徑'wherename='更改的設(shè)備名'go4.逐個(gè)修改5.將C:\Sybase\ASE-12_5\installRUN_jianxin.bat加上-m的-m去掉9.dump文件load后數(shù)據(jù)庫訪問不了解決辦法原因:userid不對應(yīng)1.連接master,查看syslogins的suid2.查看sysusers的suid3.sysusers的suid要與syslogins的suid對應(yīng)使用命令sp_configure"allowupdates",1go進(jìn)行修改,改完后執(zhí)行sp_configure"allowupdates",0go10.sybase數(shù)據(jù)庫備份方案
在實(shí)際應(yīng)用中,我們總結(jié)出了兩種全量備份方案:
一、使用sybase的backupserver(備份服務(wù)器),做dump備份
轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(dumpdatabase),就是為整個(gè)數(shù)據(jù)庫(包括數(shù)據(jù)、表結(jié)構(gòu)、觸發(fā)器、游標(biāo)、存儲(chǔ)過程、事務(wù)日志等)做一次物理備份。轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫時(shí),系統(tǒng)自動(dòng)執(zhí)行一次checkpoint,即將日志和數(shù)據(jù)從緩沖區(qū)拷貝到硬盤(只拷貝臟頁),把已被分配的頁(日志和數(shù)據(jù))轉(zhuǎn)儲(chǔ)到設(shè)備。
命令格式為:
dumpdatabase數(shù)據(jù)庫名to設(shè)備文件名with參數(shù)
如果備份到硬盤的文件上,可以不預(yù)先估算備份文件的大小,只要硬盤有足夠的存儲(chǔ)空間就可以。如果是備份到dds磁帶上,那么就要估算一下備份后的大小,90米的dds磁帶壓縮存儲(chǔ)空間為4g,120米的磁帶壓縮存儲(chǔ)空間為8g,如果數(shù)據(jù)庫的備份文件超過了這個(gè)尺寸,就要考慮多文件轉(zhuǎn)儲(chǔ),使用stripe參數(shù)。
命令格式為:dumpdatabase數(shù)據(jù)庫名to設(shè)備文件名1
stripeon設(shè)備文件名2
stripeon設(shè)備文件名3……
with參數(shù)
這種數(shù)據(jù)備份方式是將整個(gè)數(shù)據(jù)庫的運(yùn)行環(huán)境完整的復(fù)制一份,包括數(shù)據(jù)庫的臟頁和碎片,在使用load命令恢復(fù)時(shí),只能恢復(fù)到同樣大小的數(shù)據(jù)庫中(數(shù)據(jù)和日志的大小都只能和原來完全一致),適用于在每天的日終營業(yè)網(wǎng)點(diǎn)下班后的日常備份。優(yōu)點(diǎn)是數(shù)據(jù)庫完整無誤,缺點(diǎn)是不能直接查看備份內(nèi)容。
二、分?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)記錄做兩次備份
在一般情況下,生產(chǎn)機(jī)的數(shù)據(jù)庫都比較龐大,而實(shí)驗(yàn)機(jī)則相對較小,難以在實(shí)驗(yàn)環(huán)境中以load命令恢復(fù)工作機(jī)的內(nèi)容。所以,在工作實(shí)踐中,我們摸索出了第二種全量備份方案。
1、數(shù)據(jù)結(jié)構(gòu)備份
在windows平臺的sybasesqlservermanager(數(shù)據(jù)庫管理)平臺中選擇serveràgenerateddl則產(chǎn)生整個(gè)數(shù)據(jù)庫服務(wù)器的所有信息,如果選擇databaseàgenerateddl則產(chǎn)生所選定數(shù)據(jù)庫的信息,以master庫為例,產(chǎn)生的文件主要包括:config.ddl(配置)、devices.ddl(設(shè)備)、database.ddl(數(shù)據(jù)庫)、logins.ddl(用戶)、remote.ddl(遠(yuǎn)程)、cache.ddl(緩沖)、segment.ddl()、group.ddl(用戶組)、user.ddl(用戶)、default.ddl(確?。?、rule.ddl(規(guī)則)、udt.ddl、table.ddl(表)、view.ddl(視圖)、proc.ddl(存儲(chǔ)過程)、triger.ddl(觸發(fā)器)。
2、數(shù)據(jù)記錄備份
將數(shù)據(jù)庫各表以sybase自代的bcp(bulkcopy)工具的方式導(dǎo)成一定格式的文本文件,命令格式:
bcp表名out路徑名文件名-c-t分隔符-u(用戶名)-p(密碼)-s(服務(wù)器名)
如果將一個(gè)數(shù)據(jù)庫中的所有表都做一個(gè)bcp備份,就需要針對每一個(gè)表都做一次bcp,在一般情況下,一個(gè)數(shù)據(jù)庫有100多個(gè)表,工作量比較大??梢岳脭?shù)據(jù)庫中的系統(tǒng)表信息做一個(gè)bcp備份腳本。原理是每一個(gè)用戶表在系統(tǒng)表中都有信息記載,可以通過isql語句查詢得到。現(xiàn)舉一例說明:
1)、先編輯一個(gè)名為mkbcpout.sql的文件,內(nèi)容如下:select"echobcp''"+name+"out……''
"+"bcp"+name+"out./+"name+".table-c-t''|''-uuser-ppassword-sserver"fromsysobjectswheretype=''u''
go2)、執(zhí)行isql命令,以此文件作為輸入,執(zhí)行結(jié)果輸出到另外一個(gè)文件里:isql-uuser-ppassword-sserver-imkbcpout.sql-obcpout3)、對bcppout文件稍微修改,增加可執(zhí)行權(quán)限chmod+xbcpout4)、執(zhí)行bcpout,導(dǎo)出數(shù)據(jù)文本./bcpout3、數(shù)據(jù)庫恢復(fù)
業(yè)務(wù)生產(chǎn)機(jī)可能為小型機(jī),而實(shí)驗(yàn)開發(fā)環(huán)境的硬件環(huán)境為pcserver,安裝好winnt或scounix下的sybase服務(wù)器后,根據(jù)需要?jiǎng)?chuàng)建空間足夠大的數(shù)據(jù)庫和tempdb(系統(tǒng)臨時(shí)數(shù)據(jù)庫),創(chuàng)建數(shù)據(jù)庫用戶,并將其更改為此數(shù)據(jù)庫的所有者,要注意兩點(diǎn):1)此數(shù)據(jù)庫允許bcp拷貝,2)此數(shù)據(jù)庫自動(dòng)清除log。命令格式為:
1>sp_dboptiondatabasedbname,"selectinto/bulkcopy",true
2>go
1>sp_dboptiondatabasename,"trunclogonchkpt",true
2>go
上述兩個(gè)配置可能與生產(chǎn)機(jī)的配置不同。
然后以新創(chuàng)建的數(shù)據(jù)庫用戶登錄,導(dǎo)入數(shù)據(jù)結(jié)構(gòu),注意要首先導(dǎo)入表結(jié)構(gòu),然后才是存儲(chǔ)過程、觸發(fā)器等等。命令格式:
1、isql-uusername-ppassword-itable.ddl-oerror.log.table
2、c
……
為了提高bcp導(dǎo)入數(shù)據(jù)的速度,需要將比較大的表的索引和主鍵刪除,否則的話,每bcp進(jìn)一條數(shù)據(jù),數(shù)據(jù)庫都自動(dòng)寫一條log日志,記載此數(shù)據(jù)的上一條和下一條記錄,確定本記錄在此表中的準(zhǔn)確位置,一是影響bcp速度,二是數(shù)據(jù)庫的log飛速膨脹。數(shù)據(jù)庫的自動(dòng)清除log功能只有在一個(gè)事務(wù)結(jié)束后才起作用。
準(zhǔn)備工作做完后,開始倒入數(shù)據(jù)記錄。使用類似做bcpout的方法做一個(gè)bcpin的腳本,然后執(zhí)行:
./bcpin|teeerror.bcpin
使用tee管道輸出的目的是讓計(jì)算機(jī)完整記錄下倒入過程,自動(dòng)存入error.bcpin文件中,待倒入結(jié)束后,我們只需要檢查日志文件,不需要一直緊盯著計(jì)算機(jī)屏幕。
所有工作做完之后,不要忘記重新將刪除的主鍵和索引建上。
如果有現(xiàn)成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級上冊語文教案
- 農(nóng)藥殘留土壤生物降解研究
- 高一化學(xué)教案:專題第二單元第四課時(shí)糖類
- 2024屆浙江省溫州十五校聯(lián)合體高考化學(xué)押題試卷含解析
- 2024高中化學(xué)第四章電化學(xué)基礎(chǔ)第一節(jié)原電池達(dá)標(biāo)訓(xùn)練含解析新人教版選修4
- 2024高中地理課時(shí)作業(yè)9資源的跨區(qū)域調(diào)配-以我國西氣東輸為例含解析新人教版必修3
- 2024高中語文開學(xué)第一課學(xué)生觀后感范文700字范文三篇素材
- 2024高中語文第五單元散而不亂氣脈中貫伶官傳序作業(yè)含解析新人教版選修中國古代詩歌散文欣賞
- 2024高中語文精讀課文一第3課2在動(dòng)亂中成長起來作業(yè)含解析新人教版選修中外傳記蚜
- 2024高考化學(xué)一輪復(fù)習(xí)第十章化學(xué)實(shí)驗(yàn)基礎(chǔ)第四講實(shí)驗(yàn)方案的設(shè)計(jì)與評價(jià)規(guī)范演練含解析新人教版
- 通信電子線路實(shí)驗(yàn)(通信)()
- 成功公司年度績效考核方案
- 化學(xué)品注冊評估授權(quán)和限制制度
- 《了凡四訓(xùn)》拼音版
- 特種設(shè)備安全管理人員(A)考試題庫
- JJG 537-2006熒光分光光度計(jì)
- GB/T 17684-2008貴金屬及其合金術(shù)語
- 安全管理流程圖加強(qiáng)完善版
- 第一講-研發(fā)創(chuàng)新型企業(yè)需要IPD(下)徐驥課程-
- 2020年全國質(zhì)量獎(jiǎng)現(xiàn)場匯報(bào)材料人力資源過程與課件
- 2022年08月北京外交學(xué)院非事業(yè)編科研助理招聘14人高頻考點(diǎn)卷叁(3套)答案詳解篇
評論
0/150
提交評論