我從來(lái)沒(méi)接觸過(guò)SYBASE數(shù)據(jù)庫(kù),現(xiàn)在老總給我個(gè)任務(wù),叫我給SYBASE數(shù)據(jù)庫(kù)定時(shí)備份,我看了好多資料都不明白,主要是沒(méi)個(gè)思路,不知道是要編程解決還是通過(guò)設(shè)置SYBASE數(shù)據(jù)庫(kù)自己備份,急死我了 ?
我想寫(xiě)個(gè)備份的進(jìn)程,定時(shí)備份,可是不知道SYBASE的接口是怎么樣的,怎么與SYBASE數(shù)據(jù)庫(kù)交互 ?
請(qǐng)大家?guī)臀页龀鲋饕猓私膺@些的朋友請(qǐng)給個(gè)思路,謝謝了 ?
--------------------------------------------------------------- ?
?
如果是UNIX下的就通過(guò)使用crontab了。WIN平臺(tái)下面有一個(gè)任務(wù)管理器。也可以相應(yīng)使用。 ?
--------------------------------------------------------------- ?
?
看看bcp命令和dump,load命令了。有書(shū)的話。 ?
--------------------------------------------------------------- ?
?
sybase不提供定時(shí)備份功能,自己寫(xiě)腳本放到cron或計(jì)劃任務(wù) ?
?
建立批處理back.bat或sh腳本,腳本內(nèi)容為 ?
isql ?-Usa ?-P ?-STESTSVR–o ?/sybase ?/dump.log(用于產(chǎn)生日志,windows下指定window格式的路徑) ?–i ?dump.sql ? ?
?
備份工作通過(guò)isql調(diào)用備份腳本實(shí)現(xiàn): ? ?
? ?
isql ?-Usa ?-P ?-STESTSVR–o ?/sybase ?/dump.log ?–i ?dump.sql ? ?
? ?
為使sybase用戶(hù)成功執(zhí)行本操作,我們應(yīng)同時(shí)將sybase的環(huán)境變量定制在dump.sh中,其主要命令可參考sybase用戶(hù)的.profile文件。另外,本命令從外部讀取的備份腳本dump.sql文件的內(nèi)容如下: ? ?
? ?
declare ?@ddate ?char(28) ?/* ?定義一個(gè)變量,用于備份的文件名稱(chēng) ?*/ ? ?
select ?@ddate ?= ?'/sybase/backup/dbname' ?+ ?convert(char(6), ?getdate(), ?12) ?+ ?stuff(convert(char(5), ?getdate(), ?8),3,1,null) ?+”.dmp”/* ?將當(dāng)前日期進(jìn)行轉(zhuǎn)換 ?*/ ? ?
dump ?database ?test ?to ?@ddate ? ?
dump ?transaction ?with ?truncate_only ? ?
?
go ? ?
? ?
說(shuō)明:該腳本將當(dāng)前日期進(jìn)行轉(zhuǎn)換,形成備份的文件名,其格式為: ?backupyymmddhhmi ?
?
?
最后把批處理back.bat或sh分別加入計(jì)劃任務(wù)或cron ?
這里給出cron的方法,計(jì)劃任務(wù)很容易,不說(shuō)了 ?
?
①.定義權(quán)限并定制cron ?job ? ?
?UNIX系統(tǒng)中有一條命令crontab,通過(guò)它我們可以定制cron ?job,它安排各命令在指定的時(shí)間間隔內(nèi)執(zhí)行,有定時(shí)器的功能。我們所制定的自動(dòng)備份及自動(dòng)檢測(cè)方案就是用它來(lái)實(shí)現(xiàn)的。但是,并不是每個(gè)UNIX系統(tǒng)的用戶(hù)都有權(quán)限使用它。 ? ?
HP ?UNIX在默認(rèn)情況下只有root,admin,uucp三個(gè)用戶(hù)有權(quán)限使用,這時(shí)我們需要將數(shù)據(jù)庫(kù)管理員sybase用戶(hù)添加到cron.allow文件中。首先,應(yīng)以root用戶(hù)身份登錄,到路徑/var/adm/cron下確認(rèn)無(wú)cron.deny文件,或該文件中無(wú)sybase這條記錄。然后,編輯cron.allow文件,將sybase ?用戶(hù)添加進(jìn)去,這樣,sybase用戶(hù)就有了定制cron ?job的權(quán)限。 ? ? ?
以sybase用戶(hù)登錄后,執(zhí)行crontab ?–e ?編輯cron ?job, ?例: ? ?
? ?
00 ?18 ?* ?* ?* ?/sybase/dump.sh ? ?
? ?
其中,第一條命令的意思是在每天的18∶00開(kāi)始自動(dòng)執(zhí)行腳本文件dump.sh,對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份, ?dump.sh ?的編輯在后面討論。第二條命令是在每月15日的21∶30自動(dòng)執(zhí)行腳本文件dbcc.sql,對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的一致性檢測(cè),其結(jié)果輸出到文件dbcc.err中。當(dāng)然,我們應(yīng)該根據(jù)不同情況適當(dāng)調(diào)整定義的工作時(shí)間。
posted on 2006-09-06 11:04
水煮三國(guó) 閱讀(741)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
Sybase