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