




版權(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ù)常見(jiàn)問(wèn)題總結(jié)錯(cuò)誤 ! 未定義書(shū)簽。SYBASE 數(shù)據(jù)庫(kù)常見(jiàn)問(wèn)題總結(jié)1. SYSLOGS 日志滿了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng) 錯(cuò)誤 !未定義書(shū)簽。2. 數(shù)據(jù)庫(kù)日志損壞時(shí)重建日志啟動(dòng)數(shù)據(jù)庫(kù)的解決辦法 錯(cuò)誤!未定義書(shū)簽。3. 數(shù)據(jù)庫(kù)處于可疑狀態(tài)的解決方法 錯(cuò)誤!未定義書(shū)簽。4. Sybase系統(tǒng)崩潰了,沒(méi)有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫(kù)?錯(cuò)誤!未定義45不小心直接刪除了日志的設(shè)備文件,如何恢復(fù)數(shù)據(jù)庫(kù)? 錯(cuò)誤!未定義書(shū)簽。6. sa密碼忘記了導(dǎo)致isql-Usa -P*進(jìn)不去怎么辦? 錯(cuò)誤!未定義書(shū)簽。7. 關(guān)于sybase的配置(數(shù)據(jù)庫(kù)慢的請(qǐng)留意) 錯(cuò)誤!未定義書(shū)簽
2、。8設(shè)備路徑更改的方法 錯(cuò)誤!未定義書(shū)簽。9. dump 文件 load 后數(shù)據(jù)庫(kù)訪問(wèn)不了解決辦法 錯(cuò)誤! 未定義書(shū)簽。10. sybase數(shù)據(jù)庫(kù)備份方案 錯(cuò)誤!未定義書(shū)簽。 錯(cuò)誤!未定義書(shū)簽。11. master數(shù)據(jù)庫(kù)狀態(tài)被置為-32768后的處理方法1. SYSLOGS 日志滿了進(jìn)不了系統(tǒng),如何清除日志啟動(dòng)系統(tǒng)業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)不能正常啟動(dòng),對(duì)于這一類問(wèn)題,我們按照如下步驟解決:第一步,啟用allow updates to system tables ,這樣可以使具有系統(tǒng)管理員角色的用戶能夠改變系統(tǒng)表并可創(chuàng)建和修改系統(tǒng)表的存儲(chǔ)過(guò)程,其中系統(tǒng)表包括master 數(shù)據(jù)庫(kù)中所有Sybase提供的表以
3、及用戶數(shù)據(jù)庫(kù)中所有以“sys”開(kāi)頭的表和在sysobjects表中其ID值小于或等于100 的表。系統(tǒng)表的不正確變更會(huì)導(dǎo)致數(shù)據(jù)庫(kù)損壞和數(shù)據(jù)丟失,修改系統(tǒng)表時(shí)務(wù)必要使用 begin transaction 來(lái)保護(hù)數(shù)據(jù)庫(kù)不受可能損壞數(shù)據(jù)庫(kù)的錯(cuò)誤影響,完成修改后應(yīng)立即禁用allow updates to system tables。1>sp_configure "allow update",12>go第二步,Adaptive Server中的每個(gè)數(shù)據(jù)庫(kù)在sysdatabases中都有相應(yīng)的一行,安裝 AdaptiveServer 后, master 數(shù)據(jù)庫(kù)、model
4、 數(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)閉 Adaptive Server后重新啟 動(dòng) Adaptive Server 。1> update sysdatabases set status=-32768 where name = "testdb" 2>go 1> shutdown2> go第三步,由于事務(wù)日志已經(jīng)很滿,不能使用常規(guī)
5、方法轉(zhuǎn)儲(chǔ)此事務(wù)日志,如果使用了dump transaction 或 dump transaction with truncate_only 命令,而命令又由于日志空間不足失敗時(shí),可以使用dump transaction 的特殊選項(xiàng)with no_log ,此選項(xiàng)可截?cái)嗍聞?wù)日志而不記錄轉(zhuǎn)儲(chǔ)事務(wù)事件。所有dump tran with no_log 都將在 Adaptive Server 錯(cuò)誤日志中進(jìn)行報(bào)告,這些消息包括執(zhí)行此命令的用戶ID、指示成功或失敗的消息,no_log是唯一生成錯(cuò)誤日志消息的轉(zhuǎn)儲(chǔ)選項(xiàng)。但是這個(gè)選項(xiàng)(包括with truncate_only )沒(méi)有提供任何方法可恢復(fù)自從上次例行
6、轉(zhuǎn)儲(chǔ)后提交的事務(wù)。1> use testdb2> go1> dump tran testdb with no_log2> go第四步,修改 sysdatabases表,將testdb的狀態(tài)恢復(fù)為 0,然后禁用 allow updates to system tables。1> use master2> go1> update sysdatabases set status = 0 where name = "testdb"2> go1> sp_configure "allow update",02&g
7、t; go2. 數(shù)據(jù)庫(kù)日志損壞時(shí)重建日志啟動(dòng)數(shù)據(jù)庫(kù)的解決辦法首先判斷錯(cuò)誤為頁(yè)損壞或者索引損壞,根據(jù)Adaptive Server failed to retrieve a row via its RID in database 'escourt5' because the requested RID has a higher number than the last RID on the page. Rid pageid = 0x1c88a8; row num = 0x27. Page pointer = 0x261CA000, pageno = 1869992, status
8、 = 0x1, objectid = 8 , indexid = 0, level = 0.判斷其中:objectid = 8 表示日志段有問(wèn)題解決方法一:截?cái)嗳罩鞠劝裺ysdatabases白s status修改成-32768 然后重新啟動(dòng)數(shù)據(jù)庫(kù) 1>update sysdatabases set status = -32768where name = "escourt5" 4>go登陸數(shù)據(jù)庫(kù)1> dump transaction escourt5 with truncate_only2> goMsg 921, Level 14, State 1:
9、Line 1:Database 'escourt5' has not been recovered yet - please wait and try again.1> dump transaction escourt5 with no_log2> goMsg 921, Level 14, State 1:Line 1:Database 'escourt5' has not been recovered yet - please wait and try again.說(shuō)明這種發(fā)不起作用解決方法二:重做日志1> sp_role "gra
10、nt","sybase_ts_role",sa2> goAll the roles specified to be granted in the grant role statement have already been granted to grantee 'sa'.Authorization updated.(return status = 0)1> use master2> go1> dbcc rebuild_log(escourt5,1,1)2> goDBCC execution completed. If
11、DBCC printed error messages, contact a user with System Administrator (SA) role.1> shutdown with nowait2> goServer SHUTDOWN by request.The SQL Server is terminating this process.重啟服務(wù)后把status修改成0后再重啟服務(wù)。服務(wù)啟動(dòng)正常最好是通過(guò)dbcc checkdb(databasenam贛查一下數(shù)據(jù)一致性。3. 數(shù)據(jù)庫(kù)處于可疑狀態(tài)的解決方法如何解決數(shù)據(jù)庫(kù)被掛起的問(wèn)題現(xiàn)象: Error 926Sever
12、ity Level 14Error Message TextDatabase'xx'cannotbe opened- it has been markedSUSPECTbyrecoverExplanation(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ù)1>dump database master to "/usr/sybase/"2>go(3) 用 isql 登錄
13、到 SQL Server, 須用 sa 帳號(hào) (本文以 escourt5 數(shù)據(jù)庫(kù)為例)1>sp_configure "allow updates", 12>go1>begin tran2>go1>use master2>go1>update sysdatabases2>set status =-327683>Wherename="escourt5"4>go如果得到(1 row affected), 則1>commit2>go否則1>rollback2>go(4)重新啟動(dòng)S
14、QL Server.注: SQL Server 重新啟動(dòng)之后,當(dāng)發(fā)現(xiàn)數(shù)據(jù)庫(kù)本身存在不可恢復(fù)的問(wèn)題時(shí),如數(shù)據(jù)頁(yè)損壞等,且沒(méi)有完好的數(shù)據(jù)庫(kù)備份,一定要用bcp.out 備份用戶數(shù)據(jù)庫(kù)數(shù)據(jù)。此時(shí),以下步驟省略,并按照“如何刪除壞的用戶數(shù)據(jù)庫(kù)”文章刪除此數(shù)據(jù)庫(kù)。之后重建此數(shù)據(jù)庫(kù),恢復(fù)備份。否則,按以下步驟繼續(xù)操作:用 sa 帳號(hào)注冊(cè)到SQL Server.1>begin tran2>go1>use master2>go1>update sysdatabases2>set status=03>Wherename="escourt5"4>
15、go如果得到(1 row affected), 則1>commit2>go否則1>rollback2>go 1>sp_configure "allow updates" ,0 2>go(5) 重新啟動(dòng)SQL Server.(6) 如果你的數(shù)據(jù)庫(kù)原來(lái)有dboption( 例如 "select into","trunc log on chkpt" 等 ),你需要重新設(shè)置這些option.(7) 當(dāng)數(shù)據(jù)庫(kù)已經(jīng)恢復(fù)可使用狀態(tài)后,運(yùn)行dbcc 命令檢查數(shù)據(jù)庫(kù)的一致性(參照“如何檢查數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性”文章 )
16、(8) 備份用戶數(shù)據(jù)庫(kù)例如:1>dump database escourt5 to "/usr/sybase/"2>go4. Sybase系統(tǒng)崩潰了,沒(méi)有備份,但設(shè)備文件還存在,如何恢復(fù)數(shù)據(jù)庫(kù)?有的時(shí)候,系統(tǒng)崩潰了,手上也沒(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è)備
17、文件拷貝回來(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è)備(大小、位置保持和原來(lái)一致),接下來(lái)根據(jù)記錄下來(lái)的設(shè)備使用情況建庫(kù),順序以及占用的空間要和以前的一致。然后停服務(wù),將應(yīng)用的數(shù)據(jù)庫(kù)設(shè)備復(fù)制回來(lái),重啟服務(wù)即可。請(qǐng)參考Sybase ASE 系統(tǒng)管理員日常維護(hù)指南的建議,定期備份master 數(shù)據(jù)庫(kù)。方法二、1. 重新創(chuàng)建master 設(shè)備本實(shí)驗(yàn)描述了如何在master數(shù)據(jù)庫(kù)毀壞的情況下
18、,如何重建主設(shè)備, 恢復(fù)master數(shù)據(jù)庫(kù),得以重新恢復(fù)系統(tǒng)。這里假定:l Master 數(shù)據(jù)庫(kù)已損壞,或主設(shè)備已損壞。l 有系統(tǒng)表的最新打印輸出。l主設(shè)備只包括 master數(shù)據(jù)庫(kù)、tempdb和modell有master數(shù)據(jù)庫(kù)的最新備份,且上次轉(zhuǎn)儲(chǔ) master數(shù)據(jù)庫(kù)后沒(méi)有初始化任何設(shè)備或創(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
19、、 sysdevices、 sysusages、 sysloginroles 和 syslogins的副本。用這些副本可以保證在此過(guò)程結(jié)束時(shí)系統(tǒng)已經(jīng)全部恢復(fù)。步驟2:建立新的主設(shè)備如果Adaptive Server 正在運(yùn)行,關(guān)閉它,然后重建主設(shè)備。重建主設(shè)備時(shí),必須指定設(shè)備大小。開(kāi)始重建前,記住以下幾點(diǎn):l 保留舊設(shè)備,以防遇到問(wèn)題,舊設(shè)備可提供至關(guān)重要的信息。l 使用 buildmaster 命令之前應(yīng)關(guān)閉Adaptive Server 。l 不同操作系統(tǒng)上創(chuàng)建主設(shè)備的命令有所不同,如:buildmas(t unix) 、 bldmaste( r windows NT ) ,并安裝通用ma
20、ster 數(shù)據(jù)庫(kù)的副本。l 命令中給出主設(shè)備的全名和大小。示例:重建一個(gè)30 兆( 15360 個(gè) 2k 的頁(yè))在 Window NT 上:bldmastr d d:devices - s15360步驟3:以主恢復(fù)方式啟動(dòng)Adaptive Server使用 -m 選項(xiàng)以主恢復(fù)方式啟動(dòng)Adaptive Server。 在 Window NT 上, 使用 sqlsrvr 命令從命令行啟動(dòng) Aadaptive Server。ddevices -sserver_name -ed:sybaseinstallerrorlog Td:sybaseini -MD:sybase -m說(shuō)明:以主恢復(fù)方式啟動(dòng)Ada
21、ptive Server 時(shí),只允許一個(gè)用戶(系統(tǒng)管理員)登錄。步驟4:重建master 的設(shè)備分配檢查sysusages系統(tǒng)表的書(shū)面副本,如果有多行 dbid = 1的記錄,則需要增加 master的大小 以便裝載轉(zhuǎn)儲(chǔ)。最簡(jiǎn)單情況下,對(duì)master進(jìn)行額外分配只需要使用 alter database即可。復(fù)雜情況,必須為其它數(shù)據(jù)庫(kù)分配空間,以便重新構(gòu)造恢復(fù)master所需的正確的vstart值。示例:alter datbase master on master=2步驟5:檢查 Backup Server和sysservers系統(tǒng)表信息。使用空口令以“ sa ”用戶登錄服務(wù)器(如果 Backu
22、p Server的網(wǎng)絡(luò)名不是 SYB_BACKUP ,則 必須更新 sysservers 以便 Adaptive Server 可以與其 Backup Server 通信)。l 檢查 interfaces 文件中 Backup Server 的名稱;l 并發(fā)出下面的命令:select * from sysserverswhere srvname= ” SYB_BACKUP”l 檢查此命令中輸出結(jié)果的srvnetname。 是否與服務(wù)器的backup Server 的 interfaces 文件條目匹配,若匹配跳過(guò)步驟5;l 如不同,則必須更新sysservers示例:begin tranact
23、ionupdata sysserverset srvnetname=” backupserver_name ”where srvname= ” SYB_BACKUP”l 核實(shí)該命令,如果 updata 修改了多行,或者修改了不應(yīng)修改的行,則發(fā)出 rollback tranaction命令,然后嘗試再次更新。如果該命令正確修改了Backup Server 的行,則發(fā)出commit transaction 命令。步驟6:核實(shí)Backup Server 正在運(yùn)行Window NT 平臺(tái)上,本地安裝的Sybase Central 和服務(wù)管理器可以顯示Backup Server 是否正在運(yùn)行。步驟7:裝
24、載master 數(shù)據(jù)庫(kù)的備份在 Window NT 上:load database master from “ d” :在 load database成功完成后, Adaptive Server 將關(guān)閉。步驟8:更新number of devices 配置參數(shù)僅當(dāng)使用的數(shù)據(jù)庫(kù)設(shè)備比缺省值多時(shí)才執(zhí)行此步驟。步驟9:以主恢復(fù)方式方式重新啟動(dòng)Adaptive Serverddevices -sserver_name _ed:sybaseinstallerrorlog Td:sybaseini -MD:sybase -m 注意:裝載master的備份將使“ sa”帳號(hào)恢復(fù)到以前的狀態(tài)。如果 sa帳號(hào)有
25、口令,則口令 恢復(fù)。步驟10:檢查系統(tǒng)表以檢驗(yàn) master的當(dāng)前備份l如果發(fā)出最新的 disk init、create database或alter database命令以后已備份了master數(shù)據(jù)庫(kù),則sysusages sysdatabases和sysdevice的內(nèi)容將與書(shū)面副本匹配。l 如果副本中的任何設(shè)備未包含在已恢復(fù)的sysdevices 中,則上次備份以后已添加了設(shè)備,必須運(yùn)行disk reinit 和 disk refit 。步驟11:重新啟動(dòng)Adaptive Server以常規(guī)(多用戶)模式重新啟動(dòng)Adaptive Server步驟12:檢查Adaptive serverl
26、將sysusages的書(shū)面副本與新聯(lián)機(jī)版本比較l將sysdatabase的書(shū)面副本與新聯(lián)機(jī)版本比較l 在每個(gè)數(shù)據(jù)庫(kù)上運(yùn)行dbcc checkallocl 檢查每個(gè)數(shù)據(jù)庫(kù)中重要的表完全恢復(fù)master數(shù)據(jù)庫(kù)并運(yùn)彳T全部的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)行dbcc rebuild_log 。下面給出一個(gè)具體的測(cè)試用例:- 創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)testuse mastergodisk init name='te
27、st_dat_dev',physname='/opt/sybase/data/',size='50M'godisk init name='test_log1_dev',physname='/opt/sybase/data/',size='10M'godisk init name='test_log2_dev',physname='/opt/sybase/data/',size='10M' gocreate database test on test_dat_d
28、ev='40M' log on test_log1_dev='5M', test_log2_dev='2M' go- 產(chǎn)生一些日志use testgocreate table test (id int not null,name char(20) not null)goinsert into test values(1,'aaaaaaa') insert into test values(2,'bbbbbbb') insert into test values(3,'ccccccc') insert
29、 into test values(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、切換到SQL Advangtage以sa帳號(hào)登錄,口令為新記錄之口令。5、進(jìn)入 server以后,用命令 sp_password修改 sa 口令, sp_password '原密
30、碼','新密碼','用戶名'新密碼的位數(shù)一定要大于6 位,否則不能夠更改成功。6、回到第1步,去掉增加的選項(xiàng)-psa,保存退出。7 .關(guān)于sybase的配置一(數(shù)據(jù)庫(kù)慢的請(qǐng)留意)說(shuō)明:數(shù)據(jù)庫(kù)性能慢的主要原因有兩個(gè)1 )數(shù)據(jù)庫(kù)服務(wù)配置不合理2)應(yīng)用程序不合理遇到數(shù)據(jù)庫(kù)性能下降時(shí)通常先檢查數(shù)據(jù)庫(kù)服務(wù)配置方面有沒(méi)有可以改善的,修改之后再觀察一段時(shí)間,如果性能沒(méi)有改善的話就要分析應(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以
31、下是現(xiàn)場(chǎng)發(fā)過(guò)來(lái)的主要配置情況:lock schemedatapages 3G1G100M2.3G100Mfgsp_cacheconfig "default data cache","1G"1Gfgsp_cacheconfig "tempdb_cache","400M"400Mfg 替換當(dāng)前的配置文件,重新boot sybase服務(wù)總結(jié):sybase 11.9.2 & & 早期版本的配置通常為以下幾項(xiàng):total memory3G1G100M8M1G1G 閉服務(wù)2 .設(shè)為單用戶模式C:SybaseAS
32、E-12_5install 加上 -m3 .修改設(shè)備路徑isql -Usa -P -Sjianxin( 服務(wù)名 )user mastergoselect * from sysdevicesgoupdate sysdevices set phyname=新的路徑'where name='更改的設(shè)備名go4 .逐個(gè)修改5 .將C:SybaseASE-12_5install 加上 -m 的 -m 去掉9 dump 文件 load 后數(shù)據(jù)庫(kù)訪問(wèn)不了解決辦法原因: userid 不對(duì)應(yīng)1 .連接 master,查看 syslogins 的 suid2 .查看 sysusers 的 sui
33、d的 suid 要與 syslogins 的 suid 對(duì)應(yīng)使用命令sp_configure "allow updates",1go進(jìn)行修改,改完后執(zhí)行sp_configure "allow updates",0 go10 sybase數(shù)據(jù)庫(kù)備份方案在實(shí)際應(yīng)用中,我們總結(jié)出了兩種全量備份方案:一、使用sybase的backup server (備份服務(wù)器),做 dump備份轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)( dump database) , 就是為整個(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í)行一次checkpoin
34、t,即將日志和數(shù)據(jù)從緩沖區(qū)拷貝到硬盤(只拷貝臟頁(yè)),把已被分配的頁(yè)(日志和數(shù)據(jù))轉(zhuǎn)儲(chǔ)到設(shè)備。命令格式為:dump database 數(shù)據(jù)庫(kù)名to 設(shè)備文件名with 參數(shù)如果備份到硬盤的文件上,可以不預(yù)先估算備份文件的大小,只要硬盤有足夠的存儲(chǔ)空間就可以。如果是備份到dds磁帶上,那么就要估算一下備份后的大小,90米的dds磁帶壓縮存儲(chǔ)空間為4g,120 米的磁帶壓縮存儲(chǔ)空間為8g, 如果數(shù)據(jù)庫(kù)的備份文件超過(guò)了這個(gè)尺寸,就要考慮多文件轉(zhuǎn)儲(chǔ),使用stripe 參數(shù)。命令格式為:dump database 數(shù)據(jù)庫(kù)名to 設(shè)備文件名1stripe on設(shè)備文件名2stripe on設(shè)備文件名3wit
35、h 參數(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ù)和日志的大小都只 能和原來(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)的 sybase sql server manager (數(shù)據(jù)庫(kù)管理) 平臺(tái)中選擇
36、server a generate ddl 則產(chǎn)生整個(gè)數(shù)據(jù)庫(kù)服務(wù)器的所有信息,如果選擇database a generateddl則產(chǎn)生所選定數(shù)據(jù)庫(kù)的信息,以 master庫(kù)為例,產(chǎn)生的文件主要包括:(配置)、(設(shè)備)、(數(shù)據(jù)庫(kù))、(用戶)、(遠(yuǎn)程)、(緩沖)、()、(用戶組)、(用戶)、(確 ?。?、(規(guī)則)、(表)、(視圖)、(存儲(chǔ)過(guò)程)、(觸發(fā)器)。2、數(shù)據(jù)記錄備份將數(shù)據(jù)庫(kù)各表以sybase自代的bcp (bulk copy)工具的方式導(dǎo)成一定格式的文本文 件,命令格式:bcp表名out路徑名 文件名-c -t 分隔符-u (用戶名)-p (密碼)-s (服務(wù)器名)如果將一個(gè)數(shù)據(jù)庫(kù)中的所有
37、表都做一個(gè)bcp備份,就需要針對(duì)每一個(gè)表都做一次bcp,在一般情況下,一個(gè)數(shù)據(jù)庫(kù)有100多個(gè)表,工作量比較大。可以利用數(shù)據(jù)庫(kù)中的系統(tǒng)表信息做 一個(gè)bcp備份腳本。原理是每一個(gè)用戶表在系統(tǒng)表中都有信息記載,可以通過(guò)isql語(yǔ)句查詢得到?,F(xiàn)舉一例說(shuō)明:1)、先編輯一個(gè)名為的文件,內(nèi)容如下:select "echo bcp ""+name+" out ''"+"bcp "+name+" out ./+”name+”.table -c -t "|"-uuser -ppassword -s
38、 server" fromsysobjects where type="u"go2)、執(zhí)行isql命令,以此文件作為輸入,執(zhí)行結(jié)果輸出到另外一個(gè)文件里:isql -uuser -ppassword -s server -i -o bcpout3)、對(duì)bcppout文件稍微修改,增加可執(zhí)行權(quán)限chmod +x bcpout4)、執(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)境為pc server ,安裝好 win nt或sco unix 下的sybase服務(wù)器后,根據(jù)需要?jiǎng)?chuàng)建空間足夠大的數(shù)據(jù)庫(kù)和tempd
39、b (系統(tǒng)臨時(shí)數(shù)據(jù)庫(kù)),創(chuàng)建數(shù)據(jù)庫(kù)用戶,并將其更改為此數(shù)據(jù)庫(kù)的所有者,要注意兩點(diǎn):1)此數(shù)據(jù)庫(kù)允許bcp拷貝,2)此數(shù)據(jù)庫(kù)自動(dòng)清除10g。命令格式為:1> sp_dboption databasedbnameselect into/bulkcopy",true2> go1> sp_dboption databasename,"trunc log on chkpt",true2> go上述兩個(gè)配置可能與生產(chǎn)機(jī)的配置不同。然后以新創(chuàng)建的數(shù)據(jù)庫(kù)用戶登錄,導(dǎo)入數(shù)據(jù)結(jié)構(gòu),注意要首先導(dǎo)入表結(jié)構(gòu),然后才是存儲(chǔ)過(guò)程、觸發(fā)器等等。命令格式:1、 isql -
40、uusername -ppassword -i -o2、 isql -uusername -ppassword -i -o為了提高bcp導(dǎo)入數(shù)據(jù)的速度,需要將比較大的表的索引和主鍵刪除,否則的話,每bcp進(jìn)一條數(shù)據(jù),數(shù)據(jù)庫(kù)都自動(dòng)寫一條10g日志,記載此數(shù)據(jù)的上一條和下一條記錄,確定本記錄在此表中的準(zhǔn)確位置,一是影響bcp速度,二是數(shù)據(jù)庫(kù)的10g飛速膨脹。數(shù)據(jù)庫(kù)的自動(dòng)清除10g功能只有在一個(gè)事務(wù)結(jié)束后才起作用。準(zhǔn)備工作做完后,開(kāi)始倒入數(shù)據(jù)記錄。使用類似做 bcpout的方法做一個(gè)bcpin的腳本,然 后執(zhí)行:./bcpin |tee使用tee管道輸出的目的是讓計(jì)算機(jī)完整記錄下倒入過(guò)程,自動(dòng)存入文件中,待倒入結(jié)束后,我們只需要檢查日志文件,不需要一直緊盯著計(jì)算機(jī)屏幕。所有工作做完之后,不要忘記重新將刪除的主鍵和索引建上。如果有現(xiàn)成的數(shù)據(jù)庫(kù),只需要單純地導(dǎo)入數(shù)據(jù)記錄,則首先將數(shù)據(jù)庫(kù)中所有用戶表(也就是所有type="u&qu
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作中的自我管理與時(shí)間分配
- 工業(yè)能源轉(zhuǎn)型高溫超導(dǎo)材料在電力領(lǐng)域的應(yīng)用
- 工作壓力與時(shí)間管理策略
- 工作場(chǎng)所心理安全環(huán)境
- 工業(yè)風(fēng)格的環(huán)境設(shè)計(jì)實(shí)踐案例
- 工業(yè)風(fēng)辦公室的設(shè)計(jì)與實(shí)現(xiàn)
- 工作流程優(yōu)化與時(shí)間管理的實(shí)踐應(yīng)用
- 工廠生產(chǎn)線上溫控系統(tǒng)的優(yōu)化設(shè)計(jì)
- 工程勘察設(shè)計(jì)質(zhì)量標(biāo)準(zhǔn)解讀
- 工程測(cè)量中的精密測(cè)量技術(shù)分析
- GBZ(衛(wèi)生) 49-2014職業(yè)性噪聲聾的診斷
- JJG 30-2012通用卡尺
- 2022年女性精致美學(xué)白皮書(shū)
- 事業(yè)單位招聘考試《工程建設(shè)管理專業(yè)知識(shí)》真題匯總及答案【含解析】
- 文獻(xiàn)整理表格
- DBJ∕T 13-261-2017 福建省二次供水不銹鋼水池(箱)應(yīng)用技術(shù)規(guī)程
- GB∕T 16422.3-2022 塑料 實(shí)驗(yàn)室光源暴露試驗(yàn)方法 第3部分:熒光紫外燈
- 中國(guó)歷史地理復(fù)習(xí)資料
- 05示例:玉米脫粒機(jī)的設(shè)計(jì)(含全套CAD圖紙)
- 年中總結(jié)會(huì)策劃方案
- (最新)污水處理池施工方案
評(píng)論
0/150
提交評(píng)論